From 2a34fe4cc78c14330490ce9c3fd3bb75ebc6d223 Mon Sep 17 00:00:00 2001 From: Joseph Milazzo Date: Sat, 17 Jul 2021 14:03:11 -0500 Subject: [PATCH] The big one (#396) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Refactored library card to have a custom implemenation using icons rather than images. In addition, swapped out font awesome with official version. * Replaced pull-right with float-right due to updated bootstrap version. * Added a new section to admin dashboard * Added some menu system for reader, fit to width, height or original. Temp hack to make background black. * Ability to set nav bar completely off from some pages. Removed test case that isn't used. * Restore nav bar after reading * Implemented ability to delete a series directly and scan from a series. * Implemented some basic prefetching capabilities (just next page) and implemented proper reading direction support with a toggle. * Added a no connection route for if backend goes down. Removed go to page functionality as it isn't really needed and overly complicated. * Implemented ability to track progress and view it at a series level * Read status enhancements, cleaned up card code a bit, styling changes on nav bar dropdown, read or continue functionality for series detail page. * Fixed a few bugs around registering and refactored APIs to match backend. * Lots of cleanup of the code and TODOs. Improved responsiveness on series detail page. * Missed some changes * Implemented ability to rate a series. review text will come in v0.2. * Reverted some debug code for reader menu always being open. Added loader to reader as well. * Setup for building prod for releasing Kavita server. * After we create an admin for first time flow, refresh page so they can login. * Small change to help user get to server settings to setup libraries * Implemented ability to save what tab you are on or link directly to tab for admin dashboard. * Implemented ability to reset another users password. Tweaked how error interceptor reacted to OK messages. * Implemented general settings. Have ability to change cache directory, but disabled on BE. * Remove SSL * Implemented Volume 0's for series detail. * Compressed image-placeholder and implemented refresh metadata. Refresh metadata will update cover images while scan library will just fix matching, etc. * Refactored for backened architectural changes. Fixed some bugs around read progress off by one. * Fixed some styling around grid layout for volume then chapters. * On unauthorized, force logout then redirect to login page. * Don't throw multiple toasters when somthing goes wrong due to backend going down. * Implemented the ability to see and update server settings. * Implemented user preferences and ability to update them. Fixed a bug in production code such that API requests are made on current domain. * Small fixes around the app and server setting for port. * Fixed some styling to look better on mobile devices and overflow text to eclipse. * Cleanup and implemented card details for Volume/Chapters. * Small tweak to card details * Mark as Read/unread on Volumes now implemented. * Cleaned up some code, integrated user settings into manga reader, took care of some todos. * Forgot to sort chapters * Fixed issue in card details with string concatentation * Updated the Manga Reader to be better looking and simplier (code) on Desktop devices. * Added more responsive breakpoints for overlay to look much better on more screen sizes * Some changes for tablet. Clear out localStorage that is older than 1 page of what you're reading. * Fix bug for continuing where you last left off. * Fixed a bug where continue reading didn't take into account chapters. * Cleaned up imports and added autocomplete skeleton. * Small UX enhancements * Moved manga-reader into it's own module to lessen default package size * Removed route guards from reader module as it is handled by parent module. * Responsive pass through on Series Detail page. * Cleaned up containers and tooltips. * Tooltip for icon only buttons * Library editor modal cleanup * Implemented nav bar for directory picker. * Removed console.log * Implemented a basic search for Kavita. Along the way did some CSS changes and error interceptor messages are better. * Implemented a re-usable base64 image that can be styled. Not as easy as using inline styling, but easy to use. * View encapsulation off so we can easily size these images. * Implemented typeahead search for nav bar. * Fix a bug when route parameters change, the series detail page wasn't updating with new information * Implemented page splitting * Cleaned up Card Details and split into 2 separate versions with unified Look and Feel. * Implemented ability to mark a series as read/unread. * Implemented Jump to First/Last page functionality as shortcuts to goToPage. * Implemented pagination on Library Detail page * Restore scroll position to the top on page route change * Not sure if this changes anything, but IDE doesn't complain * Added a cutsom favicon and small tweak on UI for library pagination controls. * Bugfix to take into account currently reading chapter for read/continue button * Implemented user reviews * Forgot to hook up one click handler * Only admins can edit a series * Implemented edit series page. Many fields are not yet supported for modification. * Hooked in Edit Series into backend. Fixed an ngIf on edit review button. * Switched over existing series info modal to use the new edit one. * Partially implemented download logs. Removed some files not needed and trialing css changes on actions menu for card items. * Integrated Jest for Unit Testing and added one test case. Will expand and integrate into work flow. * Cleaned up some mobile breakpoint styles. Looks much better on a phone. * A bit more css around phones to make reader menu useable. * Removed series-card-detail since it's been replaced with edit-series-modal. * Implemented save logs * Small cleanup * More responsive breakpoint tweaks for nav bar. * Fetching logs is fixed * Bugfix: Search bar was visible for non-authenticated users * Implemented the ability to correct (manually) a series title and for it to persist between scans. Small QoL changes throughout codebase. * Added some broken test setup. * Disable comments must start with space lint rule. * Fixed issue where tablets wouldn't be able to render all images. * Migrated code off localStorage and used one api to get information about chapter. * Cleaned up the code now that we are loading images differently. * Use circular array to cache image requests so that we can ensure next image is instantaneously available. * Some fixes around ensuring we don't prefetch when going back a page and ensuring prefetch doesn't fetch more pages than there are left. * Fixed #70: When marking as read from volume level, completion was off by 1 thus series level didn't show as completed. * Fixed #72. Missing an else statement which allowed another navigate to override the correct code. Refactored hasReadingProgress to be set in setContinuePoint * Cleaned up the User button in nav bar to be cleaner * Implemented a custom confirm/alert service so that I have complete control over style. * Missed LGTM exception * First pass at removing base64 strings for images and using lazy loaded binary file images. * Only load images that are within view (scroll port) * Not connected message needs more top margin * Move image handling to it's own service. Add transition for loading images and some cleanup * Misc cleanup * Refactored action items to a factory * Refactored the card item actionables into factory and moved actionable rendering into one component * Added an optional btn class input to allow styling menu as a button. * Implemented the ability to reset your individual password. * Wrong reset after resetting password * Don't let user set log level. Not sure it's possible to implement in ASP.NET * Implemented a carousel for streams component. Still needs some CSS and tweaking. Added some temp API endpoints for streams. Fixed a bug where after editing name on series underlying card didn't reflect. * Everything but the css is done * CSS done. Carousel components implemented * More CSS stuff * Small css change * Some cleanup on code * Add aria-hidden="true" on icons * Fixed css issue due to missing class * Made scrolling carousel feel better on more screen sizes * Fixed bug where confirm default buttons would all be cancel. * Replaced placeholder image with a kavita placeholder. Added a theme folder for standardizing colors. Cleaned up some css here and there. * Removed a dependency no longer needed. Implemented history based pagination for library detail page. * Changed MangaFile numberOfPages to Page to match with new migration * Fixed issue where if no chapters, we were just doing console.error instead of informing the user (should never happen) * Add a todo for a future feature * Implemented loading on series-detail volume section and fixed an issue where the whole series is just one volume and it's a special aka we can't parse vol/chapter from it, so it renders appropriately * Fixed a rare issue where split pages would quickly flash both sides due to previously that page being fetched via onload and thus when render called, render got recalled. * Fixed an off by 1 issue due to the fact that reading is 0-based and everything else is 1 based. (#94) * Fixed an off by 1 issue due to the fact that reading is 0-based and everything else is 1 based. (#94) (#95) * Fixed an issue where special case that handles no volumes was showing also when chapters also existed. Renamed "Chapter 0" as "Specials" (#96) * Bugfixes! (#99) * Fixed an issue where special case that handles no volumes was showing also when chapters also existed. Renamed "Chapter 0" as "Specials" * Fixed a typo resulting in pages not rendering on edit series modal. Ensure chapters are sorted on edit series and card details modal. * Fixed the date format showing days before months. * Fixed a bug with scrollable modals for context info modals. * Fixed a bug where adding a folder to a library added a / before the path, thus breaking on linux. (#101) * Bugfixes (#103) * Fixed an issue where special case that handles no volumes was showing also when chapters also existed. Renamed "Chapter 0" as "Specials" * Fixed a typo resulting in pages not rendering on edit series modal. Ensure chapters are sorted on edit series and card details modal. * Fixed the date format showing days before months. * Fixed a bug with scrollable modals for context info modals. * Last modified on chapters didn't really s how well and made no sense to show, removed it. * Preparing for feature * CSS adjustment for admin dashboard * First flow, ensure we go directly to library tab * When a user registers for first time, put them on login instead of relying on home page redirection. * Fixed an issue with directory picker where the path separators didn't work for both linux and windows systems. * Implement comic support (#104) * Implement comic support * Any disabled controls should show not-allowed pointer. * Fixed a scroll bug on modal * On connection lost, restore to previous page (#106) * Implement comic support * Any disabled controls should show not-allowed pointer. * Fixed a scroll bug on modal * If the server goes down between sessions and we go to not-connected page, try to restore previous route when connection regained. * Fixed an issue where context menus weren't resetting when an admin logs out and a new non-admin logs in. (#108) * Error Cards (#110) * Fixed an issue where context menus weren't resetting when an admin logs out and a new non-admin logs in. * Implemented a marker to inform the user that some archives can't be parsed. * Don't show scrollbar if we don't have enough height to overflow * Shows an error card when the underlying archive could not be read at all. * Changed the card up * Special grouping (#115) * Implemented splitting specials into their own section for individual reading. Requires up to date backend for db changes. * Cleaned up the code * Replace underscores on specials if they exist. A simple name cleaning. * Lots of Fixes (#126) * Fixed After editing a user's library access, the Sharing details aren't updating without a refresh #116 * Fixed Series Summary & Review do not respect newline characters #114 * Default to non-specials tab and don't destroy DOM between tab changes * Align UI api with backend * Library icon should be "manga" for comic and Manga * Fixed Mark Series as Read in series detail page doesn't update the volume/chapter cards unless page is refreshed. #118 * Fixed Defect: 2 Split pages in a row causes second page to not split #112 * Fixed an issue if last page is a splitpage, we wouldn't be able to see the other side of the split. * When jumping to begining and end and both first page and last page are splitpages, make sure we set the paging direction so user can view both pages. * Make sure we take into account splits when we try jump to first page then try to go "back" to the other split. * Cleaned up split code a bit * Fixed Go to Page is off by one #124 * Fixed Read button is showing continue when a show doesn't have any progress on it #121 * Implemented Read more component (Fixes #117) * Fixed a bug in gotopage where if you went to maxPages or greater, we would always - 1 from page number. * Forgot to commit this for Readmore component * tslint cleanup * Implemented Refactor Review to be bound to the star control rather than having a text review so the user can review without rating. #125 * Fixes #119 - 0 Volumes with 0 chapters were showing as specials, but should be in the special tab. * Fixed an issue from reverting scanSeries code. * Handle specials with a little more care * Fixed #138. Search wasn't showing localizedName due to a rendering issue. * Fixed an issue where L2R didn't handle multiple split pages in a row. * Code smells * Ensure we wipe context actions for library between login/logouts * Fixed loading series after marking searies unread/read (#135) * Removed isSpecial from volume (#137) * Bugfix/gotopage (#139) * Fixed #138 * Fixed #131 - getStem no longer removes the substring if lastPath is same as path. * Implements Issue #129 - There is now a close book button on the menu * Book Support (#141) * Refactored Library Type dropdown to use an API so UI/Backend is in sync. * Implemented the ability to load the book reader * Book support but none of this works. Just here to keep track as I switch to other bugs * Basic iframe implementation is now working * Needed changes to load the content into native div rather than via iframe. * We now have the ability to customize how we render the text. * Removed console.log * Implemented the ability to loadpages from remapped anchors from backend. * Removed epubjs references and implemented table of contents api. * Code now works for chapters with nested chapters * Lots of changes, most of the reader is half baked, but foundation is there. * Changed styles up a bit * Implemented the ability to scroll to a part within a book. Added a custom font to test out. * Show active page with a bolding when there are nested chapters * Chapter group titles are now clickable * Added the ability to set top offset in drawer * Finally got style overrides to work and some other stuff * User can now toggle menu with space * Ensure styles don't leak. Drawer bottom was cutoff. On phone devices, default margins should be 0%. * Use smooth scrolling when navigating between pages with scroll offset * Added some code for checking when all images on page are loaded, added a fade in animation (doesnt work) and some media queries for top bar. * Refactored all data structures in application into shared module * CSS changes * Fixed part selector query due to improper ids, now we use a more robust query type. Implemented a stack for adhoc clicks, so user can explore a bit but pagination is based on current page. * Reverted sidenav changes. Fixed scrollTo to be more reliable with how the content comes into view. * When you make an adhoc link jump, we now restore page and scroll position. * Hooked in basic preferences for books and force margin settings for mobile devices. * Book overrides now work all the time. Added a bunch of fonts for users to try out. * Added all font faces * A bit hacky, but darkMode now works for the reader. * Remove styles on destroy * First time users will have their menu open automatically * Book format now shows on card details modal * changed how margin updates to make more sense * Fixed flashing by applying an opacity transition on page change. * Code cleanup * Reverted changes to unify series-detail page. Added some extra accessibility for book reader. * Implement the ability to close drawer by clicking into the reader area * Don't let the user page past where they should be able to * Allow user to see the underlying values of customizations and when they save them, actually reset to their preferences * Responsive top for sticky header * Code smells * Implemented the ability to update book settings from user settings * code smells * Code smells and max/mins on reader should match the user pref area * Feature/feats and fixes (#144) * In case a migration is poorly implemented, default on first load of bookreader. * If there is no table of contents in epub file, inform the user * Fixed #143 by ensuring we properly flatten the correct property when catching errors. * Fixed #140. Search bar in nav is now more responsive than ever and properly scales down to even the smallest phone sizes (less than 300px) * For Cards, moved the action menu into the bottom area, added Library link that said series belongs to. * Added library to the series detail card * Implemented the ability to automatically scale the manga reader based on screen size. * Fix code smells * Feature/feats and fixes (#146) * In case a migration is poorly implemented, default on first load of bookreader. * If there is no table of contents in epub file, inform the user * Fixed #143 by ensuring we properly flatten the correct property when catching errors. * Fixed #140. Search bar in nav is now more responsive than ever and properly scales down to even the smallest phone sizes (less than 300px) * For Cards, moved the action menu into the bottom area, added Library link that said series belongs to. * Added library to the series detail card * Implemented the ability to automatically scale the manga reader based on screen size. * Fix code smells * Use margin-top instead of top for offsetting top * Add a little extra spacing just in case * Updated carousel to use a swpier * Increased the budget and changed how vendor module is created * Added some todos * Implemented the ability to suppress library link on cards * Fixed an issue with top offset for reading section * Added the action bar to the bottom when user scrolls all the way down (Feedback) * Added in a skip to content link for top nav * After performing an action on library page, refresh the data on page. * Implemented the ability to refresh metadata of a single series directly * Implemented a progress bar for reading and a go to page by clicking the progress bar * Only show the bottom action bar when there is a scrollbar * Implemented the ability to tap the sides of book reader to paginate * Book Feedback and Fixes (#147) * In case a migration is poorly implemented, default on first load of bookreader. * If there is no table of contents in epub file, inform the user * Fixed #143 by ensuring we properly flatten the correct property when catching errors. * Fixed #140. Search bar in nav is now more responsive than ever and properly scales down to even the smallest phone sizes (less than 300px) * For Cards, moved the action menu into the bottom area, added Library link that said series belongs to. * Added library to the series detail card * Implemented the ability to automatically scale the manga reader based on screen size. * Fix code smells * Use margin-top instead of top for offsetting top * Add a little extra spacing just in case * Updated carousel to use a swpier * Increased the budget and changed how vendor module is created * Added some todos * Implemented the ability to suppress library link on cards * Fixed an issue with top offset for reading section * Added the action bar to the bottom when user scrolls all the way down (Feedback) * Added in a skip to content link for top nav * After performing an action on library page, refresh the data on page. * Implemented the ability to refresh metadata of a single series directly * Implemented a progress bar for reading and a go to page by clicking the progress bar * Only show the bottom action bar when there is a scrollbar * Implemented the ability to tap the sides of book reader to paginate * Cleaned up carousel and fixed breakpoints so we always at least show 2 cards. * Cleaned up menu for manga reader and changed how automatic scaling works, based on ratio of width to height rather than raw numbers. * Fixed an issue where using left/right keys on book reader wouldn't behave like clicking left/right pagination buttons. * Dark mode and click to paginate was conflicting. The hint overlay still doesn't work when dark mode is on. * Book Feedback (#148) * In case a migration is poorly implemented, default on first load of bookreader. * If there is no table of contents in epub file, inform the user * Fixed #143 by ensuring we properly flatten the correct property when catching errors. * Fixed #140. Search bar in nav is now more responsive than ever and properly scales down to even the smallest phone sizes (less than 300px) * For Cards, moved the action menu into the bottom area, added Library link that said series belongs to. * Added library to the series detail card * Implemented the ability to automatically scale the manga reader based on screen size. * Fix code smells * Use margin-top instead of top for offsetting top * Add a little extra spacing just in case * Updated carousel to use a swpier * Increased the budget and changed how vendor module is created * Added some todos * Implemented the ability to suppress library link on cards * Fixed an issue with top offset for reading section * Added the action bar to the bottom when user scrolls all the way down (Feedback) * Added in a skip to content link for top nav * After performing an action on library page, refresh the data on page. * Implemented the ability to refresh metadata of a single series directly * Implemented a progress bar for reading and a go to page by clicking the progress bar * Only show the bottom action bar when there is a scrollbar * Implemented the ability to tap the sides of book reader to paginate * Cleaned up carousel and fixed breakpoints so we always at least show 2 cards. * Cleaned up menu for manga reader and changed how automatic scaling works, based on ratio of width to height rather than raw numbers. * Fixed an issue where using left/right keys on book reader wouldn't behave like clicking left/right pagination buttons. * Dark mode and click to paginate was conflicting. The hint overlay still doesn't work when dark mode is on. * Fixed issue where errors from login flow would not throw a toastr * Moved the progress bar and go to page into the side drawer to be less distracting when reading * Removed console.logs * Cleaned up styles on slider to be closer to size of cards * Fixed an issue with swiper not allowing use of touch (#149) * Fixed in progress by on last page incrementing to maxPages itself, thus ensuring it matches the sum of pages. (#151) * Bugfix/in progress (#156) * Fixed in progress by on last page incrementing to maxPages itself, thus ensuring it matches the sum of pages. * Actually fix in progress by only incrementing page num on bookmark when we are on the last page * Impleents tap to paginate user setting. (#157) * Feature/manga reader (#160) * Implemented pressing G to open go to page. Enhanced the dialog to give how many pages you can go to. On page splitting button press, if the current page needs splitting, we will re-render with the new option. * Added gotopage shortcut key for book reader * Setup for new feature * Swiper now respects card sizes * Fixes #51 and updates dependencies for security vulnerabilities * Implemented back to top button * Remove the - 1 hack from series-detail * Remove hack from carad item * Fix a regression where book reader would +1 pageNum for bookmarking on last page, but because books don't start at 0 for page nums, it isn't necessariy * Implemented the ability to move between volumes automatically * Additional security fix * Code smells * Cleaned up the implementation to properly prevent pagination when loading next chapter/volume * v0.4 Last touches (#162) * PurgeCSS integration * Changed some icons to have titles * Automatic scaling changes * Removed 2 font families that didn't make the release cut. Fixed an off by 1 regression with setContinuePoint * Backed out purge css after testing * Some cleanup of the package * Automatic scaling adjustments * Bugfix/release shakeout (#164) * Fixed body color not being reset due to capturing it too late * Removed some dead code * v0.4 merge to stable (#165) * Fixed an off by 1 issue due to the fact that reading is 0-based and everything else is 1 based. (#94) * Fixed an issue where special case that handles no volumes was showing also when chapters also existed. Renamed "Chapter 0" as "Specials" (#96) * Bugfixes! (#99) * Fixed an issue where special case that handles no volumes was showing also when chapters also existed. Renamed "Chapter 0" as "Specials" * Fixed a typo resulting in pages not rendering on edit series modal. Ensure chapters are sorted on edit series and card details modal. * Fixed the date format showing days before months. * Fixed a bug with scrollable modals for context info modals. * Fixed a bug where adding a folder to a library added a / before the path, thus breaking on linux. (#101) * Bugfixes (#103) * Fixed an issue where special case that handles no volumes was showing also when chapters also existed. Renamed "Chapter 0" as "Specials" * Fixed a typo resulting in pages not rendering on edit series modal. Ensure chapters are sorted on edit series and card details modal. * Fixed the date format showing days before months. * Fixed a bug with scrollable modals for context info modals. * Last modified on chapters didn't really s how well and made no sense to show, removed it. * Preparing for feature * CSS adjustment for admin dashboard * First flow, ensure we go directly to library tab * When a user registers for first time, put them on login instead of relying on home page redirection. * Fixed an issue with directory picker where the path separators didn't work for both linux and windows systems. * Implement comic support (#104) * Implement comic support * Any disabled controls should show not-allowed pointer. * Fixed a scroll bug on modal * On connection lost, restore to previous page (#106) * Implement comic support * Any disabled controls should show not-allowed pointer. * Fixed a scroll bug on modal * If the server goes down between sessions and we go to not-connected page, try to restore previous route when connection regained. * Fixed an issue where context menus weren't resetting when an admin logs out and a new non-admin logs in. (#108) * Error Cards (#110) * Fixed an issue where context menus weren't resetting when an admin logs out and a new non-admin logs in. * Implemented a marker to inform the user that some archives can't be parsed. * Don't show scrollbar if we don't have enough height to overflow * Shows an error card when the underlying archive could not be read at all. * Changed the card up * Special grouping (#115) * Implemented splitting specials into their own section for individual reading. Requires up to date backend for db changes. * Cleaned up the code * Replace underscores on specials if they exist. A simple name cleaning. * Lots of Fixes (#126) * Fixed After editing a user's library access, the Sharing details aren't updating without a refresh #116 * Fixed Series Summary & Review do not respect newline characters #114 * Default to non-specials tab and don't destroy DOM between tab changes * Align UI api with backend * Library icon should be "manga" for comic and Manga * Fixed Mark Series as Read in series detail page doesn't update the volume/chapter cards unless page is refreshed. #118 * Fixed Defect: 2 Split pages in a row causes second page to not split #112 * Fixed an issue if last page is a splitpage, we wouldn't be able to see the other side of the split. * When jumping to begining and end and both first page and last page are splitpages, make sure we set the paging direction so user can view both pages. * Make sure we take into account splits when we try jump to first page then try to go "back" to the other split. * Cleaned up split code a bit * Fixed Go to Page is off by one #124 * Fixed Read button is showing continue when a show doesn't have any progress on it #121 * Implemented Read more component (Fixes #117) * Fixed a bug in gotopage where if you went to maxPages or greater, we would always - 1 from page number. * Forgot to commit this for Readmore component * tslint cleanup * Implemented Refactor Review to be bound to the star control rather than having a text review so the user can review without rating. #125 * Fixes #119 - 0 Volumes with 0 chapters were showing as specials, but should be in the special tab. * Fixed an issue from reverting scanSeries code. * Handle specials with a little more care * Fixed #138. Search wasn't showing localizedName due to a rendering issue. * Fixed an issue where L2R didn't handle multiple split pages in a row. * Code smells * Ensure we wipe context actions for library between login/logouts * Fixed loading series after marking searies unread/read (#135) * Removed isSpecial from volume (#137) * Bugfix/gotopage (#139) * Fixed #138 * Fixed #131 - getStem no longer removes the substring if lastPath is same as path. * Implements Issue #129 - There is now a close book button on the menu * Book Support (#141) * Refactored Library Type dropdown to use an API so UI/Backend is in sync. * Implemented the ability to load the book reader * Book support but none of this works. Just here to keep track as I switch to other bugs * Basic iframe implementation is now working * Needed changes to load the content into native div rather than via iframe. * We now have the ability to customize how we render the text. * Removed console.log * Implemented the ability to loadpages from remapped anchors from backend. * Removed epubjs references and implemented table of contents api. * Code now works for chapters with nested chapters * Lots of changes, most of the reader is half baked, but foundation is there. * Changed styles up a bit * Implemented the ability to scroll to a part within a book. Added a custom font to test out. * Show active page with a bolding when there are nested chapters * Chapter group titles are now clickable * Added the ability to set top offset in drawer * Finally got style overrides to work and some other stuff * User can now toggle menu with space * Ensure styles don't leak. Drawer bottom was cutoff. On phone devices, default margins should be 0%. * Use smooth scrolling when navigating between pages with scroll offset * Added some code for checking when all images on page are loaded, added a fade in animation (doesnt work) and some media queries for top bar. * Refactored all data structures in application into shared module * CSS changes * Fixed part selector query due to improper ids, now we use a more robust query type. Implemented a stack for adhoc clicks, so user can explore a bit but pagination is based on current page. * Reverted sidenav changes. Fixed scrollTo to be more reliable with how the content comes into view. * When you make an adhoc link jump, we now restore page and scroll position. * Hooked in basic preferences for books and force margin settings for mobile devices. * Book overrides now work all the time. Added a bunch of fonts for users to try out. * Added all font faces * A bit hacky, but darkMode now works for the reader. * Remove styles on destroy * First time users will have their menu open automatically * Book format now shows on card details modal * changed how margin updates to make more sense * Fixed flashing by applying an opacity transition on page change. * Code cleanup * Reverted changes to unify series-detail page. Added some extra accessibility for book reader. * Implement the ability to close drawer by clicking into the reader area * Don't let the user page past where they should be able to * Allow user to see the underlying values of customizations and when they save them, actually reset to their preferences * Responsive top for sticky header * Code smells * Implemented the ability to update book settings from user settings * code smells * Code smells and max/mins on reader should match the user pref area * Feature/feats and fixes (#144) * In case a migration is poorly implemented, default on first load of bookreader. * If there is no table of contents in epub file, inform the user * Fixed #143 by ensuring we properly flatten the correct property when catching errors. * Fixed #140. Search bar in nav is now more responsive than ever and properly scales down to even the smallest phone sizes (less than 300px) * For Cards, moved the action menu into the bottom area, added Library link that said series belongs to. * Added library to the series detail card * Implemented the ability to automatically scale the manga reader based on screen size. * Fix code smells * Feature/feats and fixes (#146) * In case a migration is poorly implemented, default on first load of bookreader. * If there is no table of contents in epub file, inform the user * Fixed #143 by ensuring we properly flatten the correct property when catching errors. * Fixed #140. Search bar in nav is now more responsive than ever and properly scales down to even the smallest phone sizes (less than 300px) * For Cards, moved the action menu into the bottom area, added Library link that said series belongs to. * Added library to the series detail card * Implemented the ability to automatically scale the manga reader based on screen size. * Fix code smells * Use margin-top instead of top for offsetting top * Add a little extra spacing just in case * Updated carousel to use a swpier * Increased the budget and changed how vendor module is created * Added some todos * Implemented the ability to suppress library link on cards * Fixed an issue with top offset for reading section * Added the action bar to the bottom when user scrolls all the way down (Feedback) * Added in a skip to content link for top nav * After performing an action on library page, refresh the data on page. * Implemented the ability to refresh metadata of a single series directly * Implemented a progress bar for reading and a go to page by clicking the progress bar * Only show the bottom action bar when there is a scrollbar * Implemented the ability to tap the sides of book reader to paginate * Book Feedback and Fixes (#147) * In case a migration is poorly implemented, default on first load of bookreader. * If there is no table of contents in epub file, inform the user * Fixed #143 by ensuring we properly flatten the correct property when catching errors. * Fixed #140. Search bar in nav is now more responsive than ever and properly scales down to even the smallest phone sizes (less than 300px) * For Cards, moved the action menu into the bottom area, added Library link that said series belongs to. * Added library to the series detail card * Implemented the ability to automatically scale the manga reader based on screen size. * Fix code smells * Use margin-top instead of top for offsetting top * Add a little extra spacing just in case * Updated carousel to use a swpier * Increased the budget and changed how vendor module is created * Added some todos * Implemented the ability to suppress library link on cards * Fixed an issue with top offset for reading section * Added the action bar to the bottom when user scrolls all the way down (Feedback) * Added in a skip to content link for top nav * After performing an action on library page, refresh the data on page. * Implemented the ability to refresh metadata of a single series directly * Implemented a progress bar for reading and a go to page by clicking the progress bar * Only show the bottom action bar when there is a scrollbar * Implemented the ability to tap the sides of book reader to paginate * Cleaned up carousel and fixed breakpoints so we always at least show 2 cards. * Cleaned up menu for manga reader and changed how automatic scaling works, based on ratio of width to height rather than raw numbers. * Fixed an issue where using left/right keys on book reader wouldn't behave like clicking left/right pagination buttons. * Dark mode and click to paginate was conflicting. The hint overlay still doesn't work when dark mode is on. * Book Feedback (#148) * In case a migration is poorly implemented, default on first load of bookreader. * If there is no table of contents in epub file, inform the user * Fixed #143 by ensuring we properly flatten the correct property when catching errors. * Fixed #140. Search bar in nav is now more responsive than ever and properly scales down to even the smallest phone sizes (less than 300px) * For Cards, moved the action menu into the bottom area, added Library link that said series belongs to. * Added library to the series detail card * Implemented the ability to automatically scale the manga reader based on screen size. * Fix code smells * Use margin-top instead of top for offsetting top * Add a little extra spacing just in case * Updated carousel to use a swpier * Increased the budget and changed how vendor module is created * Added some todos * Implemented the ability to suppress library link on cards * Fixed an issue with top offset for reading section * Added the action bar to the bottom when user scrolls all the way down (Feedback) * Added in a skip to content link for top nav * After performing an action on library page, refresh the data on page. * Implemented the ability to refresh metadata of a single series directly * Implemented a progress bar for reading and a go to page by clicking the progress bar * Only show the bottom action bar when there is a scrollbar * Implemented the ability to tap the sides of book reader to paginate * Cleaned up carousel and fixed breakpoints so we always at least show 2 cards. * Cleaned up menu for manga reader and changed how automatic scaling works, based on ratio of width to height rather than raw numbers. * Fixed an issue where using left/right keys on book reader wouldn't behave like clicking left/right pagination buttons. * Dark mode and click to paginate was conflicting. The hint overlay still doesn't work when dark mode is on. * Fixed issue where errors from login flow would not throw a toastr * Moved the progress bar and go to page into the side drawer to be less distracting when reading * Removed console.logs * Cleaned up styles on slider to be closer to size of cards * Fixed an issue with swiper not allowing use of touch (#149) * Fixed in progress by on last page incrementing to maxPages itself, thus ensuring it matches the sum of pages. (#151) * Bugfix/in progress (#156) * Fixed in progress by on last page incrementing to maxPages itself, thus ensuring it matches the sum of pages. * Actually fix in progress by only incrementing page num on bookmark when we are on the last page * Impleents tap to paginate user setting. (#157) * Feature/manga reader (#160) * Implemented pressing G to open go to page. Enhanced the dialog to give how many pages you can go to. On page splitting button press, if the current page needs splitting, we will re-render with the new option. * Added gotopage shortcut key for book reader * Setup for new feature * Swiper now respects card sizes * Fixes #51 and updates dependencies for security vulnerabilities * Implemented back to top button * Remove the - 1 hack from series-detail * Remove hack from carad item * Fix a regression where book reader would +1 pageNum for bookmarking on last page, but because books don't start at 0 for page nums, it isn't necessariy * Implemented the ability to move between volumes automatically * Additional security fix * Code smells * Cleaned up the implementation to properly prevent pagination when loading next chapter/volume * v0.4 Last touches (#162) * PurgeCSS integration * Changed some icons to have titles * Automatic scaling changes * Removed 2 font families that didn't make the release cut. Fixed an off by 1 regression with setContinuePoint * Backed out purge css after testing * Some cleanup of the package * Automatic scaling adjustments * Bugfix/release shakeout (#164) * Fixed body color not being reset due to capturing it too late * Removed some dead code * Implemented dark mode (#166) * Implemented dark mode * Bump version to v0.4.1, moved dark styles to own stylesheet (some files need dark overrides) and ensured all pages are styled correctly. * Switched the code over to use bootstrap theme with Kavita color * Bugfix/manga issues (#169) * Fixes #168 * Fixed a bug on the manga reader that caused the background color to inherit from body rather than be forced black. Fixed an issue where a long filename on a phone could make it hard to close menu once open. * Sentry Integration (#170) * Basic version of sentry is implemented * Enhanced continuous reading to show a warning when we couldn't find the next reading point. This will also short circuit after the first warning is shown * Implemented Sentry. Currently src maps aren't uploading * Bugfixes/misc (#174) * Fixes #171 * Ensure btn-information is properly styled in dark mode * no trace sampling for UI * Fixed an issue where when we had no read progress, when choosing firs… (#176) * Fixed an issue where when we had no read progress, when choosing first volume, we'd use first chapter, but sometimes chapters wouldn't be ordered. * Code smell * Collection Support (#179) * Home button should go to library page, so we can use back and return to where we clicked from. * Implemented Collection Support * Fixed an issue for search in nav bar in darkmode * Move loading to the top of the book reader * Added DOMHelper to help with accessibility * Implemented a re-usable layout component for all card layout screens. Handles pagination. * Fixes #175 * Additional RBS check for tags where the tag fragment is invalid or there are no libraries that a user has access to * Introduced an edit collection tag modal and actionables for collection tags. * Bump version of Sentry SDK. * Ability to remove series from a tag in a bulk manner. * Continue Reading Regression (#186) * Added a dark placeholder image for dark mode and hooked it up to Image service to load correct placeholder * Fixed #181. Rewrote the continue logic to only check chapters and removed the concept of volumes (since every volume has a chapter). Opening a volume now does it's own check if there is progress on the volume, it will open to where the user left off. Otherwise, it will grab the first chapter and start at the beginning. * Added dark error placeholder image (#187) * Bugfix/misc (#188) * Fixed an issue where carousel series cards scan library would kick off for wrong library id. * Refactored the tab code to be dynamic based on the volume/chapter/specials of the data. The correct tab will be default selected and tabs that don't need to exist wont. * Some css adjustments for typeaheads * Move the loader out of the action bar so if settings menu is open when navigating pages, the math doesn't break * Fixed a bug where highlight wasn't updating correctly when we type or after we add a tag via keyboard * Fix an exception when tags are null (due to a bug in release) * Accessibility bugs * Collection Tweaks (#190) * Fixed an issue where carousel series cards scan library would kick off for wrong library id. * Refactored the tab code to be dynamic based on the volume/chapter/specials of the data. The correct tab will be default selected and tabs that don't need to exist wont. * Some css adjustments for typeaheads * Move the loader out of the action bar so if settings menu is open when navigating pages, the math doesn't break * Fixed a bug where highlight wasn't updating correctly when we type or after we add a tag via keyboard * Fix an exception when tags are null (due to a bug in release) * Accessibility bugs * Fixed #189 and cleaned up series pagination. * Major cleanup of the typeahead code. One bug remaining * Fixed highlight issue * Fixed #183. When using continuous manga reading, moving to another chapter within the reader now updates the url. (#191) * Book Parity: Reading direction for books (#192) * Fixed pagination issue on library-detail * Implemented left to right/right to left reading mode in book reader * feat: remove Webtoon option from Library Types (#194) #251 * Book Reading Progress Enhancement (#196) * Implemented the ability to bookmark and restore reading progress (scroll) for books. * Check to make sure we have something to search before we perform a querySelectorAll * Don't reload a page when we've hit the boundaries of min/max pages and are trying to spam left/right key. * Fixed a bug where if kavita-part marker was on the same page, the conditional was always true, meaning that when it was on a different one, we wouldn't load it up. * Bugfix/tab refactor (#197) * Fixed a logic bug which hid the specials tab too aggressively * Unsubscribe from observables on destroy of account service * Recently Added Page (#198) * Recently Added Page * Changed default pagination to 30 * Update to CSS for homepage section title links (#201) * Update to CSS for homepage section title links * Adding :active and :focus selectors - :active for accessibility best practice and UX. - :focus for mobile. * Fixed #202 - Scope list item hover styles in darkmode to only typeahead (#204) * Double Flashing Fix (#206) * Fixed #202 - Scope list item hover styles in darkmode to only typeahead * Fixed #199 - Flickering when paginating * Fixed an issue with Continue Reading not working after manually updating a volume with multiple chapters as read/unread (#211) * Directory Picker UX Enhancements (#214) * Added a filter and some css to the directory picker to make it more useable * Fixed a bug where last goBack didn't reload the disks and kept the directories from the last selected node. * Allow user to change port (#215) * Allow the admin to configure the log level from the UI. Add a warning informing them restart is required for port and log level. (#217) * Cleaned up some console.logs and tweaked the logic of scroll position remembering. Now the side nav chapter list will show what part you are on (if applicable). (#220) * Specials Sort (#223) * Implemented a natural sort (same as BE) to sort the specials so the order isn't completely random * Added ability to push source maps tagged to a release on push to main and develop (#219) * Create Library Feedback (#224) # Added - Library type and number of folders shared is now visible on Manage Libraries page # Changed - Directory Picker will now let you share the current folder from any time in the picker flow - Headings are now consistent between User Preferences and Admin screen * Fixing folder structure for sentry github action (#225) * Updating workflow environment (#226) Sentry workflow was giving an error: "Error: Container action is only supported on Linux" * Fixing build dist path for sentry (#227) * Updating workflow environment Sentry workflow was giving an error: "Error: Container action is only supported on Linux" * update build dist path for sentry * fix: unable to select lib type when creating a new lib (#231) * fix: unable to select lib type when creating a new lib fixed #230 * fix: able to change lib type after it's creation * Download Support (#229) * Implemented the ability to download series/chapter/volume from server. Uses RBS to determine if a user can or cannot download. * Safety Checks (#233) * Fixes a safety check from Sentry ANGULAR-1Z * Fixed a build issue from downloading branch * Fix/234 235 login redirection and dark theme not working (#236) * fix: login redirection not happening #234 * fix: dark theme not working after logout #235 * Remove SP marker from specials and also remove extension from specials. (#238) * Remove SP marker from specials and also remove extension from specials. * Sort first so we can take advantage of the SP number * Error Handling Rework (#237) * Updated ngx-toastr version (includes new styles), updated style.scss to be cleaner. Began adding Title service for accessibility. * Reworked error interceptor and toastr service to reduce duplicates and properly show errors. Co-authored-by: Milazzo, Joseph (jm520e) * Fixed a prod only issue due to multi: true for provider (#243) * Feat/usage stats collection (#245) * feat: add client anonymous data collection * fix: sonar issues * Implemented a server setting to opt-out of usage collection Co-authored-by: Joseph Milazzo * Book Progress Enhancements (#250) * Implemented the ability to bookmark any part of the book, not just the chapter parts * Added total pages label to the book reader * Manga Reader Redesign + Webtoon Reader (#247) # New - Bottom drawer has a scroller to jump to pages, jump to first/last page, and jump between volume/chapters. - Quick actions easily available to change reading direction, change reader mode, color tones, and access extended settings - Extended settings area for settings unlikely changed - Ability to auto close menu (setting) - Ability to apply extra darkness or a sepia tone to reduce blue light - New reader modes: Left/Right, Up/Down, Webtoon (scroll up and down) - Information about the volume/chapter you are reading is now showed in the top drawer # Changed - When applying reader modes or reading directions, the clickable areas will now show an overlay to help you understand where to click. - Image scaling and Image splitting now show some contextual icons to help the user understand what they do - Close book button is now in the top drawer menu * Bugfix/toastr css updates (#249) * CSS Updates - Removed BS4 toastr styles - Reinstituted default non-BS4 toastr styles - Centered login (accounting for header) - Adjusted the carousel section heading font-size. - Added a small padding (5px) on top of the padding for the nav, so the text isn't so close to the nav. * Login refresh & toaster styles - Added new font for login - Updated login styles - Hide nav bar on logout - show nav bar on login - Added images for new login - dark styles for login - dark styles for toastr * minified images * sonar bug fix * updating style url for minified asset * Fixes and code smells - fix for login bg image showing up elsewhere - fix for code smells - added font family to nav bar * Fixed missing label/input linking * resized, compressed, and minified bg image - change opacity to dark mode login * Changed Spartan font files to variable weight * Change requests - Added font license - Renamed image used for login bg - Fixed path in styles where above file was used - Removed now unused bs4 toastr style import Co-authored-by: Joseph Milazzo * Fix a bad version number * hotfix for docker build issue (#251) * updating angular.json changing output folder * change path * Fixed build issues (#252) * Bugs! (#254) * Fix style issue where bootstrap components weren't taking kavita overrides * Fixed a bug where after updating certain things within a card on library page, the feeds wouldn't update * Fixed a bug where chapter sort would not behave the same way as on chrome * Release canidate bugs (#255) * Auto Close menu wasn't updating within reader * (Book Reader) Enhanced scroll part code to limit elements we count for bookmarking, only calculating intersection once fully visible and saving when scroll ends * Removed Image Smoothing option (chrome only) from this release. No noticeable difference having it. * Fixed a page reload when clicking on In Progress section title on home page * Bugfix/webtoons (#256) * Fixed issue where first load would not start capturing scroll events due to not knowing the scroll to an element finished. * Changed how to figure out when to end scrolling event by calculating if the target element is visible in the viewport. * Seems to be working pretty well. Cleaned up some of the messages for debugging. * Simplified the intersection logic drastically * Fixed a color issue on slider for non-dark mode * Disable first/last page buttons if we are already on those respective pages * Added documentation to circular array class * Some debug code but scrolling no longer results in jank due to scrollToPage getting executed too often * Backing out ability to use webtoon reader * Css fix for book reader progress and light mode toastr (#257) * Changing dark mode to default (#262) - Changed user-preferences site dark mode to default true * added logo and css for logo (#260) * added logo and css for logo - max-height is to prevent the image from increasing the height of the navbar. - middle middle vertical align didn't look to match up as expected, so a top middle was implemented based on chrome and firefox renderings. * Adding requested accessibility changes * Added Kavita-webui repo to UI/Web * Special parsing issues (#361) * Update README.md Added demo link to Readme and tweaked Sentry icon * Adds some regex cases from manga downloaded through FMD2. For parsing specials, if the marker is found, try to overwrite the series with the folder the manga is in, rather than what we parse from filename. * Version bump * Changed company to point to our domain * Fixed copyright to point to our domain * Adding test github workflow and test build file (#362) * Fixing copy fail in monorepo-test workflow * fixing shell script to be executable * fixing permission issue * Folder Parsing (#366) * New: Ability to parse volume and chapter from directory tree, rather than exclusively from filename. (#313) * Fixed: Fixed an edge case where GetFoldersTillRoot if given a non-existent root in the file path, would result in an infinite loop. * Book Reader Bugs (#367) * Fixed: Fixed an issue where when tap to paginate is on, clicking off the settings menu doesn't close it. * Fixed: Fixed the tint color on book reader being different from manga reader. * Fixed: Reworked the clickable overlay for tap to paginate so links are still clickable when tap to paginate is on. * Build on monorepo * Book Reader Intersection Handler not firing (#369) * Fixed: Fixed an issue where intersection observer wouldn't be triggered when book page had no images (Book reader bookmark not firing while scrolling #360) * Raw Image Support (#375) * New: Ability to add Raw Image folders to Kavita via new library Types Images (Comic) and Images (Manga). Images must belong to a folder, they cannot exist in the root directory. It is important to at least put a second folder (minimum) with a Volume of Chapter, else you will end up with each image as a special which is not easily readable. * Changed: When caching images for raw images, do it much faster and return earlier if the files have already been cached. Co-authored-by: Robbie Davis * Fixed a bug in the circular array which would not properly roll index over for applyFor (#377) * Fixed: Manga reader's prefetching buffer had issues with rolling over index, which would require a manual image load every 7 pages. (#372) * Adding new ui dist folder to gitignore * Added stats folder persistence (#382) * Added demo link to Readme and tweaked Sentry icon * Added a symbolic link to persist the stats folder between docker container updates. Co-authored-by: Joseph Milazzo * Lots of UI fixes and changes (#383) * After we flatten, remove any non image files as we shouldn't iterate over them * Fixed a case for next/prev chapter where if we have a volume then chapters attached afterwards, there would be improper movement due to how sorting works. * Fixed an issue where no-connection would not resume where the loss of connection occured * Fixed an issue where after creating a new user, their Last Active Date would show as a weird date, instead of "Never" * Sort files in card detail to mimic reading order * Implemented a single source of executing actions (card or main page) and added actionables on library detail page. * Refactored series actions into action service * Implemented common handling for entity actions in a dedicated service * Fixed build script for new monorepo layout. * Cleaned up nav header subscriptions * Updated the favicon/icons to work on different devices as home screen shortcuts * Fixed: Fixed issue where if you had a volume with 1 volume based file and a chapter file, the next/prev chapters wouldn't work (Fixes #380) * Fixed: When connection is lost to backend, saving current page url and resuming when connection reestablished was not working (Fixes #379) * Fixed: When creating a new user, a strange date format was shown in Last Active due to not having been active. Now "Never" shows (Fixes #376) * Fixed: When showing files for a volume/chapter, the files are now sorted in the order you will read them in (Fixes #378) * Added: Library detail now has actionable menu next to header, so you can kick off a scan or metadata refresh (Closes #363) * Changed: When performing actions like marking as read/unread on series detail page, the actionable button will disable until the request finishes. (Closes #381) * Changed: Favicon and Icons have been updated so when saving webpage to home screen, it should show a proper icon (Closes #356) * Lots of Bugfixes and Tweaks (#387) * Fixed: Fixed a bug in how we get images. When dealing with raw images, we need special logic (Monorepo) * Added: (Manga Reader) When we are within 10 pages of the beginning of a manga, prefetch the prev chapter * Fixed: (Manga Reader) The slider would sometime skip pages and would have leftover track on last page. * Fixed: (Raw Images) When calculating cover image for Raw Image entities, only select image files * Fixed: Fixed a logic bug where raw image based entities wouldn't send back the correct page (Monorepo) * Changed: When deleting a library, it can take a long time. Disable delete buttons until the deletion finishes * Added: (Parser) Added a regex case for "Series - Ch. 20 - Part" * Changed: Try to show the files in volume/chapter detail modal in the reading order. * Fixed: Next/Previous chapter was not working in all cases from previous Monorepo commit. * Bugfix/locked name reset (#389) * Fixed: Fixed an issue where if you manually rename a series, then remove/modify an entity related to the series, the series would be deleted and re-created with the original, parsed name. * Scan Series (#390) * Refactored Library delete to use a transaction. * Ensure we parse "Series Name - Chapter XXX" before "Series Name - Vol XXX" * Ensure if GetFoldersTillRoot is called with a fullPath containing a file, that we ignore the file for returned folders. * Changed: From the series actionable menu, instead of scan library, which would kick off a filesystem scan on the library the series belonged to, instead we have "scan series" which will scan the folders represented by that series. If that series has files in the root of the library, the library root is scanned, but only said series files will be processed. This can make a refresh occur in under 500 ms (Fixes #371) * Fixed: Fixed a bad parsing case for "Series Name - Vol.01 Chapter 029 8 Years Ago" where somehow the chapter would parse as "029 8", thus making the file a special rather than chapter 29. * Fixes a bug where the root path and the full path share a common word, like root: "/Test library" and full path "/Test library/Test" which caused "/Test" to be taken out of root and thus GetFoldersTillRoot would never finish * About Section (#394) * Added: Added an about section with version, links to discord, github, donations, etc. * Fixed: Fixed some parsing issues that caused "Series Name - Volume X Chapter Y" to parse as "Series Name - Volume X" from a previous change in develop. * Cleaning up monorepo build files * Fixing permission issues Co-authored-by: Leonardo Dias Co-authored-by: Robbie Davis Co-authored-by: Leonardo Dias Co-authored-by: Milazzo, Joseph (jm520e) Co-authored-by: Chris Plaatjes --- .browserslistrc | 17 + .editorconfig | 21 + .github/workflows/build.yml | 2 +- .github/workflows/monorepo-test.yml | 38 + .github/workflows/nightly-docker.yml | 15 +- .github/workflows/sentry-release.yml | 42 + .github/workflows/stable-docker.yml | 13 +- .gitignore | 46 +- .vscode/settings.json | 50 + API.Tests/Extensions/SeriesExtensionsTests.cs | 28 +- API.Tests/Parser/MangaParserTests.cs | 81 +- API.Tests/Services/BookServiceTests.cs | 4 +- API.Tests/Services/DirectoryServiceTests.cs | 28 +- API.Tests/Services/ScannerServiceTests.cs | 47 +- API/API.csproj | 18 +- API/Comparators/ChapterSortComparer.cs | 23 +- API/Controllers/.editorconfig | 0 API/Controllers/BookController.cs | 1 + API/Controllers/LibraryController.cs | 66 +- API/Controllers/ReaderController.cs | 72 +- API/Controllers/SeriesController.cs | 52 +- API/Controllers/ServerController.cs | 25 +- API/Controllers/SettingsController.cs | 26 +- API/Data/LibraryRepository.cs | 41 +- API/Entities/Enums/LibraryType.cs | 8 +- API/Entities/Enums/ReaderMode.cs | 5 +- API/Entities/Genre.cs | 4 +- API/Entities/SeriesMetadata.cs | 12 +- .../ApplicationServiceExtensions.cs | 25 +- API/Extensions/DirectoryInfoExtensions.cs | 28 +- API/Extensions/SeriesExtensions.cs | 19 +- API/Extensions/ServiceCollectionExtensions.cs | 5 +- API/Interfaces/ILibraryRepository.cs | 4 +- API/Interfaces/ITaskScheduler.cs | 3 +- API/Interfaces/Services/IArchiveService.cs | 2 +- API/Interfaces/{ => Services}/IBookService.cs | 4 +- API/Interfaces/Services/IDirectoryService.cs | 5 +- API/Interfaces/Services/IImageService.cs | 10 + API/Interfaces/Services/IScannerService.cs | 6 +- API/Parser/Parser.cs | 228 +- API/Program.cs | 13 +- API/Services/ArchiveService.cs | 55 +- API/Services/BookService.cs | 46 +- API/Services/CacheService.cs | 77 +- API/Services/Clients/StatsApiClient.cs | 3 +- API/Services/DirectoryService.cs | 100 +- API/Services/ImageService.cs | 71 + API/Services/MetadataService.cs | 63 +- API/Services/StatsService.cs | 4 +- API/Services/TaskScheduler.cs | 31 +- API/Services/Tasks/ScannerService.cs | 304 +- API/Startup.cs | 34 +- Kavita.Common/Extensions/EnumExtensions.cs | 21 + Kavita.Common/Extensions/PathExtensions.cs | 12 + Kavita.Common/HashUtil.cs | 10 +- Kavita.Common/Kavita.Common.csproj | 11 +- UI/Web/LICENSE | 674 + UI/Web/README.md | 27 + UI/Web/angular.json | 139 + UI/Web/e2e/protractor.conf.js | 37 + UI/Web/e2e/src/app.e2e-spec.ts | 23 + UI/Web/e2e/src/app.po.ts | 11 + UI/Web/e2e/tsconfig.json | 13 + UI/Web/package-lock.json | 37201 ++++++++++++++++ UI/Web/package.json | 78 + UI/Web/setupJest.ts | 19 + UI/Web/src/app/_guards/admin.guard.ts | 28 + UI/Web/src/app/_guards/auth.guard.ts | 27 + .../src/app/_guards/library-access.guard.ts | 17 + .../app/_interceptors/error.interceptor.ts | 121 + .../src/app/_interceptors/jwt.interceptor.ts | 36 + .../edit-collection-tags.component.html | 53 + .../edit-collection-tags.component.scss | 0 .../edit-collection-tags.component.ts | 121 + .../edit-series-modal.component.html | 169 + .../edit-series-modal.component.scss | 3 + .../edit-series-modal.component.ts | 148 + .../review-series-modal.component.html | 32 + .../review-series-modal.component.scss | 0 .../review-series-modal.component.ts | 41 + UI/Web/src/app/_models/bookmark.ts | 5 + UI/Web/src/app/_models/chapter.ts | 14 + UI/Web/src/app/_models/client-info.ts | 12 + UI/Web/src/app/_models/collection-tag.ts | 7 + UI/Web/src/app/_models/details-version.ts | 4 + UI/Web/src/app/_models/in-progress-chapter.ts | 14 + UI/Web/src/app/_models/library.ts | 15 + UI/Web/src/app/_models/manga-file.ts | 7 + UI/Web/src/app/_models/manga-format.ts | 6 + UI/Web/src/app/_models/member.ts | 10 + UI/Web/src/app/_models/pagination.ts | 11 + UI/Web/src/app/_models/person.ts | 10 + .../_models/preferences/page-split-option.ts | 5 + .../app/_models/preferences/preferences.ts | 30 + .../app/_models/preferences/reader-mode.ts | 14 + .../_models/preferences/reading-direction.ts | 4 + .../app/_models/preferences/scaling-option.ts | 6 + UI/Web/src/app/_models/search-result.ts | 9 + UI/Web/src/app/_models/series-metadata.ts | 10 + UI/Web/src/app/_models/series.ts | 18 + UI/Web/src/app/_models/user.ts | 9 + UI/Web/src/app/_models/volume.ts | 13 + UI/Web/src/app/_services/account.service.ts | 126 + .../app/_services/action-factory.service.ts | 202 + UI/Web/src/app/_services/action.service.ts | 199 + .../app/_services/collection-tag.service.ts | 38 + UI/Web/src/app/_services/image.service.ts | 41 + UI/Web/src/app/_services/library.service.ts | 89 + UI/Web/src/app/_services/member.service.ts | 38 + UI/Web/src/app/_services/nav.service.ts | 39 + UI/Web/src/app/_services/reader.service.ts | 107 + UI/Web/src/app/_services/series.service.ts | 163 + UI/Web/src/app/_services/server.service.ts | 26 + UI/Web/src/app/_services/stats.service.ts | 18 + .../directory-picker.component.html | 54 + .../directory-picker.component.scss | 15 + .../directory-picker.component.ts | 110 + .../edit-rbs-modal.component.html | 23 + .../edit-rbs-modal.component.scss | 0 .../edit-rbs-modal.component.ts | 70 + .../library-access-modal.component.html | 23 + .../library-access-modal.component.scss | 0 .../library-access-modal.component.ts | 70 + .../library-editor-modal.component.html | 40 + .../library-editor-modal.component.scss | 0 .../library-editor-modal.component.ts | 104 + .../reset-password-modal.component.html | 21 + .../reset-password-modal.component.scss | 0 .../reset-password-modal.component.ts | 36 + UI/Web/src/app/admin/_models/server-info.ts | 8 + .../src/app/admin/_models/server-settings.ts | 8 + UI/Web/src/app/admin/admin-routing.module.ts | 22 + UI/Web/src/app/admin/admin.module.ts | 47 + .../admin/dashboard/dashboard.component.html | 29 + .../admin/dashboard/dashboard.component.scss | 0 .../admin/dashboard/dashboard.component.ts | 52 + UI/Web/src/app/admin/filter.pipe.ts | 16 + .../manage-library.component.html | 33 + .../manage-library.component.scss | 0 .../manage-library.component.ts | 98 + .../manage-settings.component.html | 64 + .../manage-settings.component.scss | 11 + .../manage-settings.component.ts | 61 + .../manage-system.component.html | 43 + .../manage-system.component.scss | 0 .../manage-system/manage-system.component.ts | 61 + .../manage-users/manage-users.component.html | 50 + .../manage-users/manage-users.component.scss | 0 .../manage-users/manage-users.component.ts | 107 + UI/Web/src/app/admin/settings.service.ts | 34 + .../all-collections.component.html | 23 + .../all-collections.component.scss | 0 .../all-collections.component.ts | 108 + UI/Web/src/app/app-routing.module.ts | 61 + UI/Web/src/app/app.component.html | 5 + UI/Web/src/app/app.component.scss | 0 UI/Web/src/app/app.component.ts | 30 + UI/Web/src/app/app.module.ts | 142 + .../book-reader/_models/book-chapter-item.ts | 6 + .../src/app/book-reader/book-reader.module.ts | 25 + .../book-reader/book-reader.router.module.ts | 17 + .../book-reader/book-reader.component.html | 134 + .../book-reader/book-reader.component.scss | 203 + .../book-reader/book-reader.component.ts | 811 + UI/Web/src/app/book-reader/book.service.ts | 41 + UI/Web/src/app/book-reader/safe-style.pipe.ts | 15 + .../carousel-reel.component.html | 19 + .../carousel-reel.component.scss | 49 + .../carousel-reel/carousel-reel.component.ts | 42 + UI/Web/src/app/carousel/carousel.module.ts | 18 + UI/Web/src/app/home/home.component.html | 11 + UI/Web/src/app/home/home.component.scss | 0 UI/Web/src/app/home/home.component.ts | 58 + .../library-detail.component.html | 11 + .../library-detail.component.scss | 11 + .../library-detail.component.ts | 91 + UI/Web/src/app/library/library.component.html | 33 + UI/Web/src/app/library/library.component.scss | 0 UI/Web/src/app/library/library.component.ts | 118 + .../app/manga-reader/_models/chapter-info.ts | 10 + .../app/manga-reader/_models/reader-enums.ts | 22 + .../app/manga-reader/_models/webtoon-image.ts | 4 + .../infinite-scroller.component.html | 15 + .../infinite-scroller.component.scss | 7 + .../infinite-scroller.component.ts | 414 + .../manga-reader/manga-reader.component.html | 130 + .../manga-reader/manga-reader.component.scss | 254 + .../manga-reader/manga-reader.component.ts | 951 + .../app/manga-reader/manga-reader.module.ts | 30 + .../manga-reader.router.module.ts | 17 + .../app/nav-header/nav-header.component.html | 80 + .../app/nav-header/nav-header.component.scss | 68 + .../app/nav-header/nav-header.component.ts | 101 + .../not-connected.component.html | 3 + .../not-connected.component.scss | 0 .../not-connected/not-connected.component.ts | 26 + .../person-badge/person-badge.component.html | 12 + .../person-badge/person-badge.component.scss | 24 + .../person-badge/person-badge.component.ts | 15 + .../recently-added.component.html | 12 + .../recently-added.component.scss | 0 .../recently-added.component.ts | 54 + .../series-detail.component.html | 124 + .../series-detail.component.scss | 30 + .../series-detail/series-detail.component.ts | 416 + .../card-details-modal.component.html | 65 + .../card-details-modal.component.scss | 3 + .../card-details-modal.component.ts | 66 + .../shared/_services/dom-helper.service.ts | 200 + .../app/shared/_services/download.service.ts | 124 + .../shared/_services/natural-sort.service.ts | 69 + .../app/shared/_services/utility.service.ts | 58 + UI/Web/src/app/shared/a11y-click.directive.ts | 42 + .../card-detail-layout.component.html | 64 + .../card-detail-layout.component.scss | 0 .../card-detail-layout.component.ts | 50 + .../card-actionables.component.html | 8 + .../card-actionables.component.scss | 3 + .../card-actionables.component.ts | 36 + .../shared/card-item/card-item.component.html | 29 + .../shared/card-item/card-item.component.scss | 99 + .../shared/card-item/card-item.component.ts | 79 + .../confirm-dialog/_models/confirm-button.ts | 4 + .../confirm-dialog/_models/confirm-config.ts | 8 + .../confirm-dialog.component.html | 16 + .../confirm-dialog.component.scss | 0 .../confirm-dialog.component.ts | 42 + UI/Web/src/app/shared/confirm.service.ts | 65 + .../shared/data-structures/circular-array.ts | 99 + .../src/app/shared/data-structures/queue.ts | 27 + .../src/app/shared/data-structures/stack.ts | 29 + .../app/shared/drawer/drawer.component.html | 15 + .../app/shared/drawer/drawer.component.scss | 56 + .../src/app/shared/drawer/drawer.component.ts | 31 + .../library-card/library-card.component.html | 15 + .../library-card/library-card.component.scss | 58 + .../library-card/library-card.component.ts | 77 + .../shared/read-more/read-more.component.html | 4 + .../shared/read-more/read-more.component.scss | 6 + .../shared/read-more/read-more.component.ts | 41 + .../register-member.component.html | 27 + .../register-member.component.scss | 0 .../register-member.component.ts | 44 + UI/Web/src/app/shared/safe-html.pipe.ts | 15 + .../series-card/series-card.component.html | 3 + .../series-card/series-card.component.scss | 0 .../series-card/series-card.component.ts | 146 + UI/Web/src/app/shared/shared.module.ts | 66 + .../app/shared/show-if-scrollbar.directive.ts | 22 + .../shared/tag-badge/tag-badge.component.html | 3 + .../shared/tag-badge/tag-badge.component.scss | 25 + .../shared/tag-badge/tag-badge.component.ts | 15 + UI/Web/src/app/shared/utils/clientUtils.ts | 21 + .../src/app/typeahead/typeahead-settings.ts | 52 + .../app/typeahead/typeahead.component.html | 37 + .../app/typeahead/typeahead.component.scss | 84 + .../src/app/typeahead/typeahead.component.ts | 387 + UI/Web/src/app/typeahead/typeahead.module.ts | 23 + .../app/user-login/user-login.component.html | 28 + .../app/user-login/user-login.component.scss | 68 + .../user-login/user-login.component.spec.ts | 94 + .../app/user-login/user-login.component.ts | 57 + .../user-preferences.component.html | 192 + .../user-preferences.component.scss | 3 + .../user-preferences.component.ts | 161 + UI/Web/src/assets/.gitkeep | 0 .../EBGaramond-Italic-VariableFont_wght.ttf | Bin 0 -> 829752 bytes .../EBGaramond-VariableFont_wght.ttf | Bin 0 -> 897728 bytes UI/Web/src/assets/fonts/EBGarmond/OFL.txt | 93 + .../assets/fonts/Fira_Sans/FiraSans-Black.ttf | Bin 0 -> 491084 bytes .../fonts/Fira_Sans/FiraSans-BlackItalic.ttf | Bin 0 -> 511300 bytes .../assets/fonts/Fira_Sans/FiraSans-Bold.ttf | Bin 0 -> 473492 bytes .../fonts/Fira_Sans/FiraSans-BoldItalic.ttf | Bin 0 -> 490668 bytes .../fonts/Fira_Sans/FiraSans-ExtraBold.ttf | Bin 0 -> 480720 bytes .../Fira_Sans/FiraSans-ExtraBoldItalic.ttf | Bin 0 -> 520684 bytes .../fonts/Fira_Sans/FiraSans-ExtraLight.ttf | Bin 0 -> 430924 bytes .../Fira_Sans/FiraSans-ExtraLightItalic.ttf | Bin 0 -> 446596 bytes .../fonts/Fira_Sans/FiraSans-Italic.ttf | Bin 0 -> 456032 bytes .../assets/fonts/Fira_Sans/FiraSans-Light.ttf | Bin 0 -> 433436 bytes .../fonts/Fira_Sans/FiraSans-LightItalic.ttf | Bin 0 -> 447028 bytes .../fonts/Fira_Sans/FiraSans-Medium.ttf | Bin 0 -> 441000 bytes .../fonts/Fira_Sans/FiraSans-MediumItalic.ttf | Bin 0 -> 456472 bytes .../fonts/Fira_Sans/FiraSans-Regular.ttf | Bin 0 -> 440560 bytes .../fonts/Fira_Sans/FiraSans-SemiBold.ttf | Bin 0 -> 472768 bytes .../Fira_Sans/FiraSans-SemiBoldItalic.ttf | Bin 0 -> 490340 bytes .../assets/fonts/Fira_Sans/FiraSans-Thin.ttf | Bin 0 -> 426428 bytes .../fonts/Fira_Sans/FiraSans-ThinItalic.ttf | Bin 0 -> 441000 bytes UI/Web/src/assets/fonts/Fira_Sans/OFL.txt | 93 + UI/Web/src/assets/fonts/Lato/Lato-Black.ttf | Bin 0 -> 69484 bytes .../assets/fonts/Lato/Lato-BlackItalic.ttf | Bin 0 -> 71948 bytes UI/Web/src/assets/fonts/Lato/Lato-Bold.ttf | Bin 0 -> 73316 bytes .../src/assets/fonts/Lato/Lato-BoldItalic.ttf | Bin 0 -> 77680 bytes UI/Web/src/assets/fonts/Lato/Lato-Italic.ttf | Bin 0 -> 75744 bytes UI/Web/src/assets/fonts/Lato/Lato-Light.ttf | Bin 0 -> 77192 bytes .../assets/fonts/Lato/Lato-LightItalic.ttf | Bin 0 -> 49064 bytes UI/Web/src/assets/fonts/Lato/Lato-Regular.ttf | Bin 0 -> 75136 bytes UI/Web/src/assets/fonts/Lato/Lato-Thin.ttf | Bin 0 -> 69968 bytes .../src/assets/fonts/Lato/Lato-ThinItalic.ttf | Bin 0 -> 48848 bytes UI/Web/src/assets/fonts/Lato/OFL.txt | 93 + .../LibreBaskerville-Bold.ttf | Bin 0 -> 155428 bytes .../LibreBaskerville-Italic.ttf | Bin 0 -> 172212 bytes .../LibreBaskerville-Regular.ttf | Bin 0 -> 154676 bytes .../assets/fonts/Libre_Baskerville/OFL.txt | 94 + .../Libre_Caslon/LibreCaslonText-Bold.ttf | Bin 0 -> 91056 bytes .../Libre_Caslon/LibreCaslonText-Italic.ttf | Bin 0 -> 100292 bytes .../Libre_Caslon/LibreCaslonText-Regular.ttf | Bin 0 -> 91220 bytes UI/Web/src/assets/fonts/Libre_Caslon/OFL.txt | 93 + .../fonts/Merriweather/Merriweather-Black.ttf | Bin 0 -> 141624 bytes .../Merriweather/Merriweather-BlackItalic.ttf | Bin 0 -> 142520 bytes .../fonts/Merriweather/Merriweather-Bold.ttf | Bin 0 -> 141964 bytes .../Merriweather/Merriweather-BoldItalic.ttf | Bin 0 -> 143736 bytes .../Merriweather/Merriweather-Italic.ttf | Bin 0 -> 142548 bytes .../fonts/Merriweather/Merriweather-Light.ttf | Bin 0 -> 148100 bytes .../Merriweather/Merriweather-LightItalic.ttf | Bin 0 -> 141956 bytes .../Merriweather/Merriweather-Regular.ttf | Bin 0 -> 149092 bytes UI/Web/src/assets/fonts/Merriweather/OFL.txt | 93 + .../fonts/Nanum_Gothic/NanumGothic-Bold.ttf | Bin 0 -> 4004184 bytes .../Nanum_Gothic/NanumGothic-ExtraBold.ttf | Bin 0 -> 3883296 bytes .../Nanum_Gothic/NanumGothic-Regular.ttf | Bin 0 -> 4091796 bytes UI/Web/src/assets/fonts/Nanum_Gothic/OFL.txt | 97 + UI/Web/src/assets/fonts/Oswald/OFL.txt | 93 + .../fonts/Oswald/Oswald-VariableFont_wght.ttf | Bin 0 -> 153152 bytes UI/Web/src/assets/fonts/Oswald/README.txt | 68 + .../fonts/Oswald/static/Oswald-Bold.ttf | Bin 0 -> 91676 bytes .../fonts/Oswald/static/Oswald-ExtraLight.ttf | Bin 0 -> 91364 bytes .../fonts/Oswald/static/Oswald-Light.ttf | Bin 0 -> 91500 bytes .../fonts/Oswald/static/Oswald-Medium.ttf | Bin 0 -> 91648 bytes .../fonts/Oswald/static/Oswald-Regular.ttf | Bin 0 -> 91400 bytes .../fonts/Oswald/static/Oswald-SemiBold.ttf | Bin 0 -> 91700 bytes UI/Web/src/assets/fonts/RocknRoll_One/OFL.txt | 93 + .../RocknRoll_One/RocknRollOne-Regular.ttf | Bin 0 -> 5374328 bytes UI/Web/src/assets/fonts/Spartan/OFL.txt | 93 + .../Spartan/Spartan-VariableFont_wght.ttf | Bin 0 -> 88048 bytes .../assets/icons/android-chrome-192x192.png | Bin 0 -> 10628 bytes .../assets/icons/android-chrome-256x256.png | Bin 0 -> 12035 bytes UI/Web/src/assets/icons/apple-touch-icon.png | Bin 0 -> 3268 bytes UI/Web/src/assets/icons/browserconfig.xml | 9 + UI/Web/src/assets/icons/favicon-16x16.png | Bin 0 -> 807 bytes UI/Web/src/assets/icons/favicon-32x32.png | Bin 0 -> 1292 bytes UI/Web/src/assets/icons/favicon.ico | Bin 0 -> 15086 bytes UI/Web/src/assets/icons/mstile-150x150.png | Bin 0 -> 6896 bytes .../assets/images/error-placeholder-min.png | Bin 0 -> 902 bytes .../src/assets/images/error-placeholder.png | Bin 0 -> 2607 bytes .../assets/images/error-placeholder2-min.png | Bin 0 -> 923 bytes .../images/error-placeholder2.dark-min.png | Bin 0 -> 440 bytes .../assets/images/error-placeholder2.dark.png | Bin 0 -> 1623 bytes .../src/assets/images/error-placeholder2.png | Bin 0 -> 2381 bytes .../assets/images/image-placeholder-min.png | Bin 0 -> 1062 bytes .../images/image-placeholder.dark-min.png | Bin 0 -> 744 bytes .../assets/images/image-placeholder.dark.png | Bin 0 -> 2099 bytes .../src/assets/images/image-placeholder.png | Bin 0 -> 2770 bytes .../src/assets/images/kavita-book-cropped.png | Bin 0 -> 4567 bytes UI/Web/src/assets/images/login-bg.jpg | Bin 0 -> 243627 bytes UI/Web/src/assets/images/logo.png | Bin 0 -> 8715 bytes UI/Web/src/assets/images/preset-light.png | Bin 0 -> 42165 bytes UI/Web/src/assets/themes/dark.scss | 179 + UI/Web/src/environments/environment.prod.ts | 4 + UI/Web/src/environments/environment.ts | 17 + UI/Web/src/index.html | 43 + UI/Web/src/main.ts | 14 + UI/Web/src/polyfills.ts | 67 + UI/Web/src/site.webmanifest | 19 + UI/Web/src/styles.scss | 116 + UI/Web/src/theme/_colors.scss | 7 + UI/Web/src/theme/_toastr.scss | 183 + UI/Web/tsconfig.app.json | 15 + UI/Web/tsconfig.json | 31 + UI/Web/tsconfig.spec.json | 18 + UI/Web/tslint.json | 155 + action-build.sh => action-build.sh.OLD | 0 build.sh | 16 +- docker-build.sh | 0 entrypoint.sh | 14 + monorepo-build.sh | 88 + 374 files changed, 53069 insertions(+), 617 deletions(-) create mode 100644 .browserslistrc create mode 100644 .editorconfig create mode 100644 .github/workflows/monorepo-test.yml create mode 100644 .github/workflows/sentry-release.yml create mode 100644 .vscode/settings.json create mode 100644 API/Controllers/.editorconfig rename API/Interfaces/{ => Services}/IBookService.cs (96%) create mode 100644 API/Interfaces/Services/IImageService.cs create mode 100644 API/Services/ImageService.cs create mode 100644 Kavita.Common/Extensions/EnumExtensions.cs create mode 100644 Kavita.Common/Extensions/PathExtensions.cs create mode 100644 UI/Web/LICENSE create mode 100644 UI/Web/README.md create mode 100644 UI/Web/angular.json create mode 100644 UI/Web/e2e/protractor.conf.js create mode 100644 UI/Web/e2e/src/app.e2e-spec.ts create mode 100644 UI/Web/e2e/src/app.po.ts create mode 100644 UI/Web/e2e/tsconfig.json create mode 100644 UI/Web/package-lock.json create mode 100644 UI/Web/package.json create mode 100644 UI/Web/setupJest.ts create mode 100644 UI/Web/src/app/_guards/admin.guard.ts create mode 100644 UI/Web/src/app/_guards/auth.guard.ts create mode 100644 UI/Web/src/app/_guards/library-access.guard.ts create mode 100644 UI/Web/src/app/_interceptors/error.interceptor.ts create mode 100644 UI/Web/src/app/_interceptors/jwt.interceptor.ts create mode 100644 UI/Web/src/app/_modals/edit-collection-tags/edit-collection-tags.component.html create mode 100644 UI/Web/src/app/_modals/edit-collection-tags/edit-collection-tags.component.scss create mode 100644 UI/Web/src/app/_modals/edit-collection-tags/edit-collection-tags.component.ts create mode 100644 UI/Web/src/app/_modals/edit-series-modal/edit-series-modal.component.html create mode 100644 UI/Web/src/app/_modals/edit-series-modal/edit-series-modal.component.scss create mode 100644 UI/Web/src/app/_modals/edit-series-modal/edit-series-modal.component.ts create mode 100644 UI/Web/src/app/_modals/review-series-modal/review-series-modal.component.html create mode 100644 UI/Web/src/app/_modals/review-series-modal/review-series-modal.component.scss create mode 100644 UI/Web/src/app/_modals/review-series-modal/review-series-modal.component.ts create mode 100644 UI/Web/src/app/_models/bookmark.ts create mode 100644 UI/Web/src/app/_models/chapter.ts create mode 100644 UI/Web/src/app/_models/client-info.ts create mode 100644 UI/Web/src/app/_models/collection-tag.ts create mode 100644 UI/Web/src/app/_models/details-version.ts create mode 100644 UI/Web/src/app/_models/in-progress-chapter.ts create mode 100644 UI/Web/src/app/_models/library.ts create mode 100644 UI/Web/src/app/_models/manga-file.ts create mode 100644 UI/Web/src/app/_models/manga-format.ts create mode 100644 UI/Web/src/app/_models/member.ts create mode 100644 UI/Web/src/app/_models/pagination.ts create mode 100644 UI/Web/src/app/_models/person.ts create mode 100644 UI/Web/src/app/_models/preferences/page-split-option.ts create mode 100644 UI/Web/src/app/_models/preferences/preferences.ts create mode 100644 UI/Web/src/app/_models/preferences/reader-mode.ts create mode 100644 UI/Web/src/app/_models/preferences/reading-direction.ts create mode 100644 UI/Web/src/app/_models/preferences/scaling-option.ts create mode 100644 UI/Web/src/app/_models/search-result.ts create mode 100644 UI/Web/src/app/_models/series-metadata.ts create mode 100644 UI/Web/src/app/_models/series.ts create mode 100644 UI/Web/src/app/_models/user.ts create mode 100644 UI/Web/src/app/_models/volume.ts create mode 100644 UI/Web/src/app/_services/account.service.ts create mode 100644 UI/Web/src/app/_services/action-factory.service.ts create mode 100644 UI/Web/src/app/_services/action.service.ts create mode 100644 UI/Web/src/app/_services/collection-tag.service.ts create mode 100644 UI/Web/src/app/_services/image.service.ts create mode 100644 UI/Web/src/app/_services/library.service.ts create mode 100644 UI/Web/src/app/_services/member.service.ts create mode 100644 UI/Web/src/app/_services/nav.service.ts create mode 100644 UI/Web/src/app/_services/reader.service.ts create mode 100644 UI/Web/src/app/_services/series.service.ts create mode 100644 UI/Web/src/app/_services/server.service.ts create mode 100644 UI/Web/src/app/_services/stats.service.ts create mode 100644 UI/Web/src/app/admin/_modals/directory-picker/directory-picker.component.html create mode 100644 UI/Web/src/app/admin/_modals/directory-picker/directory-picker.component.scss create mode 100644 UI/Web/src/app/admin/_modals/directory-picker/directory-picker.component.ts create mode 100644 UI/Web/src/app/admin/_modals/edit-rbs-modal/edit-rbs-modal.component.html create mode 100644 UI/Web/src/app/admin/_modals/edit-rbs-modal/edit-rbs-modal.component.scss create mode 100644 UI/Web/src/app/admin/_modals/edit-rbs-modal/edit-rbs-modal.component.ts create mode 100644 UI/Web/src/app/admin/_modals/library-access-modal/library-access-modal.component.html create mode 100644 UI/Web/src/app/admin/_modals/library-access-modal/library-access-modal.component.scss create mode 100644 UI/Web/src/app/admin/_modals/library-access-modal/library-access-modal.component.ts create mode 100644 UI/Web/src/app/admin/_modals/library-editor-modal/library-editor-modal.component.html create mode 100644 UI/Web/src/app/admin/_modals/library-editor-modal/library-editor-modal.component.scss create mode 100644 UI/Web/src/app/admin/_modals/library-editor-modal/library-editor-modal.component.ts create mode 100644 UI/Web/src/app/admin/_modals/reset-password-modal/reset-password-modal.component.html create mode 100644 UI/Web/src/app/admin/_modals/reset-password-modal/reset-password-modal.component.scss create mode 100644 UI/Web/src/app/admin/_modals/reset-password-modal/reset-password-modal.component.ts create mode 100644 UI/Web/src/app/admin/_models/server-info.ts create mode 100644 UI/Web/src/app/admin/_models/server-settings.ts create mode 100644 UI/Web/src/app/admin/admin-routing.module.ts create mode 100644 UI/Web/src/app/admin/admin.module.ts create mode 100644 UI/Web/src/app/admin/dashboard/dashboard.component.html create mode 100644 UI/Web/src/app/admin/dashboard/dashboard.component.scss create mode 100644 UI/Web/src/app/admin/dashboard/dashboard.component.ts create mode 100644 UI/Web/src/app/admin/filter.pipe.ts create mode 100644 UI/Web/src/app/admin/manage-library/manage-library.component.html create mode 100644 UI/Web/src/app/admin/manage-library/manage-library.component.scss create mode 100644 UI/Web/src/app/admin/manage-library/manage-library.component.ts create mode 100644 UI/Web/src/app/admin/manage-settings/manage-settings.component.html create mode 100644 UI/Web/src/app/admin/manage-settings/manage-settings.component.scss create mode 100644 UI/Web/src/app/admin/manage-settings/manage-settings.component.ts create mode 100644 UI/Web/src/app/admin/manage-system/manage-system.component.html create mode 100644 UI/Web/src/app/admin/manage-system/manage-system.component.scss create mode 100644 UI/Web/src/app/admin/manage-system/manage-system.component.ts create mode 100644 UI/Web/src/app/admin/manage-users/manage-users.component.html create mode 100644 UI/Web/src/app/admin/manage-users/manage-users.component.scss create mode 100644 UI/Web/src/app/admin/manage-users/manage-users.component.ts create mode 100644 UI/Web/src/app/admin/settings.service.ts create mode 100644 UI/Web/src/app/all-collections/all-collections.component.html create mode 100644 UI/Web/src/app/all-collections/all-collections.component.scss create mode 100644 UI/Web/src/app/all-collections/all-collections.component.ts create mode 100644 UI/Web/src/app/app-routing.module.ts create mode 100644 UI/Web/src/app/app.component.html create mode 100644 UI/Web/src/app/app.component.scss create mode 100644 UI/Web/src/app/app.component.ts create mode 100644 UI/Web/src/app/app.module.ts create mode 100644 UI/Web/src/app/book-reader/_models/book-chapter-item.ts create mode 100644 UI/Web/src/app/book-reader/book-reader.module.ts create mode 100644 UI/Web/src/app/book-reader/book-reader.router.module.ts create mode 100644 UI/Web/src/app/book-reader/book-reader/book-reader.component.html create mode 100644 UI/Web/src/app/book-reader/book-reader/book-reader.component.scss create mode 100644 UI/Web/src/app/book-reader/book-reader/book-reader.component.ts create mode 100644 UI/Web/src/app/book-reader/book.service.ts create mode 100644 UI/Web/src/app/book-reader/safe-style.pipe.ts create mode 100644 UI/Web/src/app/carousel/carousel-reel/carousel-reel.component.html create mode 100644 UI/Web/src/app/carousel/carousel-reel/carousel-reel.component.scss create mode 100644 UI/Web/src/app/carousel/carousel-reel/carousel-reel.component.ts create mode 100644 UI/Web/src/app/carousel/carousel.module.ts create mode 100644 UI/Web/src/app/home/home.component.html create mode 100644 UI/Web/src/app/home/home.component.scss create mode 100644 UI/Web/src/app/home/home.component.ts create mode 100644 UI/Web/src/app/library-detail/library-detail.component.html create mode 100644 UI/Web/src/app/library-detail/library-detail.component.scss create mode 100644 UI/Web/src/app/library-detail/library-detail.component.ts create mode 100644 UI/Web/src/app/library/library.component.html create mode 100644 UI/Web/src/app/library/library.component.scss create mode 100644 UI/Web/src/app/library/library.component.ts create mode 100644 UI/Web/src/app/manga-reader/_models/chapter-info.ts create mode 100644 UI/Web/src/app/manga-reader/_models/reader-enums.ts create mode 100644 UI/Web/src/app/manga-reader/_models/webtoon-image.ts create mode 100644 UI/Web/src/app/manga-reader/infinite-scroller/infinite-scroller.component.html create mode 100644 UI/Web/src/app/manga-reader/infinite-scroller/infinite-scroller.component.scss create mode 100644 UI/Web/src/app/manga-reader/infinite-scroller/infinite-scroller.component.ts create mode 100644 UI/Web/src/app/manga-reader/manga-reader.component.html create mode 100644 UI/Web/src/app/manga-reader/manga-reader.component.scss create mode 100644 UI/Web/src/app/manga-reader/manga-reader.component.ts create mode 100644 UI/Web/src/app/manga-reader/manga-reader.module.ts create mode 100644 UI/Web/src/app/manga-reader/manga-reader.router.module.ts create mode 100644 UI/Web/src/app/nav-header/nav-header.component.html create mode 100644 UI/Web/src/app/nav-header/nav-header.component.scss create mode 100644 UI/Web/src/app/nav-header/nav-header.component.ts create mode 100644 UI/Web/src/app/not-connected/not-connected.component.html create mode 100644 UI/Web/src/app/not-connected/not-connected.component.scss create mode 100644 UI/Web/src/app/not-connected/not-connected.component.ts create mode 100644 UI/Web/src/app/person-badge/person-badge.component.html create mode 100644 UI/Web/src/app/person-badge/person-badge.component.scss create mode 100644 UI/Web/src/app/person-badge/person-badge.component.ts create mode 100644 UI/Web/src/app/recently-added/recently-added.component.html create mode 100644 UI/Web/src/app/recently-added/recently-added.component.scss create mode 100644 UI/Web/src/app/recently-added/recently-added.component.ts create mode 100644 UI/Web/src/app/series-detail/series-detail.component.html create mode 100644 UI/Web/src/app/series-detail/series-detail.component.scss create mode 100644 UI/Web/src/app/series-detail/series-detail.component.ts create mode 100644 UI/Web/src/app/shared/_modals/card-details-modal/card-details-modal.component.html create mode 100644 UI/Web/src/app/shared/_modals/card-details-modal/card-details-modal.component.scss create mode 100644 UI/Web/src/app/shared/_modals/card-details-modal/card-details-modal.component.ts create mode 100644 UI/Web/src/app/shared/_services/dom-helper.service.ts create mode 100644 UI/Web/src/app/shared/_services/download.service.ts create mode 100644 UI/Web/src/app/shared/_services/natural-sort.service.ts create mode 100644 UI/Web/src/app/shared/_services/utility.service.ts create mode 100644 UI/Web/src/app/shared/a11y-click.directive.ts create mode 100644 UI/Web/src/app/shared/card-detail-layout/card-detail-layout.component.html create mode 100644 UI/Web/src/app/shared/card-detail-layout/card-detail-layout.component.scss create mode 100644 UI/Web/src/app/shared/card-detail-layout/card-detail-layout.component.ts create mode 100644 UI/Web/src/app/shared/card-item/card-actionables/card-actionables.component.html create mode 100644 UI/Web/src/app/shared/card-item/card-actionables/card-actionables.component.scss create mode 100644 UI/Web/src/app/shared/card-item/card-actionables/card-actionables.component.ts create mode 100644 UI/Web/src/app/shared/card-item/card-item.component.html create mode 100644 UI/Web/src/app/shared/card-item/card-item.component.scss create mode 100644 UI/Web/src/app/shared/card-item/card-item.component.ts create mode 100644 UI/Web/src/app/shared/confirm-dialog/_models/confirm-button.ts create mode 100644 UI/Web/src/app/shared/confirm-dialog/_models/confirm-config.ts create mode 100644 UI/Web/src/app/shared/confirm-dialog/confirm-dialog.component.html create mode 100644 UI/Web/src/app/shared/confirm-dialog/confirm-dialog.component.scss create mode 100644 UI/Web/src/app/shared/confirm-dialog/confirm-dialog.component.ts create mode 100644 UI/Web/src/app/shared/confirm.service.ts create mode 100644 UI/Web/src/app/shared/data-structures/circular-array.ts create mode 100644 UI/Web/src/app/shared/data-structures/queue.ts create mode 100644 UI/Web/src/app/shared/data-structures/stack.ts create mode 100644 UI/Web/src/app/shared/drawer/drawer.component.html create mode 100644 UI/Web/src/app/shared/drawer/drawer.component.scss create mode 100644 UI/Web/src/app/shared/drawer/drawer.component.ts create mode 100644 UI/Web/src/app/shared/library-card/library-card.component.html create mode 100644 UI/Web/src/app/shared/library-card/library-card.component.scss create mode 100644 UI/Web/src/app/shared/library-card/library-card.component.ts create mode 100644 UI/Web/src/app/shared/read-more/read-more.component.html create mode 100644 UI/Web/src/app/shared/read-more/read-more.component.scss create mode 100644 UI/Web/src/app/shared/read-more/read-more.component.ts create mode 100644 UI/Web/src/app/shared/register-member/register-member.component.html create mode 100644 UI/Web/src/app/shared/register-member/register-member.component.scss create mode 100644 UI/Web/src/app/shared/register-member/register-member.component.ts create mode 100644 UI/Web/src/app/shared/safe-html.pipe.ts create mode 100644 UI/Web/src/app/shared/series-card/series-card.component.html create mode 100644 UI/Web/src/app/shared/series-card/series-card.component.scss create mode 100644 UI/Web/src/app/shared/series-card/series-card.component.ts create mode 100644 UI/Web/src/app/shared/shared.module.ts create mode 100644 UI/Web/src/app/shared/show-if-scrollbar.directive.ts create mode 100644 UI/Web/src/app/shared/tag-badge/tag-badge.component.html create mode 100644 UI/Web/src/app/shared/tag-badge/tag-badge.component.scss create mode 100644 UI/Web/src/app/shared/tag-badge/tag-badge.component.ts create mode 100644 UI/Web/src/app/shared/utils/clientUtils.ts create mode 100644 UI/Web/src/app/typeahead/typeahead-settings.ts create mode 100644 UI/Web/src/app/typeahead/typeahead.component.html create mode 100644 UI/Web/src/app/typeahead/typeahead.component.scss create mode 100644 UI/Web/src/app/typeahead/typeahead.component.ts create mode 100644 UI/Web/src/app/typeahead/typeahead.module.ts create mode 100644 UI/Web/src/app/user-login/user-login.component.html create mode 100644 UI/Web/src/app/user-login/user-login.component.scss create mode 100644 UI/Web/src/app/user-login/user-login.component.spec.ts create mode 100644 UI/Web/src/app/user-login/user-login.component.ts create mode 100644 UI/Web/src/app/user-preferences/user-preferences.component.html create mode 100644 UI/Web/src/app/user-preferences/user-preferences.component.scss create mode 100644 UI/Web/src/app/user-preferences/user-preferences.component.ts create mode 100644 UI/Web/src/assets/.gitkeep create mode 100644 UI/Web/src/assets/fonts/EBGarmond/EBGaramond-Italic-VariableFont_wght.ttf create mode 100644 UI/Web/src/assets/fonts/EBGarmond/EBGaramond-VariableFont_wght.ttf create mode 100644 UI/Web/src/assets/fonts/EBGarmond/OFL.txt create mode 100644 UI/Web/src/assets/fonts/Fira_Sans/FiraSans-Black.ttf create mode 100644 UI/Web/src/assets/fonts/Fira_Sans/FiraSans-BlackItalic.ttf create mode 100644 UI/Web/src/assets/fonts/Fira_Sans/FiraSans-Bold.ttf create mode 100644 UI/Web/src/assets/fonts/Fira_Sans/FiraSans-BoldItalic.ttf create mode 100644 UI/Web/src/assets/fonts/Fira_Sans/FiraSans-ExtraBold.ttf create mode 100644 UI/Web/src/assets/fonts/Fira_Sans/FiraSans-ExtraBoldItalic.ttf create mode 100644 UI/Web/src/assets/fonts/Fira_Sans/FiraSans-ExtraLight.ttf create mode 100644 UI/Web/src/assets/fonts/Fira_Sans/FiraSans-ExtraLightItalic.ttf create mode 100644 UI/Web/src/assets/fonts/Fira_Sans/FiraSans-Italic.ttf create mode 100644 UI/Web/src/assets/fonts/Fira_Sans/FiraSans-Light.ttf create mode 100644 UI/Web/src/assets/fonts/Fira_Sans/FiraSans-LightItalic.ttf create mode 100644 UI/Web/src/assets/fonts/Fira_Sans/FiraSans-Medium.ttf create mode 100644 UI/Web/src/assets/fonts/Fira_Sans/FiraSans-MediumItalic.ttf create mode 100644 UI/Web/src/assets/fonts/Fira_Sans/FiraSans-Regular.ttf create mode 100644 UI/Web/src/assets/fonts/Fira_Sans/FiraSans-SemiBold.ttf create mode 100644 UI/Web/src/assets/fonts/Fira_Sans/FiraSans-SemiBoldItalic.ttf create mode 100644 UI/Web/src/assets/fonts/Fira_Sans/FiraSans-Thin.ttf create mode 100644 UI/Web/src/assets/fonts/Fira_Sans/FiraSans-ThinItalic.ttf create mode 100644 UI/Web/src/assets/fonts/Fira_Sans/OFL.txt create mode 100644 UI/Web/src/assets/fonts/Lato/Lato-Black.ttf create mode 100644 UI/Web/src/assets/fonts/Lato/Lato-BlackItalic.ttf create mode 100644 UI/Web/src/assets/fonts/Lato/Lato-Bold.ttf create mode 100644 UI/Web/src/assets/fonts/Lato/Lato-BoldItalic.ttf create mode 100644 UI/Web/src/assets/fonts/Lato/Lato-Italic.ttf create mode 100644 UI/Web/src/assets/fonts/Lato/Lato-Light.ttf create mode 100644 UI/Web/src/assets/fonts/Lato/Lato-LightItalic.ttf create mode 100644 UI/Web/src/assets/fonts/Lato/Lato-Regular.ttf create mode 100644 UI/Web/src/assets/fonts/Lato/Lato-Thin.ttf create mode 100644 UI/Web/src/assets/fonts/Lato/Lato-ThinItalic.ttf create mode 100644 UI/Web/src/assets/fonts/Lato/OFL.txt create mode 100644 UI/Web/src/assets/fonts/Libre_Baskerville/LibreBaskerville-Bold.ttf create mode 100644 UI/Web/src/assets/fonts/Libre_Baskerville/LibreBaskerville-Italic.ttf create mode 100644 UI/Web/src/assets/fonts/Libre_Baskerville/LibreBaskerville-Regular.ttf create mode 100644 UI/Web/src/assets/fonts/Libre_Baskerville/OFL.txt create mode 100644 UI/Web/src/assets/fonts/Libre_Caslon/LibreCaslonText-Bold.ttf create mode 100644 UI/Web/src/assets/fonts/Libre_Caslon/LibreCaslonText-Italic.ttf create mode 100644 UI/Web/src/assets/fonts/Libre_Caslon/LibreCaslonText-Regular.ttf create mode 100644 UI/Web/src/assets/fonts/Libre_Caslon/OFL.txt create mode 100644 UI/Web/src/assets/fonts/Merriweather/Merriweather-Black.ttf create mode 100644 UI/Web/src/assets/fonts/Merriweather/Merriweather-BlackItalic.ttf create mode 100644 UI/Web/src/assets/fonts/Merriweather/Merriweather-Bold.ttf create mode 100644 UI/Web/src/assets/fonts/Merriweather/Merriweather-BoldItalic.ttf create mode 100644 UI/Web/src/assets/fonts/Merriweather/Merriweather-Italic.ttf create mode 100644 UI/Web/src/assets/fonts/Merriweather/Merriweather-Light.ttf create mode 100644 UI/Web/src/assets/fonts/Merriweather/Merriweather-LightItalic.ttf create mode 100644 UI/Web/src/assets/fonts/Merriweather/Merriweather-Regular.ttf create mode 100644 UI/Web/src/assets/fonts/Merriweather/OFL.txt create mode 100644 UI/Web/src/assets/fonts/Nanum_Gothic/NanumGothic-Bold.ttf create mode 100644 UI/Web/src/assets/fonts/Nanum_Gothic/NanumGothic-ExtraBold.ttf create mode 100644 UI/Web/src/assets/fonts/Nanum_Gothic/NanumGothic-Regular.ttf create mode 100644 UI/Web/src/assets/fonts/Nanum_Gothic/OFL.txt create mode 100644 UI/Web/src/assets/fonts/Oswald/OFL.txt create mode 100644 UI/Web/src/assets/fonts/Oswald/Oswald-VariableFont_wght.ttf create mode 100644 UI/Web/src/assets/fonts/Oswald/README.txt create mode 100644 UI/Web/src/assets/fonts/Oswald/static/Oswald-Bold.ttf create mode 100644 UI/Web/src/assets/fonts/Oswald/static/Oswald-ExtraLight.ttf create mode 100644 UI/Web/src/assets/fonts/Oswald/static/Oswald-Light.ttf create mode 100644 UI/Web/src/assets/fonts/Oswald/static/Oswald-Medium.ttf create mode 100644 UI/Web/src/assets/fonts/Oswald/static/Oswald-Regular.ttf create mode 100644 UI/Web/src/assets/fonts/Oswald/static/Oswald-SemiBold.ttf create mode 100644 UI/Web/src/assets/fonts/RocknRoll_One/OFL.txt create mode 100644 UI/Web/src/assets/fonts/RocknRoll_One/RocknRollOne-Regular.ttf create mode 100644 UI/Web/src/assets/fonts/Spartan/OFL.txt create mode 100644 UI/Web/src/assets/fonts/Spartan/Spartan-VariableFont_wght.ttf create mode 100644 UI/Web/src/assets/icons/android-chrome-192x192.png create mode 100644 UI/Web/src/assets/icons/android-chrome-256x256.png create mode 100644 UI/Web/src/assets/icons/apple-touch-icon.png create mode 100644 UI/Web/src/assets/icons/browserconfig.xml create mode 100644 UI/Web/src/assets/icons/favicon-16x16.png create mode 100644 UI/Web/src/assets/icons/favicon-32x32.png create mode 100644 UI/Web/src/assets/icons/favicon.ico create mode 100644 UI/Web/src/assets/icons/mstile-150x150.png create mode 100644 UI/Web/src/assets/images/error-placeholder-min.png create mode 100644 UI/Web/src/assets/images/error-placeholder.png create mode 100644 UI/Web/src/assets/images/error-placeholder2-min.png create mode 100644 UI/Web/src/assets/images/error-placeholder2.dark-min.png create mode 100644 UI/Web/src/assets/images/error-placeholder2.dark.png create mode 100644 UI/Web/src/assets/images/error-placeholder2.png create mode 100644 UI/Web/src/assets/images/image-placeholder-min.png create mode 100644 UI/Web/src/assets/images/image-placeholder.dark-min.png create mode 100644 UI/Web/src/assets/images/image-placeholder.dark.png create mode 100644 UI/Web/src/assets/images/image-placeholder.png create mode 100644 UI/Web/src/assets/images/kavita-book-cropped.png create mode 100644 UI/Web/src/assets/images/login-bg.jpg create mode 100644 UI/Web/src/assets/images/logo.png create mode 100644 UI/Web/src/assets/images/preset-light.png create mode 100644 UI/Web/src/assets/themes/dark.scss create mode 100644 UI/Web/src/environments/environment.prod.ts create mode 100644 UI/Web/src/environments/environment.ts create mode 100644 UI/Web/src/index.html create mode 100644 UI/Web/src/main.ts create mode 100644 UI/Web/src/polyfills.ts create mode 100644 UI/Web/src/site.webmanifest create mode 100644 UI/Web/src/styles.scss create mode 100644 UI/Web/src/theme/_colors.scss create mode 100644 UI/Web/src/theme/_toastr.scss create mode 100644 UI/Web/tsconfig.app.json create mode 100644 UI/Web/tsconfig.json create mode 100644 UI/Web/tsconfig.spec.json create mode 100644 UI/Web/tslint.json rename action-build.sh => action-build.sh.OLD (100%) mode change 100755 => 100644 mode change 100644 => 100755 build.sh mode change 100644 => 100755 docker-build.sh mode change 100644 => 100755 entrypoint.sh create mode 100755 monorepo-build.sh diff --git a/.browserslistrc b/.browserslistrc new file mode 100644 index 000000000..427441dc9 --- /dev/null +++ b/.browserslistrc @@ -0,0 +1,17 @@ +# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. +# For additional information regarding the format and rule options, please see: +# https://github.com/browserslist/browserslist#queries + +# For the full list of supported browsers by the Angular framework, please see: +# https://angular.io/guide/browser-support + +# You can see what browsers were selected by your queries by running: +# npx browserslist + +last 1 Chrome version +last 1 Firefox version +last 2 Edge major versions +last 2 Safari major versions +last 2 iOS major versions +Firefox ESR +not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line. diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..23e3b61fc --- /dev/null +++ b/.editorconfig @@ -0,0 +1,21 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 4 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.cs] +indent_size = 3 + +[*.ts] +quote_type = single +indent_size = 2 + + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fc6133f9e..231622b99 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -57,4 +57,4 @@ jobs: dotnet build --configuration Release .\.sonar\scanner\dotnet-sonarscanner end /d:sonar.login="${{ secrets.SONAR_TOKEN }}" - name: Test - run: dotnet test --no-restore --verbosity normal \ No newline at end of file + run: dotnet test --no-restore --verbosity normal diff --git a/.github/workflows/monorepo-test.yml b/.github/workflows/monorepo-test.yml new file mode 100644 index 000000000..0408c0956 --- /dev/null +++ b/.github/workflows/monorepo-test.yml @@ -0,0 +1,38 @@ +name: Monorepo Build Test + +on: + push: + branches: + - 'feature/monorepo' + +jobs: + docker: + runs-on: ubuntu-latest + steps: + + - name: Check Out Repo + uses: actions/checkout@v2 + + - name: NodeJS to Compile WebUI + uses: actions/setup-node@v2.1.5 + with: + node-version: '14' + - run: | + + cd UI/Web || exit + echo 'Installing web dependencies' + npm install + + echo 'Building UI' + npm run prod + + echo 'Copying back to Kavita wwwroot' + rsync -a dist/ ../../API/wwwroot/ + + cd ../ || exit + + - name: Compile dotnet app + uses: actions/setup-dotnet@v1 + with: + dotnet-version: '5.0.x' + - run: ./monorepo-build.sh diff --git a/.github/workflows/nightly-docker.yml b/.github/workflows/nightly-docker.yml index c39180b0c..8f36afd82 100644 --- a/.github/workflows/nightly-docker.yml +++ b/.github/workflows/nightly-docker.yml @@ -13,20 +13,13 @@ jobs: - name: Check Out Repo uses: actions/checkout@v2 - - name: Check Out WebUI - uses: actions/checkout@v2 - with: - repository: Kareadita/Kavita-webui - ref: develop - path: Kavita-webui/ - - name: NodeJS to Compile WebUI uses: actions/setup-node@v2.1.5 with: node-version: '14' - run: | - cd Kavita-webui/ || exit + cd UI/Web || exit echo 'Installing web dependencies' npm install @@ -34,7 +27,7 @@ jobs: npm run prod echo 'Copying back to Kavita wwwroot' - rsync -a dist/ ../API/wwwroot/ + rsync -a dist/ ../../API/wwwroot/ cd ../ || exit @@ -42,8 +35,8 @@ jobs: uses: actions/setup-dotnet@v1 with: dotnet-version: '5.0.x' - - run: ./action-build.sh - + - run: ./monorepo-build.sh + - name: Login to Docker Hub uses: docker/login-action@v1 with: diff --git a/.github/workflows/sentry-release.yml b/.github/workflows/sentry-release.yml new file mode 100644 index 000000000..990dbc444 --- /dev/null +++ b/.github/workflows/sentry-release.yml @@ -0,0 +1,42 @@ +name: Sentry Release +on: + push: + branches: [ main, develop, feature/sentry-release ] + +jobs: + build: + name: Setup Sentry CLI + runs-on: ubuntu-latest + steps: + - uses: mathieu-bour/setup-sentry-cli@1.2.0 + with: + version: latest + token: ${{ SECRETS.SENTRY_TOKEN }} + organization: kavita-7n + project: angular + - name: Checkout + uses: actions/checkout@v2 + - name: Install NodeJS + uses: actions/setup-node@v2 + with: + node-version: '12' + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: ~/.npm + key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- + - name: Install Dependencies + run: npm install + - name: Build Angular + run: npm run prod + - name: get-npm-version + id: package-version + uses: martinbeentjes/npm-get-version-action@master + - name: Create Release + run: sentry-cli releases new ${{ steps.package-version.outputs.current-version }} + - name: Upload Source Maps + run: sentry-cli releases files ${{ steps.package-version.outputs.current-version }} upload-sourcemaps ./dist + - name: Finalize Release + run: sentry-cli releases finalize ${{ steps.package-version.outputs.current-version }} diff --git a/.github/workflows/stable-docker.yml b/.github/workflows/stable-docker.yml index 3ac5b818f..daeae851d 100644 --- a/.github/workflows/stable-docker.yml +++ b/.github/workflows/stable-docker.yml @@ -13,20 +13,13 @@ jobs: - name: Check Out Repo uses: actions/checkout@v2 - - name: Check Out WebUI - uses: actions/checkout@v2 - with: - repository: Kareadita/Kavita-webui - ref: main - path: Kavita-webui/ - - name: NodeJS to Compile WebUI uses: actions/setup-node@v2.1.5 with: node-version: '14' - run: | - cd Kavita-webui/ || exit + cd UI/Web || exit echo 'Installing web dependencies' npm install @@ -34,7 +27,7 @@ jobs: npm run prod echo 'Copying back to Kavita wwwroot' - rsync -a dist/ ../API/wwwroot/ + rsync -a dist/ ../../API/wwwroot/ cd ../ || exit @@ -42,7 +35,7 @@ jobs: uses: actions/setup-dotnet@v1 with: dotnet-version: '5.0.x' - - run: ./action-build.sh + - run: ./monorepo-build.sh - name: Login to Docker Hub uses: docker/login-action@v1 diff --git a/.gitignore b/.gitignore index 8db0960dc..2e5f40f53 100644 --- a/.gitignore +++ b/.gitignore @@ -435,11 +435,54 @@ $RECYCLE.BIN/ ## ## Visual Studio Code ## +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/UI/Web/dist +/tmp +/out-tsc +# Only exists if Bazel was run +/bazel-out + +# dependencies +/node_modules + +# profiling files +chrome-profiler-events*.json +speed-measure-plugin*.json + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode .vscode/* !.vscode/settings.json !.vscode/tasks.json !.vscode/launch.json !.vscode/extensions.json +.history/* + +# misc +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +yarn-error.log +testem.log +/typings + +# System Files +.DS_Store +Thumbs.db + +ssl/ # App specific appsettings.json @@ -454,4 +497,5 @@ cache/ /API/temp/ _temp/ _output/ -stats/ \ No newline at end of file +stats/ +UI/Web/dist/ diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..017eebcf1 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,50 @@ +{ + "better-comments.tags": [ + + { + "tag": "note", + "color": "#FF2D00", + "strikethrough": false, + "underline": false, + "backgroundColor": "transparent", + "bold": true, + "italic": false + }, + { + "tag": "?", + "color": "#3498DB", + "strikethrough": false, + "underline": false, + "backgroundColor": "transparent", + "bold": false, + "italic": false + }, + { + "tag": "//", + "color": "#474747", + "strikethrough": true, + "underline": false, + "backgroundColor": "transparent", + "bold": false, + "italic": false + }, + { + "tag": "todo", + "color": "#FF8C00", + "strikethrough": false, + "underline": false, + "backgroundColor": "transparent", + "bold": true, + "italic": false + }, + { + "tag": "*", + "color": "#98C379", + "strikethrough": false, + "underline": false, + "backgroundColor": "transparent", + "bold": false, + "italic": false + } + ] +} \ No newline at end of file diff --git a/API.Tests/Extensions/SeriesExtensionsTests.cs b/API.Tests/Extensions/SeriesExtensionsTests.cs index 6631757d6..35054770b 100644 --- a/API.Tests/Extensions/SeriesExtensionsTests.cs +++ b/API.Tests/Extensions/SeriesExtensionsTests.cs @@ -1,5 +1,6 @@ using API.Entities; using API.Extensions; +using API.Parser; using Xunit; namespace API.Tests.Extensions @@ -15,6 +16,7 @@ namespace API.Tests.Extensions [InlineData(new [] {"Salem's Lot", "Salem's Lot", "Salem's Lot"}, new [] {"salem's lot"}, true)] // Different normalizations pass as we check normalization against an on-the-fly calculation so we don't delete series just because we change how normalization works [InlineData(new [] {"Salem's Lot", "Salem's Lot", "Salem's Lot", "salems lot"}, new [] {"salem's lot"}, true)] + [InlineData(new [] {"Rent-a-Girlfriend", "Rent-a-Girlfriend", "Kanojo, Okarishimasu", "rentagirlfriend"}, new [] {"Kanojo, Okarishimasu"}, true)] public void NameInListTest(string[] seriesInput, string[] list, bool expected) { var series = new Series() @@ -25,8 +27,30 @@ namespace API.Tests.Extensions NormalizedName = seriesInput.Length == 4 ? seriesInput[3] : API.Parser.Parser.Normalize(seriesInput[0]), Metadata = new SeriesMetadata() }; - + Assert.Equal(expected, series.NameInList(list)); } + + [Theory] + [InlineData(new [] {"Darker than Black", "Darker Than Black", "Darker than Black"}, "Darker than Black", true)] + [InlineData(new [] {"Rent-a-Girlfriend", "Rent-a-Girlfriend", "Kanojo, Okarishimasu", "rentagirlfriend"}, "Kanojo, Okarishimasu", true)] + [InlineData(new [] {"Rent-a-Girlfriend", "Rent-a-Girlfriend", "Kanojo, Okarishimasu", "rentagirlfriend"}, "Rent", false)] + public void NameInParserInfoTest(string[] seriesInput, string parserSeries, bool expected) + { + var series = new Series() + { + Name = seriesInput[0], + LocalizedName = seriesInput[1], + OriginalName = seriesInput[2], + NormalizedName = seriesInput.Length == 4 ? seriesInput[3] : API.Parser.Parser.Normalize(seriesInput[0]), + Metadata = new SeriesMetadata() + }; + var info = new ParserInfo(); + info.Series = parserSeries; + + Assert.Equal(expected, series.NameInParserInfo(info)); + } + + } -} \ No newline at end of file +} diff --git a/API.Tests/Parser/MangaParserTests.cs b/API.Tests/Parser/MangaParserTests.cs index 1123404b0..b03fda33a 100644 --- a/API.Tests/Parser/MangaParserTests.cs +++ b/API.Tests/Parser/MangaParserTests.cs @@ -9,7 +9,7 @@ namespace API.Tests.Parser public class MangaParserTests { private readonly ITestOutputHelper _testOutputHelper; - + public MangaParserTests(ITestOutputHelper testOutputHelper) { _testOutputHelper = testOutputHelper; @@ -68,7 +68,7 @@ namespace API.Tests.Parser { Assert.Equal(expected, API.Parser.Parser.ParseVolume(filename)); } - + [Theory] [InlineData("Killing Bites Vol. 0001 Ch. 0001 - Galactica Scanlations (gb)", "Killing Bites")] [InlineData("My Girlfriend Is Shobitch v01 - ch. 09 - pg. 008.png", "My Girlfriend Is Shobitch")] @@ -146,11 +146,19 @@ namespace API.Tests.Parser [InlineData("Kodoja #001 (March 2016)", "Kodoja")] [InlineData("Boku No Kokoro No Yabai Yatsu - Chapter 054 I Prayed At The Shrine (V0).cbz", "Boku No Kokoro No Yabai Yatsu")] [InlineData("Kiss x Sis - Ch.36 - A Cold Home Visit.cbz", "Kiss x Sis")] + [InlineData("Seraph of the End - Vampire Reign 093 (2020) (Digital) (LuCaZ)", "Seraph of the End - Vampire Reign")] + [InlineData("Grand Blue Dreaming - SP02 Extra (2019) (Digital) (danke-Empire).cbz", "Grand Blue Dreaming")] + [InlineData("Yuusha Ga Shinda! - Vol.tbd Chapter 27.001 V2 Infection ①.cbz", "Yuusha Ga Shinda!")] + [InlineData("Seraph of the End - Vampire Reign 093 (2020) (Digital) (LuCaZ).cbz", "Seraph of the End - Vampire Reign")] + [InlineData("Getsuyoubi no Tawawa - Ch. 001 - Ai-chan, Part 1", "Getsuyoubi no Tawawa")] + [InlineData("Please Go Home, Akutsu-San! - Chapter 038.5 - Volume Announcement.cbz", "Please Go Home, Akutsu-San!")] + [InlineData("Killing Bites - Vol 11 Chapter 050 Save Me, Nunupi!.cbz", "Killing Bites")] + [InlineData("Mad Chimera World - Volume 005 - Chapter 026.cbz", "Mad Chimera World")] public void ParseSeriesTest(string filename, string expected) { Assert.Equal(expected, API.Parser.Parser.ParseSeries(filename)); } - + [Theory] [InlineData("Killing Bites Vol. 0001 Ch. 0001 - Galactica Scanlations (gb)", "1")] [InlineData("My Girlfriend Is Shobitch v01 - ch. 09 - pg. 008.png", "9")] @@ -206,13 +214,14 @@ namespace API.Tests.Parser [InlineData("Kiss x Sis - Ch.00 - Let's Start from 0.cbz", "0")] [InlineData("[Hidoi]_Amaenaideyo_MS_vol01_chp02.rar", "2")] [InlineData("Okusama wa Shougakusei c003 (v01) [bokuwaNEET]", "3")] - [InlineData("Kiss x Sis - Ch.15 - The Angst of a 15 Year Old Boy.cbz", "15")] [InlineData("Tomogui Kyoushitsu - Chapter 006 Game 005 - Fingernails On Right Hand (Part 002).cbz", "6")] [InlineData("Noblesse - Episode 406 (52 Pages).7z", "406")] [InlineData("X-Men v1 #201 (September 2007).cbz", "201")] [InlineData("Kodoja #001 (March 2016)", "1")] [InlineData("Noblesse - Episode 429 (74 Pages).7z", "429")] [InlineData("Boku No Kokoro No Yabai Yatsu - Chapter 054 I Prayed At The Shrine (V0).cbz", "54")] + [InlineData("Ijousha No Ai - Vol.01 Chapter 029 8 Years Ago", "29")] + [InlineData("Kedouin Makoto - Corpse Party Musume, Chapter 09.cbz", "9")] public void ParseChaptersTest(string filename, string expected) { Assert.Equal(expected, API.Parser.Parser.ParseChapter(filename)); @@ -249,7 +258,7 @@ namespace API.Tests.Parser { Assert.Equal(expected, !string.IsNullOrEmpty(API.Parser.Parser.ParseMangaSpecial(input))); } - + [Theory] [InlineData("image.png", MangaFormat.Image)] [InlineData("image.cbz", MangaFormat.Archive)] @@ -266,6 +275,32 @@ namespace API.Tests.Parser Assert.Equal(expected, API.Parser.Parser.ParseMangaSpecial(inputFile)); } + private static ParserInfo CreateParserInfo(string series, string chapter, string volume, bool isSpecial = false) + { + return new ParserInfo() + { + Chapters = chapter, + Volumes = volume, + IsSpecial = isSpecial, + Series = series, + }; + } + + [Theory] + [InlineData("/manga/Btooom!/Vol.1/Chapter 1/1.cbz", "Btooom!~1~1")] + [InlineData("/manga/Btooom!/Vol.1 Chapter 2/1.cbz", "Btooom!~1~2")] + public void ParseFromFallbackFoldersTest(string inputFile, string expectedParseInfo) + { + const string rootDirectory = "/manga/"; + var tokens = expectedParseInfo.Split("~"); + var actual = new ParserInfo {Chapters = "0", Volumes = "0"}; + API.Parser.Parser.ParseFromFallbackFolders(inputFile, rootDirectory, LibraryType.Manga, ref actual); + Assert.Equal(tokens[0], actual.Series); + Assert.Equal(tokens[1], actual.Volumes); + Assert.Equal(tokens[2], actual.Chapters); + + } + [Fact] public void ParseInfoTest() { @@ -278,7 +313,7 @@ namespace API.Tests.Parser Chapters = "76", Filename = "Mujaki no Rakuen Vol12 ch76.cbz", Format = MangaFormat.Archive, FullFilePath = filepath }); - + filepath = @"E:/Manga/Shimoneta to Iu Gainen ga Sonzai Shinai Taikutsu na Sekai Man-hen/Vol 1.cbz"; expected.Add(filepath, new ParserInfo { @@ -286,7 +321,7 @@ namespace API.Tests.Parser Chapters = "0", Filename = "Vol 1.cbz", Format = MangaFormat.Archive, FullFilePath = filepath }); - + filepath = @"E:\Manga\Beelzebub\Beelzebub_01_[Noodles].zip"; expected.Add(filepath, new ParserInfo { @@ -294,7 +329,7 @@ namespace API.Tests.Parser Chapters = "1", Filename = "Beelzebub_01_[Noodles].zip", Format = MangaFormat.Archive, FullFilePath = filepath }); - + filepath = @"E:\Manga\Ichinensei ni Nacchattara\Ichinensei_ni_Nacchattara_v01_ch01_[Taruby]_v1.1.zip"; expected.Add(filepath, new ParserInfo { @@ -309,8 +344,8 @@ namespace API.Tests.Parser Series = "Tenjo Tenge", Volumes = "1", Edition = "Full Contact Edition", Chapters = "0", Filename = "Tenjo Tenge {Full Contact Edition} v01 (2011) (Digital) (ASTC).cbz", Format = MangaFormat.Archive, FullFilePath = filepath - }); - + }); + filepath = @"E:\Manga\Akame ga KILL! ZERO (2016-2019) (Digital) (LuCaZ)\Akame ga KILL! ZERO v01 (2016) (Digital) (LuCaZ).cbz"; expected.Add(filepath, new ParserInfo { @@ -318,7 +353,7 @@ namespace API.Tests.Parser Chapters = "0", Filename = "Akame ga KILL! ZERO v01 (2016) (Digital) (LuCaZ).cbz", Format = MangaFormat.Archive, FullFilePath = filepath }); - + filepath = @"E:\Manga\Dorohedoro\Dorohedoro v01 (2010) (Digital) (LostNerevarine-Empire).cbz"; expected.Add(filepath, new ParserInfo { @@ -326,7 +361,7 @@ namespace API.Tests.Parser Chapters = "0", Filename = "Dorohedoro v01 (2010) (Digital) (LostNerevarine-Empire).cbz", Format = MangaFormat.Archive, FullFilePath = filepath }); - + filepath = @"E:\Manga\APOSIMZ\APOSIMZ 040 (2020) (Digital) (danke-Empire).cbz"; expected.Add(filepath, new ParserInfo { @@ -334,7 +369,7 @@ namespace API.Tests.Parser Chapters = "40", Filename = "APOSIMZ 040 (2020) (Digital) (danke-Empire).cbz", Format = MangaFormat.Archive, FullFilePath = filepath }); - + filepath = @"E:\Manga\Corpse Party Musume\Kedouin Makoto - Corpse Party Musume, Chapter 09.cbz"; expected.Add(filepath, new ParserInfo { @@ -342,7 +377,7 @@ namespace API.Tests.Parser Chapters = "9", Filename = "Kedouin Makoto - Corpse Party Musume, Chapter 09.cbz", Format = MangaFormat.Archive, FullFilePath = filepath }); - + filepath = @"E:\Manga\Goblin Slayer\Goblin Slayer - Brand New Day 006.5 (2019) (Digital) (danke-Empire).cbz"; expected.Add(filepath, new ParserInfo { @@ -351,6 +386,22 @@ namespace API.Tests.Parser FullFilePath = filepath }); + filepath = @"E:\Manga\Summer Time Rendering\Specials\Record 014 (between chapter 083 and ch084) SP11.cbr"; + expected.Add(filepath, new ParserInfo + { + Series = "Summer Time Rendering", Volumes = "0", Edition = "", + Chapters = "0", Filename = "Record 014 (between chapter 083 and ch084) SP11.cbr", Format = MangaFormat.Archive, + FullFilePath = filepath, IsSpecial = true + }); + + filepath = @"E:\Manga\Seraph of the End\Seraph of the End - Vampire Reign 093 (2020) (Digital) (LuCaZ).cbz"; + expected.Add(filepath, new ParserInfo + { + Series = "Seraph of the End - Vampire Reign", Volumes = "0", Edition = "", + Chapters = "93", Filename = "Seraph of the End - Vampire Reign 093 (2020) (Digital) (LuCaZ).cbz", Format = MangaFormat.Archive, + FullFilePath = filepath, IsSpecial = false + }); + foreach (var file in expected.Keys) { @@ -380,4 +431,4 @@ namespace API.Tests.Parser } } } -} \ No newline at end of file +} diff --git a/API.Tests/Services/BookServiceTests.cs b/API.Tests/Services/BookServiceTests.cs index ecc374830..d0cc29040 100644 --- a/API.Tests/Services/BookServiceTests.cs +++ b/API.Tests/Services/BookServiceTests.cs @@ -1,5 +1,5 @@ using System.IO; -using API.Interfaces; +using API.Interfaces.Services; using API.Services; using Microsoft.Extensions.Logging; using NSubstitute; @@ -28,4 +28,4 @@ namespace API.Tests.Services } } -} \ No newline at end of file +} diff --git a/API.Tests/Services/DirectoryServiceTests.cs b/API.Tests/Services/DirectoryServiceTests.cs index 3754e910a..09d4b0556 100644 --- a/API.Tests/Services/DirectoryServiceTests.cs +++ b/API.Tests/Services/DirectoryServiceTests.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.IO; using System.Linq; using API.Services; @@ -26,7 +27,7 @@ namespace API.Tests.Services var files = new List(); var fileCount = DirectoryService.TraverseTreeParallelForEach(testDirectory, s => files.Add(s), API.Parser.Parser.ArchiveFileExtensions, _logger); - + Assert.Equal(28, fileCount); } @@ -37,7 +38,7 @@ namespace API.Tests.Services var files = _directoryService.GetFiles(testDirectory, @"file\d*.txt"); Assert.Equal(2, files.Count()); } - + [Fact] public void GetFiles_TopLevel_ShouldBeEmpty_Test() { @@ -45,7 +46,7 @@ namespace API.Tests.Services var files = _directoryService.GetFiles(testDirectory); Assert.Empty(files); } - + [Fact] public void GetFilesWithExtensions_ShouldBeEmpty_Test() { @@ -53,7 +54,7 @@ namespace API.Tests.Services var files = _directoryService.GetFiles(testDirectory, "*.txt"); Assert.Empty(files); } - + [Fact] public void GetFilesWithExtensions_Test() { @@ -61,7 +62,7 @@ namespace API.Tests.Services var files = _directoryService.GetFiles(testDirectory, ".cbz|.rar"); Assert.Equal(3, files.Count()); } - + [Fact] public void GetFilesWithExtensions_BadDirectory_ShouldBeEmpty_Test() { @@ -78,7 +79,7 @@ namespace API.Tests.Services Assert.Contains(dirs, s => s.Contains("regex")); } - + [Fact] public void ListDirectory_NoSubDirectory_Test() { @@ -93,10 +94,21 @@ namespace API.Tests.Services [InlineData("C:/Manga", "C:/Manga/Love Hina/Specials/Omake/", "Omake,Specials,Love Hina")] [InlineData("C:/Manga", @"C:\Manga\Love Hina\Specials\Omake\", "Omake,Specials,Love Hina")] [InlineData(@"/manga/", @"/manga/Love Hina/Specials/Omake/", "Omake,Specials,Love Hina")] + [InlineData(@"/manga/", @"/manga/", "")] + [InlineData(@"E:\test", @"E:\test\Sweet X Trouble\Sweet X Trouble - Chapter 001.cbz", "Sweet X Trouble")] + [InlineData(@"C:\/mount/gdrive/Library/Test Library/Comics/", @"C:\/mount/gdrive/Library/Test Library/Comics\godzilla rivals vs hedorah\vol 1\", "vol 1,godzilla rivals vs hedorah")] + [InlineData(@"/manga/", @"/manga/Btooom!/Vol.1 Chapter 2/1.cbz", "Vol.1 Chapter 2,Btooom!")] + [InlineData(@"C:/", @"C://Btooom!/Vol.1 Chapter 2/1.cbz", "Vol.1 Chapter 2,Btooom!")] + [InlineData(@"C:\\", @"C://Btooom!/Vol.1 Chapter 2/1.cbz", "Vol.1 Chapter 2,Btooom!")] + [InlineData(@"C://mount/gdrive/Library/Test Library/Comics", @"C://mount/gdrive/Library/Test Library/Comics/Dragon Age/Test", "Test,Dragon Age")] public void GetFoldersTillRoot_Test(string rootPath, string fullpath, string expectedArray) { var expected = expectedArray.Split(","); + if (expectedArray.Equals(string.Empty)) + { + expected = Array.Empty(); + } Assert.Equal(expected, DirectoryService.GetFoldersTillRoot(rootPath, fullpath)); } } -} \ No newline at end of file +} diff --git a/API.Tests/Services/ScannerServiceTests.cs b/API.Tests/Services/ScannerServiceTests.cs index 7c3c47355..e8034cdca 100644 --- a/API.Tests/Services/ScannerServiceTests.cs +++ b/API.Tests/Services/ScannerServiceTests.cs @@ -20,24 +20,24 @@ using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.Extensions.Logging; using NSubstitute; using Xunit; -using Xunit.Abstractions; namespace API.Tests.Services { public class ScannerServiceTests : IDisposable { - private readonly ITestOutputHelper _testOutputHelper; private readonly ScannerService _scannerService; private readonly ILogger _logger = Substitute.For>(); private readonly IArchiveService _archiveService = Substitute.For(); private readonly IBookService _bookService = Substitute.For(); + private readonly IImageService _imageService = Substitute.For(); private readonly ILogger _metadataLogger = Substitute.For>(); + private readonly IDirectoryService _directoryService = Substitute.For(); private readonly DbConnection _connection; private readonly DataContext _context; - - public ScannerServiceTests(ITestOutputHelper testOutputHelper) + + public ScannerServiceTests() { var contextOptions = new DbContextOptionsBuilder() .UseSqlite(CreateInMemoryDatabase()) @@ -46,21 +46,20 @@ namespace API.Tests.Services _context = new DataContext(contextOptions); Task.Run(SeedDb).GetAwaiter().GetResult(); - - + + //BackgroundJob.Enqueue is what I need to mock or something (it's static...) - // ICacheService cacheService, ILogger logger, IScannerService scannerService, - // IUnitOfWork unitOfWork, IMetadataService metadataService, IBackupService backupService, ICleanupService cleanupService, + // ICacheService cacheService, ILogger logger, IScannerService scannerService, + // IUnitOfWork unitOfWork, IMetadataService metadataService, IBackupService backupService, ICleanupService cleanupService, // IBackgroundJobClient jobClient //var taskScheduler = new TaskScheduler(Substitute.For(), Substitute.For>(), Substitute.For<) - - + + // Substitute.For>() - Not needed because only for UserService IUnitOfWork unitOfWork = new UnitOfWork(_context, Substitute.For(), null); - - - _testOutputHelper = testOutputHelper; - IMetadataService metadataService = Substitute.For(unitOfWork, _metadataLogger, _archiveService, _bookService); + + + IMetadataService metadataService = Substitute.For(unitOfWork, _metadataLogger, _archiveService, _bookService, _directoryService, _imageService); _scannerService = new ScannerService(unitOfWork, _logger, _archiveService, metadataService, _bookService); } @@ -90,12 +89,12 @@ namespace API.Tests.Services // // var series = _unitOfWork.LibraryRepository.GetLibraryForIdAsync(1).Result.Series; // } - + [Fact] public void FindSeriesNotOnDisk_Should_RemoveNothing_Test() { var infos = new Dictionary>(); - + AddToParsedInfo(infos, new ParserInfo() {Series = "Darker than Black"}); AddToParsedInfo(infos, new ParserInfo() {Series = "Cage of Eden", Volumes = "1"}); AddToParsedInfo(infos, new ParserInfo() {Series = "Cage of Eden", Volumes = "10"}); @@ -140,7 +139,7 @@ namespace API.Tests.Services { Series = parsedInfoName }); - + Assert.Equal(expected, actualName); } @@ -158,7 +157,7 @@ namespace API.Tests.Services EntityFactory.CreateSeries("Darker than Black Vol 1"), }; existingSeries = ScannerService.RemoveMissingSeries(existingSeries, missingSeries, out var removeCount).ToList(); - + Assert.DoesNotContain(missingSeries[0].Name, existingSeries.Select(s => s.Name)); Assert.Equal(missingSeries.Count, removeCount); } @@ -194,12 +193,12 @@ namespace API.Tests.Services collectedSeries[info.Series] = list; } - + } - + } - - + + // [Fact] // public void ExistingOrDefault_Should_BeFromLibrary() @@ -257,7 +256,7 @@ namespace API.Tests.Services // _testOutputHelper.WriteLine(_libraryMock.ToString()); Assert.True(true); } - + private static DbConnection CreateInMemoryDatabase() { var connection = new SqliteConnection("Filename=:memory:"); @@ -269,4 +268,4 @@ namespace API.Tests.Services public void Dispose() => _connection.Dispose(); } -} \ No newline at end of file +} diff --git a/API/API.csproj b/API/API.csproj index 50a464d0b..c912a6b01 100644 --- a/API/API.csproj +++ b/API/API.csproj @@ -16,7 +16,7 @@ Kavita kareadita.github.io - Copyright 2020-$([System.DateTime]::Now.ToString('yyyy')) kareadita.github.io (GNU General Public v3) + Copyright 2020-$([System.DateTime]::Now.ToString('yyyy')) kavitareader.com (GNU General Public v3) 0.4.1 @@ -50,9 +50,9 @@ - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive @@ -61,6 +61,12 @@ + + + + + + @@ -207,8 +213,4 @@ <_ContentIncludedByDefault Remove="wwwroot\vendor.6b2a0912ae80e6fd297f.js.map" /> - - - - diff --git a/API/Comparators/ChapterSortComparer.cs b/API/Comparators/ChapterSortComparer.cs index ce7e2f374..a56693fca 100644 --- a/API/Comparators/ChapterSortComparer.cs +++ b/API/Comparators/ChapterSortComparer.cs @@ -15,4 +15,25 @@ namespace API.Comparators return x.CompareTo(y); } } -} \ No newline at end of file + + /// + /// This is a special case comparer used exclusively for sorting chapters within a single Volume for reading order. + /// + /// Volume 10 has "Series - Vol 10" and "Series - Vol 10 Chapter 81". In this case, for reading order, the order is Vol 10, Vol 10 Chapter 81. + /// This is represented by Chapter 0, Chapter 81. + /// + /// + public class ChapterSortComparerZeroFirst : IComparer + { + public int Compare(double x, double y) + { + if (x == 0.0 && y == 0.0) return 0; + // if x is 0, it comes first + if (x == 0.0) return -1; + // if y is 0, it comes first + if (y == 0.0) return 1; + + return x.CompareTo(y); + } + } +} diff --git a/API/Controllers/.editorconfig b/API/Controllers/.editorconfig new file mode 100644 index 000000000..e69de29bb diff --git a/API/Controllers/BookController.cs b/API/Controllers/BookController.cs index e5a980467..84f9338d7 100644 --- a/API/Controllers/BookController.cs +++ b/API/Controllers/BookController.cs @@ -4,6 +4,7 @@ using System.Threading.Tasks; using API.DTOs; using API.Extensions; using API.Interfaces; +using API.Interfaces.Services; using API.Services; using HtmlAgilityPack; using Microsoft.AspNetCore.Mvc; diff --git a/API/Controllers/LibraryController.cs b/API/Controllers/LibraryController.cs index 352b9f873..4d47e3f06 100644 --- a/API/Controllers/LibraryController.cs +++ b/API/Controllers/LibraryController.cs @@ -25,8 +25,8 @@ namespace API.Controllers private readonly ITaskScheduler _taskScheduler; private readonly IUnitOfWork _unitOfWork; - public LibraryController(IDirectoryService directoryService, - ILogger logger, IMapper mapper, ITaskScheduler taskScheduler, + public LibraryController(IDirectoryService directoryService, + ILogger logger, IMapper mapper, ITaskScheduler taskScheduler, IUnitOfWork unitOfWork) { _directoryService = directoryService; @@ -35,7 +35,7 @@ namespace API.Controllers _taskScheduler = taskScheduler; _unitOfWork = unitOfWork; } - + /// /// Creates a new Library. Upon library creation, adds new library to all Admin accounts. /// @@ -49,7 +49,7 @@ namespace API.Controllers { return BadRequest("Library name already exists. Please choose a unique name to the server."); } - + var library = new Library { Name = createLibraryDto.Name, @@ -58,14 +58,14 @@ namespace API.Controllers }; _unitOfWork.LibraryRepository.Add(library); - + var admins = (await _unitOfWork.UserRepository.GetAdminUsersAsync()).ToList(); foreach (var admin in admins) { admin.Libraries ??= new List(); admin.Libraries.Add(library); } - + if (!await _unitOfWork.CommitAsync()) return BadRequest("There was a critical issue. Please try again."); @@ -92,7 +92,7 @@ namespace API.Controllers return Ok(_directoryService.ListDirectory(path)); } - + [HttpGet] public async Task>> GetLibraries() { @@ -105,10 +105,10 @@ namespace API.Controllers { var user = await _unitOfWork.UserRepository.GetUserByUsernameAsync(updateLibraryForUserDto.Username); if (user == null) return BadRequest("Could not validate user"); - + var libraryString = String.Join(",", updateLibraryForUserDto.SelectedLibraries.Select(x => x.Name)); _logger.LogInformation("Granting user {UserName} access to: {Libraries}", updateLibraryForUserDto.Username, libraryString); - + var allLibraries = await _unitOfWork.LibraryRepository.GetLibrariesAsync(); foreach (var library in allLibraries) { @@ -117,16 +117,16 @@ namespace API.Controllers var libraryIsSelected = updateLibraryForUserDto.SelectedLibraries.Any(l => l.Id == library.Id); if (libraryContainsUser && !libraryIsSelected) { - // Remove + // Remove library.AppUsers.Remove(user); } else if (!libraryContainsUser && libraryIsSelected) { library.AppUsers.Add(user); - } - + } + } - + if (!_unitOfWork.HasChanges()) { _logger.LogInformation("Added: {SelectedLibraries} to {Username}",libraryString, updateLibraryForUserDto.Username); @@ -138,8 +138,8 @@ namespace API.Controllers _logger.LogInformation("Added: {SelectedLibraries} to {Username}",libraryString, updateLibraryForUserDto.Username); return Ok(_mapper.Map(user)); } - - + + return BadRequest("There was a critical issue. Please try again."); } @@ -150,7 +150,7 @@ namespace API.Controllers _taskScheduler.ScanLibrary(libraryId); return Ok(); } - + [Authorize(Policy = "RequireAdminRole")] [HttpPost("refresh-metadata")] public ActionResult RefreshMetadata(int libraryId) @@ -164,7 +164,7 @@ namespace API.Controllers { return Ok(await _unitOfWork.LibraryRepository.GetLibraryDtosForUsernameAsync(User.GetUsername())); } - + [Authorize(Policy = "RequireAdminRole")] [HttpDelete("delete")] public async Task> DeleteLibrary(int libraryId) @@ -176,13 +176,25 @@ namespace API.Controllers var chapterIds = await _unitOfWork.SeriesRepository.GetChapterIdsForSeriesAsync(seriesIds); - var result = await _unitOfWork.LibraryRepository.DeleteLibrary(libraryId); - if (result && chapterIds.Any()) + + try { - _taskScheduler.CleanupChapters(chapterIds); + var library = await _unitOfWork.LibraryRepository.GetLibraryForIdAsync(libraryId); + _unitOfWork.LibraryRepository.Delete(library); + await _unitOfWork.CommitAsync(); + + if (chapterIds.Any()) + { + _taskScheduler.CleanupChapters(chapterIds); + } + return Ok(true); + } + catch (Exception ex) + { + _logger.LogError(ex, "There was a critical error trying to delete the library"); + await _unitOfWork.RollbackAsync(); + return Ok(false); } - - return Ok(result); } [Authorize(Policy = "RequireAdminRole")] @@ -204,20 +216,20 @@ namespace API.Controllers { _taskScheduler.ScanLibrary(library.Id, true); } - + return Ok(); } - + [HttpGet("search")] public async Task>> Search(string queryString) { queryString = queryString.Replace(@"%", ""); - + var user = await _unitOfWork.UserRepository.GetUserByUsernameAsync(User.GetUsername()); // Get libraries user has access to var libraries = (await _unitOfWork.LibraryRepository.GetLibrariesForUserIdAsync(user.Id)).ToList(); - + if (!libraries.Any()) return BadRequest("User does not have access to any libraries"); var series = await _unitOfWork.SeriesRepository.SearchSeries(libraries.Select(l => l.Id).ToArray(), queryString); @@ -231,4 +243,4 @@ namespace API.Controllers return Ok(await _unitOfWork.LibraryRepository.GetLibraryTypeAsync(libraryId)); } } -} \ No newline at end of file +} diff --git a/API/Controllers/ReaderController.cs b/API/Controllers/ReaderController.cs index b9bc15fb7..bfdacf704 100644 --- a/API/Controllers/ReaderController.cs +++ b/API/Controllers/ReaderController.cs @@ -22,6 +22,7 @@ namespace API.Controllers private readonly ILogger _logger; private readonly IUnitOfWork _unitOfWork; private readonly ChapterSortComparer _chapterSortComparer = new ChapterSortComparer(); + private readonly ChapterSortComparerZeroFirst _chapterSortComparerForInChapterSorting = new ChapterSortComparerZeroFirst(); public ReaderController(IDirectoryService directoryService, ICacheService cacheService, ILogger logger, IUnitOfWork unitOfWork) @@ -44,7 +45,7 @@ namespace API.Controllers var content = await _directoryService.ReadFileAsync(path); var format = Path.GetExtension(path).Replace(".", ""); - + // Calculates SHA1 Hash for byte[] Response.AddCacheHeader(content); @@ -54,6 +55,7 @@ namespace API.Controllers [HttpGet("chapter-info")] public async Task> GetChapterInfo(int chapterId) { + // PERF: Write this in one DB call var chapter = await _cacheService.Ensure(chapterId); if (chapter == null) return BadRequest("Could not find Chapter"); var volume = await _unitOfWork.SeriesRepository.GetVolumeAsync(chapter.VolumeId); @@ -108,7 +110,7 @@ namespace API.Controllers foreach (var chapter in volume.Chapters) { var userProgress = user.Progresses.SingleOrDefault(x => x.ChapterId == chapter.Id && x.AppUserId == user.Id); - if (userProgress == null) // I need to get all chapters and generate new user progresses for them? + if (userProgress == null) // I need to get all chapters and generate new user progresses for them? { user.Progresses.Add(new AppUserProgress { @@ -126,18 +128,18 @@ namespace API.Controllers } } } - + _unitOfWork.UserRepository.Update(user); if (await _unitOfWork.CommitAsync()) { return Ok(); } - - + + return BadRequest("There was an issue saving progress"); } - + [HttpPost("mark-unread")] public async Task MarkUnread(MarkReadDto markReadDto) { @@ -167,15 +169,15 @@ namespace API.Controllers } } } - + _unitOfWork.UserRepository.Update(user); if (await _unitOfWork.CommitAsync()) { return Ok(); } - - + + return BadRequest("There was an issue saving progress"); } @@ -183,8 +185,7 @@ namespace API.Controllers public async Task MarkVolumeAsRead(MarkVolumeReadDto markVolumeReadDto) { var user = await _unitOfWork.UserRepository.GetUserByUsernameAsync(User.GetUsername()); - _logger.LogDebug("Saving {UserName} progress for Volume {VolumeID} to read", user.UserName, markVolumeReadDto.VolumeId); - + var chapters = await _unitOfWork.VolumeRepository.GetChaptersAsync(markVolumeReadDto.VolumeId); foreach (var chapter in chapters) { @@ -208,7 +209,7 @@ namespace API.Controllers userProgress.VolumeId = markVolumeReadDto.VolumeId; } } - + _unitOfWork.UserRepository.Update(user); if (await _unitOfWork.CommitAsync()) @@ -217,14 +218,13 @@ namespace API.Controllers } return BadRequest("Could not save progress"); - } + } [HttpPost("bookmark")] public async Task Bookmark(BookmarkDto bookmarkDto) { var user = await _unitOfWork.UserRepository.GetUserByUsernameAsync(User.GetUsername()); - _logger.LogDebug("Saving {UserName} progress for Chapter {ChapterId} to page {PageNum}", user.UserName, bookmarkDto.ChapterId, bookmarkDto.PageNum); - + // Don't let user bookmark past total pages. var chapter = await _unitOfWork.VolumeRepository.GetChapterAsync(bookmarkDto.ChapterId); if (bookmarkDto.PageNum > chapter.Pages) @@ -236,8 +236,8 @@ namespace API.Controllers { return BadRequest("Can't bookmark less than 0"); } - - + + user.Progresses ??= new List(); var userProgress = user.Progresses.SingleOrDefault(x => x.ChapterId == bookmarkDto.ChapterId && x.AppUserId == user.Id); @@ -261,7 +261,7 @@ namespace API.Controllers userProgress.BookScrollId = bookmarkDto.BookScrollId; userProgress.LastModified = DateTime.Now; } - + _unitOfWork.UserRepository.Update(user); if (await _unitOfWork.CommitAsync()) @@ -275,6 +275,9 @@ namespace API.Controllers /// /// Returns the next logical chapter from the series. /// + /// + /// V1 → V2 → V3 chapter 0 → V3 chapter 10 → SP 01 → SP 02 + /// /// /// /// @@ -288,6 +291,7 @@ namespace API.Controllers var currentChapter = await _unitOfWork.VolumeRepository.GetChapterAsync(currentChapterId); if (currentVolume.Number == 0) { + // Handle specials var chapterId = GetNextChapterId(currentVolume.Chapters.OrderBy(x => double.Parse(x.Number), _chapterSortComparer), currentChapter.Number); if (chapterId > 0) return Ok(chapterId); } @@ -295,14 +299,24 @@ namespace API.Controllers foreach (var volume in volumes) { if (volume.Number == currentVolume.Number && volume.Chapters.Count > 1) - { - var chapterId = GetNextChapterId(currentVolume.Chapters.OrderBy(x => double.Parse(x.Number), _chapterSortComparer), currentChapter.Number); + { + // Handle Chapters within current Volume + // In this case, i need 0 first because 0 represents a full volume file. + var chapterId = GetNextChapterId(currentVolume.Chapters.OrderBy(x => double.Parse(x.Number), _chapterSortComparerForInChapterSorting), currentChapter.Number); if (chapterId > 0) return Ok(chapterId); } - + if (volume.Number == currentVolume.Number + 1) { - return Ok(volume.Chapters.OrderBy(x => double.Parse(x.Number), _chapterSortComparer).FirstOrDefault()?.Id); + // Handle Chapters within next Volume + // ! When selecting the chapter for the next volume, we need to make sure a c0 comes before a c1+ + var chapters = volume.Chapters.OrderBy(x => double.Parse(x.Number), _chapterSortComparer).ToList(); + if (currentChapter.Number.Equals("0") && chapters.Last().Number.Equals("0")) + { + return chapters.Last().Id; + } + + return Ok(chapters.FirstOrDefault()?.Id); } } return Ok(-1); @@ -311,7 +325,8 @@ namespace API.Controllers private static int GetNextChapterId(IEnumerable chapters, string currentChapterNumber) { var next = false; - foreach (var chapter in chapters) + var chaptersList = chapters.ToList(); + foreach (var chapter in chaptersList) { if (next) { @@ -326,6 +341,9 @@ namespace API.Controllers /// /// Returns the previous logical chapter from the series. /// + /// + /// V1 ← V2 ← V3 chapter 0 ← V3 chapter 10 ← SP 01 ← SP 02 + /// /// /// /// @@ -337,7 +355,7 @@ namespace API.Controllers var volumes = await _unitOfWork.SeriesRepository.GetVolumesDtoAsync(seriesId, user.Id); var currentVolume = await _unitOfWork.SeriesRepository.GetVolumeAsync(volumeId); var currentChapter = await _unitOfWork.VolumeRepository.GetChapterAsync(currentChapterId); - + if (currentVolume.Number == 0) { var chapterId = GetNextChapterId(currentVolume.Chapters.OrderBy(x => double.Parse(x.Number), _chapterSortComparer).Reverse(), currentChapter.Number); @@ -348,16 +366,16 @@ namespace API.Controllers { if (volume.Number == currentVolume.Number) { - var chapterId = GetNextChapterId(currentVolume.Chapters.OrderBy(x => double.Parse(x.Number), _chapterSortComparer).Reverse(), currentChapter.Number); + var chapterId = GetNextChapterId(currentVolume.Chapters.OrderBy(x => double.Parse(x.Number), _chapterSortComparerForInChapterSorting).Reverse(), currentChapter.Number); if (chapterId > 0) return Ok(chapterId); } if (volume.Number == currentVolume.Number - 1) { - return Ok(volume.Chapters.OrderBy(x => double.Parse(x.Number), _chapterSortComparer).LastOrDefault()?.Id); + return Ok(volume.Chapters.OrderBy(x => double.Parse(x.Number), _chapterSortComparerForInChapterSorting).LastOrDefault()?.Id); } } return Ok(-1); } } -} \ No newline at end of file +} diff --git a/API/Controllers/SeriesController.cs b/API/Controllers/SeriesController.cs index 3780538ad..a0dba1e6c 100644 --- a/API/Controllers/SeriesController.cs +++ b/API/Controllers/SeriesController.cs @@ -26,24 +26,24 @@ namespace API.Controllers _taskScheduler = taskScheduler; _unitOfWork = unitOfWork; } - + [HttpGet] public async Task>> GetSeriesForLibrary(int libraryId, [FromQuery] UserParams userParams) { var user = await _unitOfWork.UserRepository.GetUserByUsernameAsync(User.GetUsername()); var series = await _unitOfWork.SeriesRepository.GetSeriesDtoForLibraryIdAsync(libraryId, user.Id, userParams); - + // Apply progress/rating information (I can't work out how to do this in initial query) if (series == null) return BadRequest("Could not get series for library"); await _unitOfWork.SeriesRepository.AddSeriesModifiers(user.Id, series); - + Response.AddPaginationHeader(series.CurrentPage, series.PageSize, series.TotalCount, series.TotalPages); - + return Ok(series); } - + [HttpGet("{seriesId}")] public async Task> GetSeries(int seriesId) { @@ -59,7 +59,7 @@ namespace API.Controllers var chapterIds = (await _unitOfWork.SeriesRepository.GetChapterIdsForSeriesAsync(new []{seriesId})); _logger.LogInformation("Series {SeriesId} is being deleted by {UserName}", seriesId, username); var result = await _unitOfWork.SeriesRepository.DeleteSeriesAsync(seriesId); - + if (result) { _taskScheduler.CleanupChapters(chapterIds); @@ -78,22 +78,22 @@ namespace API.Controllers var user = await _unitOfWork.UserRepository.GetUserByUsernameAsync(User.GetUsername()); return Ok(await _unitOfWork.SeriesRepository.GetVolumesDtoAsync(seriesId, user.Id)); } - + [HttpGet("volume")] public async Task> GetVolume(int volumeId) { var user = await _unitOfWork.UserRepository.GetUserByUsernameAsync(User.GetUsername()); return Ok(await _unitOfWork.SeriesRepository.GetVolumeDtoAsync(volumeId, user.Id)); } - + [HttpGet("chapter")] public async Task> GetChapter(int chapterId) { return Ok(await _unitOfWork.VolumeRepository.GetChapterDtoAsync(chapterId)); } - - + + [HttpPost("update-rating")] public async Task UpdateSeriesRating(UpdateSeriesRatingDto updateSeriesRatingDto) @@ -105,13 +105,13 @@ namespace API.Controllers userRating.Rating = updateSeriesRatingDto.UserRating; userRating.Review = updateSeriesRatingDto.UserReview; userRating.SeriesId = updateSeriesRatingDto.SeriesId; - + if (userRating.Id == 0) { user.Ratings ??= new List(); user.Ratings.Add(userRating); } - + _unitOfWork.UserRepository.Update(user); if (!await _unitOfWork.CommitAsync()) return BadRequest("There was a critical error."); @@ -127,7 +127,7 @@ namespace API.Controllers var series = await _unitOfWork.SeriesRepository.GetSeriesByIdAsync(updateSeries.Id); if (series == null) return BadRequest("Series does not exist"); - + if (series.Name != updateSeries.Name && await _unitOfWork.SeriesRepository.DoesSeriesNameExistInLibrary(updateSeries.Name)) { return BadRequest("A series already exists in this library with this name. Series Names must be unique to a library."); @@ -143,7 +143,7 @@ namespace API.Controllers { return Ok(); } - + return BadRequest("There was an error with updating the series"); } @@ -180,13 +180,21 @@ namespace API.Controllers return Ok(); } + [Authorize(Policy = "RequireAdminRole")] + [HttpPost("scan")] + public ActionResult ScanSeries(RefreshSeriesDto refreshSeriesDto) + { + _taskScheduler.ScanSeries(refreshSeriesDto.LibraryId, refreshSeriesDto.SeriesId); + return Ok(); + } + [HttpGet("metadata")] public async Task> GetSeriesMetadata(int seriesId) { var metadata = await _unitOfWork.SeriesRepository.GetSeriesMetadata(seriesId); return Ok(metadata); } - + [HttpPost("metadata")] public async Task UpdateSeriesMetadata(UpdateSeriesMetadataDto updateSeriesMetadataDto) { @@ -221,7 +229,7 @@ namespace API.Controllers var existingTag = series.Metadata.CollectionTags.SingleOrDefault(t => t.Title == tag.Title); if (existingTag != null) { - // Update existingTag + // Update existingTag existingTag.Promoted = tag.Promoted; existingTag.Title = tag.Title; existingTag.NormalizedTitle = Parser.Parser.Normalize(tag.Title).ToUpper(); @@ -263,17 +271,17 @@ namespace API.Controllers var user = await _unitOfWork.UserRepository.GetUserByUsernameAsync(User.GetUsername()); var series = await _unitOfWork.SeriesRepository.GetSeriesDtoForCollectionAsync(collectionId, user.Id, userParams); - + // Apply progress/rating information (I can't work out how to do this in initial query) if (series == null) return BadRequest("Could not get series for collection"); await _unitOfWork.SeriesRepository.AddSeriesModifiers(user.Id, series); - + Response.AddPaginationHeader(series.CurrentPage, series.PageSize, series.TotalCount, series.TotalPages); - + return Ok(series); } - - + + } -} \ No newline at end of file +} diff --git a/API/Controllers/ServerController.cs b/API/Controllers/ServerController.cs index 398de3efc..c68416ba9 100644 --- a/API/Controllers/ServerController.cs +++ b/API/Controllers/ServerController.cs @@ -1,9 +1,12 @@ using System; using System.IO; using System.Threading.Tasks; +using API.DTOs; using API.Extensions; using API.Interfaces.Services; +using API.Services; using Kavita.Common; +using Kavita.Common.EnvironmentInfo; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; @@ -30,16 +33,26 @@ namespace API.Controllers _backupService = backupService; _archiveService = archiveService; } - + [HttpPost("restart")] public ActionResult RestartServer() { _logger.LogInformation("{UserName} is restarting server from admin dashboard", User.GetUsername()); - + _applicationLifetime.StopApplication(); return Ok(); } + /// + /// Returns non-sensitive information about the current system + /// + /// + [HttpGet("server-info")] + public ActionResult GetVersion() + { + return Ok(StatsService.GetServerInfo()); + } + [HttpGet("logs")] public async Task GetLogs() { @@ -47,14 +60,14 @@ namespace API.Controllers try { var (fileBytes, zipPath) = await _archiveService.CreateZipForDownload(files, "logs"); - return File(fileBytes, "application/zip", Path.GetFileName(zipPath)); + return File(fileBytes, "application/zip", Path.GetFileName(zipPath)); } catch (KavitaException ex) { return BadRequest(ex.Message); } } - - + + } -} \ No newline at end of file +} diff --git a/API/Controllers/SettingsController.cs b/API/Controllers/SettingsController.cs index 8677074ab..2ead0916c 100644 --- a/API/Controllers/SettingsController.cs +++ b/API/Controllers/SettingsController.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Linq; using System.Threading.Tasks; using API.Data; using API.DTOs; @@ -9,6 +10,7 @@ using API.Extensions; using API.Helpers.Converters; using API.Interfaces; using Kavita.Common; +using Kavita.Common.Extensions; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; @@ -31,7 +33,7 @@ namespace API.Controllers _taskScheduler = taskScheduler; _configuration = configuration; } - + [HttpGet("")] public async Task> GetSettings() { @@ -40,7 +42,7 @@ namespace API.Controllers settingsDto.LoggingLevel = Configuration.GetLogLevel(Program.GetAppSettingFilename()); return Ok(settingsDto); } - + [HttpPost("")] public async Task> UpdateSettings(ServerSettingDto updateSettingsDto) { @@ -58,7 +60,7 @@ namespace API.Controllers // We do not allow CacheDirectory changes, so we will ignore. var currentSettings = await _unitOfWork.SettingsRepository.GetSettingsAsync(); - + var logLevelOptions = new LogLevelOptions(); _configuration.GetSection("Logging:LogLevel").Bind(logLevelOptions); @@ -75,7 +77,7 @@ namespace API.Controllers setting.Value = updateSettingsDto.TaskScan; _unitOfWork.SettingsRepository.Update(setting); } - + if (setting.Key == ServerSettingKey.Port && updateSettingsDto.Port + "" != setting.Value) { setting.Value = updateSettingsDto.Port + ""; @@ -83,14 +85,14 @@ namespace API.Controllers Configuration.UpdatePort(Program.GetAppSettingFilename(), updateSettingsDto.Port); _unitOfWork.SettingsRepository.Update(setting); } - + if (setting.Key == ServerSettingKey.LoggingLevel && updateSettingsDto.LoggingLevel + "" != setting.Value) { setting.Value = updateSettingsDto.LoggingLevel + ""; Configuration.UpdateLogLevel(Program.GetAppSettingFilename(), updateSettingsDto.LoggingLevel); _unitOfWork.SettingsRepository.Update(setting); } - + if (setting.Key == ServerSettingKey.AllowStatCollection && updateSettingsDto.AllowStatCollection + "" != setting.Value) { setting.Value = updateSettingsDto.AllowStatCollection + ""; @@ -105,7 +107,7 @@ namespace API.Controllers } } } - + _configuration.GetSection("Logging:LogLevel:Default").Value = updateSettingsDto.LoggingLevel + ""; if (!_unitOfWork.HasChanges()) return Ok("Nothing was updated"); @@ -119,23 +121,23 @@ namespace API.Controllers _taskScheduler.ScheduleTasks(); return Ok(updateSettingsDto); } - + [HttpGet("task-frequencies")] public ActionResult> GetTaskFrequencies() { return Ok(CronConverter.Options); } - + [HttpGet("library-types")] public ActionResult> GetLibraryTypes() { - return Ok(Enum.GetNames(typeof(LibraryType))); + return Ok(Enum.GetValues().Select(t => t.ToDescription())); } - + [HttpGet("log-levels")] public ActionResult> GetLogLevels() { return Ok(new [] {"Trace", "Debug", "Information", "Warning", "Critical"}); } } -} \ No newline at end of file +} diff --git a/API/Data/LibraryRepository.cs b/API/Data/LibraryRepository.cs index 0af1f6760..23ad6ea76 100644 --- a/API/Data/LibraryRepository.cs +++ b/API/Data/LibraryRepository.cs @@ -21,7 +21,7 @@ namespace API.Data _context = context; _mapper = mapper; } - + public void Add(Library library) { _context.Library.Add(library); @@ -32,6 +32,11 @@ namespace API.Data _context.Entry(library).State = EntityState.Modified; } + public void Delete(Library library) + { + _context.Library.Remove(library); + } + public async Task> GetLibraryDtosForUsernameAsync(string userName) { return await _context.Library @@ -43,7 +48,7 @@ namespace API.Data .AsSingleQuery() .ToListAsync(); } - + public async Task> GetLibrariesAsync() { return await _context.Library @@ -101,7 +106,7 @@ namespace API.Data /// public async Task GetFullLibraryForIdAsync(int libraryId) { - + return await _context.Library .Where(x => x.Id == libraryId) .Include(f => f.Folders) @@ -114,7 +119,29 @@ namespace API.Data .AsSplitQuery() .SingleAsync(); } - + + /// + /// This is a heavy call, pulls all entities for a Library, except this version only grabs for one series id + /// + /// + /// + /// + public async Task GetFullLibraryForIdAsync(int libraryId, int seriesId) + { + + return await _context.Library + .Where(x => x.Id == libraryId) + .Include(f => f.Folders) + .Include(l => l.Series.Where(s => s.Id == seriesId)) + .ThenInclude(s => s.Metadata) + .Include(l => l.Series.Where(s => s.Id == seriesId)) + .ThenInclude(s => s.Volumes) + .ThenInclude(v => v.Chapters) + .ThenInclude(c => c.Files) + .AsSplitQuery() + .SingleAsync(); + } + public async Task LibraryExists(string libraryName) { return await _context.Library @@ -131,7 +158,7 @@ namespace API.Data .ProjectTo(_mapper.ConfigurationProvider) .ToListAsync(); } - - + + } -} \ No newline at end of file +} diff --git a/API/Entities/Enums/LibraryType.cs b/API/Entities/Enums/LibraryType.cs index ea91e16f3..baaceb9ca 100644 --- a/API/Entities/Enums/LibraryType.cs +++ b/API/Entities/Enums/LibraryType.cs @@ -9,6 +9,10 @@ namespace API.Entities.Enums [Description("Comic")] Comic = 1, [Description("Book")] - Book = 2 + Book = 2, + [Description("Images (Manga)")] + MangaImages = 3, + [Description("Images (Comic)")] + ComicImages = 4 } -} \ No newline at end of file +} diff --git a/API/Entities/Enums/ReaderMode.cs b/API/Entities/Enums/ReaderMode.cs index 04156df24..01ff7878f 100644 --- a/API/Entities/Enums/ReaderMode.cs +++ b/API/Entities/Enums/ReaderMode.cs @@ -5,10 +5,13 @@ namespace API.Entities.Enums public enum ReaderMode { [Description("Left and Right")] + // ReSharper disable once InconsistentNaming MANGA_LR = 0, [Description("Up and Down")] + // ReSharper disable once InconsistentNaming MANGA_UP = 1, [Description("Webtoon")] + // ReSharper disable once InconsistentNaming WEBTOON = 2 } -} \ No newline at end of file +} diff --git a/API/Entities/Genre.cs b/API/Entities/Genre.cs index 743c2b793..51d9a9dbc 100644 --- a/API/Entities/Genre.cs +++ b/API/Entities/Genre.cs @@ -7,7 +7,7 @@ namespace API.Entities { public int Id { get; set; } public string Name { get; set; } - // TODO: MetadataUpdate add ProviderId + // MetadataUpdate add ProviderId [ConcurrencyCheck] public uint RowVersion { get; set; } @@ -17,4 +17,4 @@ namespace API.Entities RowVersion++; } } -} \ No newline at end of file +} diff --git a/API/Entities/SeriesMetadata.cs b/API/Entities/SeriesMetadata.cs index e848c696e..ec8955e1e 100644 --- a/API/Entities/SeriesMetadata.cs +++ b/API/Entities/SeriesMetadata.cs @@ -9,17 +9,13 @@ namespace API.Entities public class SeriesMetadata : IHasConcurrencyToken { public int Id { get; set; } - /// - /// Publisher of book or manga/comic - /// - //public string Publisher { get; set; } - + public ICollection CollectionTags { get; set; } - + // Relationship public Series Series { get; set; } public int SeriesId { get; set; } - + [ConcurrencyCheck] public uint RowVersion { get; set; } @@ -28,4 +24,4 @@ namespace API.Entities RowVersion++; } } -} \ No newline at end of file +} diff --git a/API/Extensions/ApplicationServiceExtensions.cs b/API/Extensions/ApplicationServiceExtensions.cs index e713acbe1..0a43db49e 100644 --- a/API/Extensions/ApplicationServiceExtensions.cs +++ b/API/Extensions/ApplicationServiceExtensions.cs @@ -16,7 +16,7 @@ namespace API.Extensions { public static class ApplicationServiceExtensions { - public static IServiceCollection AddApplicationServices(this IServiceCollection services, IConfiguration config, IWebHostEnvironment env) + public static void AddApplicationServices(this IServiceCollection services, IConfiguration config, IWebHostEnvironment env) { services.AddAutoMapper(typeof(AutoMapperProfiles).Assembly); services.AddScoped(); @@ -31,19 +31,13 @@ namespace API.Extensions services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddScoped(); services.AddSqLite(config, env); - - services.AddLogging(loggingBuilder => - { - var loggingSection = config.GetSection("Logging"); - loggingBuilder.AddFile(loggingSection); - }); - - return services; + services.AddLogging(config); } - private static IServiceCollection AddSqLite(this IServiceCollection services, IConfiguration config, + private static void AddSqLite(this IServiceCollection services, IConfiguration config, IWebHostEnvironment env) { services.AddDbContext(options => @@ -51,8 +45,15 @@ namespace API.Extensions options.UseSqlite(config.GetConnectionString("DefaultConnection")); options.EnableSensitiveDataLogging(env.IsDevelopment() || Configuration.GetLogLevel(Program.GetAppSettingFilename()).Equals("Debug")); }); + } - return services; + private static void AddLogging(this IServiceCollection services, IConfiguration config) + { + services.AddLogging(loggingBuilder => + { + var loggingSection = config.GetSection("Logging"); + loggingBuilder.AddFile(loggingSection); + }); } } -} \ No newline at end of file +} diff --git a/API/Extensions/DirectoryInfoExtensions.cs b/API/Extensions/DirectoryInfoExtensions.cs index 0eaf6c00a..892c690b3 100644 --- a/API/Extensions/DirectoryInfoExtensions.cs +++ b/API/Extensions/DirectoryInfoExtensions.cs @@ -9,14 +9,26 @@ namespace API.Extensions private static readonly NaturalSortComparer Comparer = new NaturalSortComparer(); public static void Empty(this DirectoryInfo directory) { - foreach(FileInfo file in directory.EnumerateFiles()) file.Delete(); - foreach(DirectoryInfo subDirectory in directory.EnumerateDirectories()) subDirectory.Delete(true); + // NOTE: We have this in DirectoryService.Empty(), do we need this here? + foreach(FileInfo file in directory.EnumerateFiles()) file.Delete(); + foreach(DirectoryInfo subDirectory in directory.EnumerateDirectories()) subDirectory.Delete(true); + } + + public static void RemoveNonImages(this DirectoryInfo directory) + { + foreach (var file in directory.EnumerateFiles()) + { + if (!Parser.Parser.IsImage(file.FullName)) + { + file.Delete(); + } + } } /// /// Flattens all files in subfolders to the passed directory recursively. - /// - /// + /// + /// /// foo /// ├── 1.txt /// ├── 2.txt @@ -26,7 +38,7 @@ namespace API.Extensions /// ├── 1.txt /// ├── 2.txt /// └── 5.txt - /// + /// /// becomes: /// foo /// ├── 1.txt @@ -49,7 +61,7 @@ namespace API.Extensions if (!root.FullName.Equals(directory.FullName)) { var fileIndex = 1; - + foreach (var file in directory.EnumerateFiles().OrderBy(file => file.FullName, Comparer)) { if (file.Directory == null) continue; @@ -63,11 +75,11 @@ namespace API.Extensions directoryIndex++; } - + foreach (var subDirectory in directory.EnumerateDirectories()) { FlattenDirectory(root, subDirectory, ref directoryIndex); } } } -} \ No newline at end of file +} diff --git a/API/Extensions/SeriesExtensions.cs b/API/Extensions/SeriesExtensions.cs index 29f495d76..376abc525 100644 --- a/API/Extensions/SeriesExtensions.cs +++ b/API/Extensions/SeriesExtensions.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Linq; using API.Entities; +using API.Parser; namespace API.Extensions { @@ -14,7 +15,21 @@ namespace API.Extensions /// public static bool NameInList(this Series series, IEnumerable list) { - return list.Any(name => Parser.Parser.Normalize(name) == series.NormalizedName || Parser.Parser.Normalize(name) == Parser.Parser.Normalize(series.Name) || name == series.Name || name == series.LocalizedName || name == series.OriginalName); + return list.Any(name => Parser.Parser.Normalize(name) == series.NormalizedName || Parser.Parser.Normalize(name) == Parser.Parser.Normalize(series.Name) + || name == series.Name || name == series.LocalizedName || name == series.OriginalName || Parser.Parser.Normalize(name) == Parser.Parser.Normalize(series.OriginalName)); + } + + /// + /// Checks against all the name variables of the Series if it matches the + /// + /// + /// + /// + public static bool NameInParserInfo(this Series series, ParserInfo info) + { + if (info == null) return false; + return Parser.Parser.Normalize(info.Series) == series.NormalizedName || Parser.Parser.Normalize(info.Series) == Parser.Parser.Normalize(series.Name) + || info.Series == series.Name || info.Series == series.LocalizedName || info.Series == series.OriginalName || Parser.Parser.Normalize(info.Series) == Parser.Parser.Normalize(series.OriginalName); } } -} \ No newline at end of file +} diff --git a/API/Extensions/ServiceCollectionExtensions.cs b/API/Extensions/ServiceCollectionExtensions.cs index 3559f3856..903ed5b88 100644 --- a/API/Extensions/ServiceCollectionExtensions.cs +++ b/API/Extensions/ServiceCollectionExtensions.cs @@ -1,5 +1,4 @@ -using System; -using API.Interfaces.Services; +using API.Interfaces.Services; using API.Services.Clients; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -22,4 +21,4 @@ namespace API.Extensions return services; } } -} \ No newline at end of file +} diff --git a/API/Interfaces/ILibraryRepository.cs b/API/Interfaces/ILibraryRepository.cs index f8cedce90..4977d38d5 100644 --- a/API/Interfaces/ILibraryRepository.cs +++ b/API/Interfaces/ILibraryRepository.cs @@ -10,14 +10,16 @@ namespace API.Interfaces { void Add(Library library); void Update(Library library); + void Delete(Library library); Task> GetLibraryDtosAsync(); Task LibraryExists(string libraryName); Task GetLibraryForIdAsync(int libraryId); Task GetFullLibraryForIdAsync(int libraryId); + Task GetFullLibraryForIdAsync(int libraryId, int seriesId); Task> GetLibraryDtosForUsernameAsync(string userName); Task> GetLibrariesAsync(); Task DeleteLibrary(int libraryId); Task> GetLibrariesForUserIdAsync(int userId); Task GetLibraryTypeAsync(int libraryId); } -} \ No newline at end of file +} diff --git a/API/Interfaces/ITaskScheduler.cs b/API/Interfaces/ITaskScheduler.cs index 4f3aba6f8..e02ba80b8 100644 --- a/API/Interfaces/ITaskScheduler.cs +++ b/API/Interfaces/ITaskScheduler.cs @@ -11,7 +11,8 @@ void RefreshMetadata(int libraryId, bool forceUpdate = true); void CleanupTemp(); void RefreshSeriesMetadata(int libraryId, int seriesId); + void ScanSeries(int libraryId, int seriesId, bool forceUpdate = false); void ScheduleStatsTasks(); void CancelStatsTasks(); } -} \ No newline at end of file +} diff --git a/API/Interfaces/Services/IArchiveService.cs b/API/Interfaces/Services/IArchiveService.cs index 18869b7cd..07c1e287d 100644 --- a/API/Interfaces/Services/IArchiveService.cs +++ b/API/Interfaces/Services/IArchiveService.cs @@ -17,4 +17,4 @@ namespace API.Interfaces.Services bool ArchiveNeedsFlattening(ZipArchive archive); Task> CreateZipForDownload(IEnumerable files, string tempFolder); } -} \ No newline at end of file +} diff --git a/API/Interfaces/IBookService.cs b/API/Interfaces/Services/IBookService.cs similarity index 96% rename from API/Interfaces/IBookService.cs rename to API/Interfaces/Services/IBookService.cs index 297bef3aa..63d0aa712 100644 --- a/API/Interfaces/IBookService.cs +++ b/API/Interfaces/Services/IBookService.cs @@ -3,7 +3,7 @@ using System.Threading.Tasks; using API.Parser; using VersOne.Epub; -namespace API.Interfaces +namespace API.Interfaces.Services { public interface IBookService { @@ -23,4 +23,4 @@ namespace API.Interfaces string GetSummaryInfo(string filePath); ParserInfo ParseInfo(string filePath); } -} \ No newline at end of file +} diff --git a/API/Interfaces/Services/IDirectoryService.cs b/API/Interfaces/Services/IDirectoryService.cs index f9e8345bd..638d8eb71 100644 --- a/API/Interfaces/Services/IDirectoryService.cs +++ b/API/Interfaces/Services/IDirectoryService.cs @@ -25,5 +25,8 @@ namespace API.Interfaces.Services IEnumerable GetFiles(string path, string searchPatternExpression = "", SearchOption searchOption = SearchOption.TopDirectoryOnly); + + void CopyFileToDirectory(string fullFilePath, string targetDirectory); + public bool CopyDirectoryToDirectory(string sourceDirName, string destDirName); } -} \ No newline at end of file +} diff --git a/API/Interfaces/Services/IImageService.cs b/API/Interfaces/Services/IImageService.cs new file mode 100644 index 000000000..963e0b904 --- /dev/null +++ b/API/Interfaces/Services/IImageService.cs @@ -0,0 +1,10 @@ +using API.Entities; + +namespace API.Interfaces.Services +{ + public interface IImageService + { + byte[] GetCoverImage(string path, bool createThumbnail = false); + string GetCoverFile(MangaFile file); + } +} diff --git a/API/Interfaces/Services/IScannerService.cs b/API/Interfaces/Services/IScannerService.cs index dc9c44623..d235adfb5 100644 --- a/API/Interfaces/Services/IScannerService.cs +++ b/API/Interfaces/Services/IScannerService.cs @@ -1,4 +1,7 @@  +using System.Threading; +using System.Threading.Tasks; + namespace API.Interfaces.Services { public interface IScannerService @@ -11,5 +14,6 @@ namespace API.Interfaces.Services /// Force overwriting for cover images void ScanLibrary(int libraryId, bool forceUpdate); void ScanLibraries(); + Task ScanSeries(int libraryId, int seriesId, bool forceUpdate, CancellationToken token); } -} \ No newline at end of file +} diff --git a/API/Parser/Parser.cs b/API/Parser/Parser.cs index 5bfe954e8..2bc120700 100644 --- a/API/Parser/Parser.cs +++ b/API/Parser/Parser.cs @@ -12,7 +12,7 @@ namespace API.Parser public const string DefaultChapter = "0"; public const string DefaultVolume = "0"; - public const string ArchiveFileExtensions = @"\.cbz|\.zip|\.rar|\.cbr|\.tar.gz|\.7zip|\.7z|.cb7"; + public const string ArchiveFileExtensions = @"\.cbz|\.zip|\.rar|\.cbr|\.tar.gz|\.7zip|\.7z|\.cb7|\.cbt"; public const string BookFileExtensions = @"\.epub"; public const string ImageFileExtensions = @"^(\.png|\.jpeg|\.jpg)"; public static readonly Regex FontSrcUrlRegex = new Regex(@"(src:url\(.{1})" + "([^\"']*)" + @"(.{1}\))", RegexOptions.IgnoreCase | RegexOptions.Compiled); @@ -24,7 +24,7 @@ namespace API.Parser private static readonly Regex XmlRegex = new Regex(XmlRegexExtensions, RegexOptions.IgnoreCase | RegexOptions.Compiled); private static readonly Regex BookFileRegex = new Regex(BookFileExtensions, RegexOptions.IgnoreCase | RegexOptions.Compiled); private static readonly Regex CoverImageRegex = new Regex(@"(?\d+)", RegexOptions.IgnoreCase | RegexOptions.Compiled), // Tower Of God S01 014 (CBT) (digital).cbz - new Regex( + new Regex( @"(?.*)(\b|_|)(S(?\d+))", RegexOptions.IgnoreCase | RegexOptions.Compiled), }; private static readonly Regex[] MangaSeriesRegex = new[] { - // [SugoiSugoi]_NEEDLESS_Vol.2_-_Disk_The_Informant_5_[ENG].rar + // Grand Blue Dreaming - SP02 new Regex( - @"^(?.*)( |_)Vol\.?\d+", + @"(?.*)(\b|_|-|\s)(?:sp)\d", + RegexOptions.IgnoreCase | RegexOptions.Compiled), + // [SugoiSugoi]_NEEDLESS_Vol.2_-_Disk_The_Informant_5_[ENG].rar, Yuusha Ga Shinda! - Vol.tbd Chapter 27.001 V2 Infection ①.cbz + new Regex( + @"^(?.*)( |_)Vol\.?(\d+|tbd)", RegexOptions.IgnoreCase | RegexOptions.Compiled), // Ichiban_Ushiro_no_Daimaou_v04_ch34_[VISCANS].zip, VanDread-v01-c01.zip new Regex( - @"(?.*)(\b|_)v(?\d+-?\d*)( |_|-)", + @"(?.*)(\b|_)v(?\d+-?\d*)(\s|_|-)", RegexOptions.IgnoreCase | RegexOptions.Compiled), // Gokukoku no Brynhildr - c001-008 (v01) [TrinityBAKumA], Black Bullet - v4 c17 [batoto] new Regex( @"(?.*)( - )(?:v|vo|c)\d", RegexOptions.IgnoreCase | RegexOptions.Compiled), - // [dmntsf.net] One Piece - Digital Colored Comics Vol. 20 Ch. 177 - 30 Million vs 81 Million.cbz - new Regex( - @"(?.*) (\b|_|-)(vol)\.?", - RegexOptions.IgnoreCase | RegexOptions.Compiled), - // Kedouin Makoto - Corpse Party Musume, Chapter 19 [Dametrans].zip new Regex( @"(?.*)(?:, Chapter )(?\d+)", RegexOptions.IgnoreCase | RegexOptions.Compiled), + // Mad Chimera World - Volume 005 - Chapter 026.cbz (couldn't figure out how to get Volume negative lookaround working on below regex) + new Regex( + @"(?.*)(\s|_|-)(?:Volume(\s|_|-)+\d+)(\s|_|-)+(?:Chapter)(\s|_|-)(?\d+)", + RegexOptions.IgnoreCase | RegexOptions.Compiled), + // Please Go Home, Akutsu-San! - Chapter 038.5 - Volume Announcement.cbz + new Regex( + @"(?.*)(\s|_|-)(?!Vol)(\s|_|-)(?:Chapter)(\s|_|-)(?\d+)", + RegexOptions.IgnoreCase | RegexOptions.Compiled), + // [dmntsf.net] One Piece - Digital Colored Comics Vol. 20 Ch. 177 - 30 Million vs 81 Million.cbz + new Regex( + @"(?.*) (\b|_|-)(vol)\.?", + RegexOptions.IgnoreCase | RegexOptions.Compiled), //Knights of Sidonia c000 (S2 LE BD Omake - BLAME!) [Habanero Scans] new Regex( @"(?.*)(\bc\d+\b)", @@ -89,9 +100,9 @@ namespace API.Parser new Regex( @"(?.*)(?: _|-|\[|\()\s?vol(ume)?", RegexOptions.IgnoreCase | RegexOptions.Compiled), - // Momo The Blood Taker - Chapter 027 Violent Emotion.cbz + // Momo The Blood Taker - Chapter 027 Violent Emotion.cbz, Grand Blue Dreaming - SP02 Extra (2019) (Digital) (danke-Empire).cbz new Regex( - @"(?.*)(\b|_|-|\s)(?:chapter)(\b|_|-|\s)\d", + @"(?.*)(\b|_|-|\s)(?:(chapter(\b|_|-|\s))|sp)\d", RegexOptions.IgnoreCase | RegexOptions.Compiled), // Historys Strongest Disciple Kenichi_v11_c90-98.zip, Killing Bites Vol. 0001 Ch. 0001 - Galactica Scanlations (gb) new Regex( @@ -108,7 +119,7 @@ namespace API.Parser RegexOptions.IgnoreCase | RegexOptions.Compiled), // Hinowa ga CRUSH! 018 (2019) (Digital) (LuCaZ).cbz new Regex( - @"(?.*) (?\d+) (?:\(\d{4}\)) ", + @"(?.*) (?\d+) (?:\(\d{4}\)) ", RegexOptions.IgnoreCase | RegexOptions.Compiled), // Goblin Slayer - Brand New Day 006.5 (2019) (Digital) (danke-Empire) new Regex( @@ -142,25 +153,25 @@ namespace API.Parser new Regex( @"^(?!Vol)(?.*)( |_)Chapter( |_)(\d+)", RegexOptions.IgnoreCase | RegexOptions.Compiled), - + // Fullmetal Alchemist chapters 101-108.cbz new Regex( @"^(?!vol)(?.*)( |_)(chapters( |_)?)\d+-?\d*", RegexOptions.IgnoreCase | RegexOptions.Compiled), // Umineko no Naku Koro ni - Episode 1 - Legend of the Golden Witch #1 new Regex( - @"^(?!Vol\.?)(?.*)( |_|-)(?.*)( |_|-)(?.*)ch\d+-?\d?", RegexOptions.IgnoreCase | RegexOptions.Compiled), // Magi - Ch.252-005.cbz new Regex( - @"(?.*)( ?- ?)Ch\.\d+-?\d*", + @"(?.*)( ?- ?)Ch\.\d+-?\d*", RegexOptions.IgnoreCase | RegexOptions.Compiled), - // [BAA]_Darker_than_Black_Omake-1.zip + // [BAA]_Darker_than_Black_Omake-1.zip new Regex( @"^(?!Vol)(?.*)(-)\d+-?\d*", // This catches a lot of stuff ^(?!Vol)(?.*)( |_)(\d+) RegexOptions.IgnoreCase | RegexOptions.Compiled), @@ -177,7 +188,7 @@ namespace API.Parser @"^(?!Vol)(?.*)( |_|-)(ch?)\d+", RegexOptions.IgnoreCase | RegexOptions.Compiled), }; - + private static readonly Regex[] ComicSeriesRegex = new[] { // Invincible Vol 01 Family matters (2005) (Digital) @@ -229,7 +240,7 @@ namespace API.Parser @"^(?.*)", RegexOptions.IgnoreCase | RegexOptions.Compiled), }; - + private static readonly Regex[] ComicVolumeRegex = new[] { // 04 - Asterix the Gladiator (1964) (Digital-Empire) (WebP by Doc MaKS) @@ -261,18 +272,10 @@ namespace API.Parser @"^(?.*)(?: |_)#(?\d+)", RegexOptions.IgnoreCase | RegexOptions.Compiled), }; - + private static readonly Regex[] ComicChapterRegex = new[] { - // // 04 - Asterix the Gladiator (1964) (Digital-Empire) (WebP by Doc MaKS) - // new Regex( - // @"^(?\d+) (- |_)?(?.*(\d{4})?)( |_)(\(|\d+)", - // RegexOptions.IgnoreCase | RegexOptions.Compiled), - // // 01 Spider-Man & Wolverine 01.cbr - // new Regex( - // @"^(?\d+) (?:- )?(?.*) (\d+)?", // NOTE: WHy is this here without a capture group - // RegexOptions.IgnoreCase | RegexOptions.Compiled), - // Batman & Wildcat (1 of 3) + // Batman & Wildcat (1 of 3) new Regex( @"(?.*(\d{4})?)( |_)(?:\((?\d+) of \d+)", RegexOptions.IgnoreCase | RegexOptions.Compiled), @@ -307,7 +310,7 @@ namespace API.Parser // [TrinityBAKumA Finella&anon], [BAA]_, [SlowManga&OverloadScans], [batoto] new Regex(@"(?:\[(?(?!\s).+?(?(?!\s).+?(?\d+(?:.\d+|-\d+)?)", RegexOptions.IgnoreCase | RegexOptions.Compiled), // Umineko no Naku Koro ni - Episode 3 - Banquet of the Golden Witch #02.cbz (Rare case, if causes issue remove) - new Regex( + new Regex( @"^(?.*)(?: |_)#(?\d+)", RegexOptions.IgnoreCase | RegexOptions.Compiled), // Green Worldz - Chapter 027 new Regex( - @"^(?!Vol)(?.*)\s?(?\d+(?:.\d+|-\d+)?)", + @"^(?!Vol)(?.*)\s?(?\d+(?:\.?[\d-])?)", RegexOptions.IgnoreCase | RegexOptions.Compiled), - // Hinowa ga CRUSH! 018 (2019) (Digital) (LuCaZ).cbz, Hinowa ga CRUSH! 018.5 (2019) (Digital) (LuCaZ).cbz + // Hinowa ga CRUSH! 018 (2019) (Digital) (LuCaZ).cbz, Hinowa ga CRUSH! 018.5 (2019) (Digital) (LuCaZ).cbz new Regex( - @"^(?!Vol)(?.*) (?\d+(?:.\d+|-\d+)?)(?: \(\d{4}\))?(\b|_|-)", + @"^(?!Vol)(?.*)\s(?\d+(?:.\d+|-\d+)?)(?:\s\(\d{4}\))?(\b|_|-)", RegexOptions.IgnoreCase | RegexOptions.Compiled), // Tower Of God S01 014 (CBT) (digital).cbz new Regex( - @"(?.*) S(?\d+) (?\d+(?:.\d+|-\d+)?)", + @"(?.*)\sS(?\d+)\s(?\d+(?:.\d+|-\d+)?)", RegexOptions.IgnoreCase | RegexOptions.Compiled), // Beelzebub_01_[Noodles].zip, Beelzebub_153b_RHS.zip new Regex( - @"^((?!v|vo|vol|Volume).)*( |_)(?\.?\d+(?:.\d+|-\d+)?)(?b)?( |_|\[|\()", + @"^((?!v|vo|vol|Volume).)*(\s|_)(?\.?\d+(?:.\d+|-\d+)?)(?b)?(\s|_|\[|\()", RegexOptions.IgnoreCase | RegexOptions.Compiled), // Yumekui-Merry_DKThias_Chapter21.zip new Regex( @@ -348,14 +351,18 @@ namespace API.Parser RegexOptions.IgnoreCase | RegexOptions.Compiled), // [Hidoi]_Amaenaideyo_MS_vol01_chp02.rar new Regex( - @"(?.*)( |_)(vol\d+)?( |_)Chp\.? ?(?\d+)", + @"(?.*)(\s|_)(vol\d+)?(\s|_)Chp\.? ?(?\d+)", RegexOptions.IgnoreCase | RegexOptions.Compiled), + // Vol 1 Chapter 2 + new Regex( + @"(?((vol|volume|v))?(\s|_)?\.?\d+)(\s|_)(Chp|Chapter)\.?(\s|_)?(?\d+)", + RegexOptions.IgnoreCase | RegexOptions.Compiled), }; private static readonly Regex[] MangaEditionRegex = { // Tenjo Tenge {Full Contact Edition} v01 (2011) (Digital) (ASTC).cbz new Regex( - @"(?({|\(|\[).* Edition(}|\)|\]))", + @"(?({|\(|\[).* Edition(}|\)|\]))", RegexOptions.IgnoreCase | RegexOptions.Compiled), // Tenjo Tenge {Full Contact Edition} v01 (2011) (Digital) (ASTC).cbz new Regex( @@ -441,31 +448,18 @@ namespace API.Parser }; } - if (ret.Series == string.Empty) + if (type is LibraryType.ComicImages or LibraryType.MangaImages) + { + // Reset Chapters, Volumes, and Series as images are not good to parse information out of. Better to use folders. + ret.Volumes = DefaultVolume; + ret.Chapters = DefaultChapter; + ret.Series = string.Empty; + } + + if (ret.Series == string.Empty || (type is LibraryType.ComicImages or LibraryType.MangaImages)) { // Try to parse information out of each folder all the way to rootPath - var fallbackFolders = DirectoryService.GetFoldersTillRoot(rootPath, Path.GetDirectoryName(filePath)).ToList(); - for (var i = 0; i < fallbackFolders.Count; i++) - { - var folder = fallbackFolders[i]; - if (!string.IsNullOrEmpty(ParseMangaSpecial(folder))) continue; - if (ParseVolume(folder) != DefaultVolume || ParseChapter(folder) != DefaultChapter) continue; - - var series = ParseSeries(folder); - - if ((string.IsNullOrEmpty(series) && i == fallbackFolders.Count - 1)) - { - ret.Series = CleanTitle(folder); - break; - } - - if (!string.IsNullOrEmpty(series)) - { - ret.Series = series; - break; - } - } - + ParseFromFallbackFolders(filePath, rootPath, type, ref ret); } var edition = ParseEdition(fileName); @@ -476,7 +470,7 @@ namespace API.Parser } var isSpecial = ParseMangaSpecial(fileName); - // We must ensure that we can only parse a special out. As some files will have v20 c171-180+Omake and that + // We must ensure that we can only parse a special out. As some files will have v20 c171-180+Omake and that // could cause a problem as Omake is a special term, but there is valid volume/chapter information. if (ret.Chapters == DefaultChapter && ret.Volumes == DefaultVolume && !string.IsNullOrEmpty(isSpecial)) { @@ -488,7 +482,11 @@ namespace API.Parser ret.IsSpecial = true; ret.Chapters = DefaultChapter; ret.Volumes = DefaultVolume; + + ParseFromFallbackFolders(filePath, rootPath, type, ref ret); } + // here is the issue. If we are a special with marker, we need to ensure we use the correct series name. + // we can do this by falling back if (string.IsNullOrEmpty(ret.Series)) { @@ -498,6 +496,54 @@ namespace API.Parser return ret.Series == string.Empty ? null : ret; } + /// + /// + /// + /// + /// + /// + /// Expects a non-null ParserInfo which this method will populate + public static void ParseFromFallbackFolders(string filePath, string rootPath, LibraryType type, ref ParserInfo ret) + { + var fallbackFolders = DirectoryService.GetFoldersTillRoot(rootPath, filePath).ToList(); + for (var i = 0; i < fallbackFolders.Count; i++) + { + var folder = fallbackFolders[i]; + if (!string.IsNullOrEmpty(ParseMangaSpecial(folder))) continue; + + var parsedVolume = (type is LibraryType.Manga or LibraryType.MangaImages) ? ParseVolume(folder) : ParseComicVolume(folder); + var parsedChapter = (type is LibraryType.Manga or LibraryType.MangaImages) ? ParseChapter(folder) : ParseComicChapter(folder); + + if (!parsedVolume.Equals(DefaultVolume) || !parsedChapter.Equals(DefaultChapter)) + { + if ((ret.Volumes.Equals(DefaultVolume) || string.IsNullOrEmpty(ret.Volumes)) && !parsedVolume.Equals(DefaultVolume)) + { + ret.Volumes = parsedVolume; + } + if ((ret.Chapters.Equals(DefaultChapter) || string.IsNullOrEmpty(ret.Chapters)) && !parsedChapter.Equals(DefaultChapter)) + { + ret.Chapters = parsedChapter; + } + + continue; + } + + var series = ParseSeries(folder); + + if ((string.IsNullOrEmpty(series) && i == fallbackFolders.Count - 1)) + { + ret.Series = CleanTitle(folder); + break; + } + + if (!string.IsNullOrEmpty(series)) + { + ret.Series = series; + break; + } + } + } + public static MangaFormat ParseFormat(string filePath) { if (IsArchive(filePath)) return MangaFormat.Archive; @@ -517,17 +563,17 @@ namespace API.Parser { var edition = match.Groups["Edition"].Value.Replace("{", "").Replace("}", "") .Replace("[", "").Replace("]", "").Replace("(", "").Replace(")", ""); - + return edition; } } } - + return string.Empty; } - + /// - /// If the file has SP marker. + /// If the file has SP marker. /// /// /// @@ -541,10 +587,10 @@ namespace API.Parser return true; } } - + return false; } - + public static string ParseMangaSpecial(string filePath) { foreach (var regex in MangaSpecialRegex) @@ -558,10 +604,10 @@ namespace API.Parser } } } - + return string.Empty; } - + public static string ParseSeries(string filename) { foreach (var regex in MangaSeriesRegex) @@ -575,7 +621,7 @@ namespace API.Parser } } } - + return string.Empty; } public static string ParseComicSeries(string filename) @@ -591,7 +637,7 @@ namespace API.Parser } } } - + return string.Empty; } @@ -603,7 +649,7 @@ namespace API.Parser foreach (Match match in matches) { if (!match.Groups["Volume"].Success || match.Groups["Volume"] == Match.Empty) continue; - + var value = match.Groups["Volume"].Value; if (!value.Contains("-")) return RemoveLeadingZeroes(match.Groups["Volume"].Value); var tokens = value.Split("-"); @@ -613,7 +659,7 @@ namespace API.Parser } } - + return DefaultVolume; } @@ -625,7 +671,7 @@ namespace API.Parser foreach (Match match in matches) { if (!match.Groups["Volume"].Success || match.Groups["Volume"] == Match.Empty) continue; - + var value = match.Groups["Volume"].Value; if (!value.Contains("-")) return RemoveLeadingZeroes(match.Groups["Volume"].Value); var tokens = value.Split("-"); @@ -635,7 +681,7 @@ namespace API.Parser } } - + return DefaultVolume; } @@ -647,7 +693,7 @@ namespace API.Parser foreach (Match match in matches) { if (!match.Groups["Chapter"].Success || match.Groups["Chapter"] == Match.Empty) continue; - + var value = match.Groups["Chapter"].Value; var hasChapterPart = match.Groups["ChapterPart"].Success; @@ -655,7 +701,7 @@ namespace API.Parser { return RemoveLeadingZeroes(hasChapterPart ? AddChapterPart(value) : value); } - + var tokens = value.Split("-"); var from = RemoveLeadingZeroes(tokens[0]); var to = RemoveLeadingZeroes(hasChapterPart ? AddChapterPart(tokens[1]) : tokens[1]); @@ -676,7 +722,7 @@ namespace API.Parser return $"{value}.5"; } - + public static string ParseComicChapter(string filename) { foreach (var regex in ComicChapterRegex) @@ -718,7 +764,7 @@ namespace API.Parser } } } - + foreach (var regex in MangaEditionRegex) { var matches = regex.Matches(title); @@ -733,7 +779,7 @@ namespace API.Parser return title; } - + private static string RemoveSpecialTags(string title) { foreach (var regex in MangaSpecialRegex) @@ -750,9 +796,9 @@ namespace API.Parser return title; } - - - + + + /// /// Translates _ -> spaces, trims front and back of string, removes release groups /// @@ -820,13 +866,13 @@ namespace API.Parser _ => number }; } - + public static string RemoveLeadingZeroes(string title) { var ret = title.TrimStart(new[] { '0' }); return ret == string.Empty ? "0" : ret; } - + public static bool IsArchive(string filePath) { return ArchiveFileRegex.IsMatch(Path.GetExtension(filePath)); @@ -841,12 +887,12 @@ namespace API.Parser if (filePath.StartsWith(".") || (!suppressExtraChecks && filePath.StartsWith("!"))) return false; return ImageRegex.IsMatch(Path.GetExtension(filePath)); } - + public static bool IsXml(string filePath) { return XmlRegex.IsMatch(Path.GetExtension(filePath)); } - + public static float MinimumNumberFromRange(string range) { try @@ -891,4 +937,4 @@ namespace API.Parser return Path.GetExtension(filePath).ToLower() == ".epub"; } } -} \ No newline at end of file +} diff --git a/API/Program.cs b/API/Program.cs index fc906cca1..238036960 100644 --- a/API/Program.cs +++ b/API/Program.cs @@ -5,7 +5,6 @@ using System.Threading; using System.Threading.Tasks; using API.Data; using API.Entities; -using API.Services.HostedServices; using Kavita.Common; using Kavita.Common.EnvironmentInfo; using Microsoft.AspNetCore.Hosting; @@ -26,14 +25,14 @@ namespace API protected Program() { } - + public static string GetAppSettingFilename() { var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); var isDevelopment = environment == Environments.Development; return "appsettings" + (isDevelopment ? ".Development" : "") + ".json"; } - + public static async Task Main(string[] args) { Console.OutputEncoding = System.Text.Encoding.UTF8; @@ -47,7 +46,7 @@ namespace API var base64 = Convert.ToBase64String(rBytes).Replace("/", ""); Configuration.UpdateJwtToken(GetAppSettingFilename(), base64); } - + // Get HttpPort from Config _httpPort = Configuration.GetPort(GetAppSettingFilename()); @@ -86,7 +85,7 @@ namespace API options.Protocols = HttpProtocols.Http1AndHttp2; }); }); - + var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); if (environment != Environments.Development) { @@ -125,7 +124,7 @@ namespace API sentryEvent.ServerName = null; // Never send Server Name to Sentry return sentryEvent; }; - + options.ConfigureScope(scope => { scope.User = new User() @@ -143,7 +142,7 @@ namespace API }); } - + webBuilder.UseStartup(); }); } diff --git a/API/Services/ArchiveService.cs b/API/Services/ArchiveService.cs index a90d429ed..af43381fa 100644 --- a/API/Services/ArchiveService.cs +++ b/API/Services/ArchiveService.cs @@ -28,7 +28,6 @@ namespace API.Services { private readonly ILogger _logger; private readonly IDirectoryService _directoryService; - private const int ThumbnailWidth = 320; // 153w x 230h private static readonly RecyclableMemoryStreamManager StreamManager = new(); private readonly NaturalSortComparer _comparer; @@ -38,7 +37,7 @@ namespace API.Services _directoryService = directoryService; _comparer = new NaturalSortComparer(); } - + /// /// Checks if a File can be opened. Requires up to 2 opens of the filestream. /// @@ -47,7 +46,7 @@ namespace API.Services public virtual ArchiveLibrary CanOpen(string archivePath) { if (!(File.Exists(archivePath) && Parser.Parser.IsArchive(archivePath) || Parser.Parser.IsEpub(archivePath))) return ArchiveLibrary.NotSupported; - + try { using var a2 = ZipFile.OpenRead(archivePath); @@ -90,7 +89,7 @@ namespace API.Services { _logger.LogDebug("Using SharpCompress compression handling"); using var archive = ArchiveFactory.Open(archivePath); - return archive.Entries.Count(entry => !entry.IsDirectory && + return archive.Entries.Count(entry => !entry.IsDirectory && !Parser.Parser.HasBlacklistedFolderInPath(Path.GetDirectoryName(entry.Key) ?? string.Empty) && Parser.Parser.IsImage(entry.Key)); } @@ -133,10 +132,10 @@ namespace API.Services var result = entryFullNames.OrderBy(Path.GetFileName, _comparer) .FirstOrDefault(x => !Parser.Parser.HasBlacklistedFolderInPath(x) && Parser.Parser.IsImage(x)); - + return string.IsNullOrEmpty(result) ? null : result; } - + /// /// Generates byte array of cover image. @@ -173,14 +172,14 @@ namespace API.Services _logger.LogDebug("Using SharpCompress compression handling"); using var archive = ArchiveFactory.Open(archivePath); var entryNames = archive.Entries.Where(archiveEntry => !archiveEntry.IsDirectory).Select(e => e.Key).ToList(); - + var entryName = FindFolderEntry(entryNames) ?? FirstFileEntry(entryNames); var entry = archive.Entries.Single(e => e.Key == entryName); - + using var ms = StreamManager.GetStream(); entry.WriteTo(ms); ms.Position = 0; - + return createThumbnail ? CreateThumbnail(entry.Key, ms, Path.GetExtension(entry.Key)) : ms.ToArray(); } case ArchiveLibrary.NotSupported: @@ -195,7 +194,7 @@ namespace API.Services { _logger.LogWarning(ex, "[GetCoverImage] There was an exception when reading archive stream: {ArchivePath}. Defaulting to no cover image", archivePath); } - + return Array.Empty(); } @@ -206,7 +205,7 @@ namespace API.Services stream.CopyTo(ms); return ms.ToArray(); } - + /// /// Given an archive stream, will assess whether directory needs to be flattened so that the extracted archive files are directly /// under extract path and not nested in subfolders. See Flatten method. @@ -225,14 +224,14 @@ namespace API.Services { var tempDirectory = Path.Join(Directory.GetCurrentDirectory(), "temp"); var dateString = DateTime.Now.ToShortDateString().Replace("/", "_"); - + var tempLocation = Path.Join(tempDirectory, $"{tempFolder}_{dateString}"); DirectoryService.ExistOrCreate(tempLocation); if (!_directoryService.CopyFilesToDirectory(files, tempLocation)) { throw new KavitaException("Unable to copy files to temp directory archive download."); } - + var zipPath = Path.Join(tempDirectory, $"kavita_{tempFolder}_{dateString}.zip"); try { @@ -243,10 +242,10 @@ namespace API.Services _logger.LogError(ex, "There was an issue creating temp archive"); throw new KavitaException("There was an issue creating temp archive"); } - - + + var fileBytes = await _directoryService.ReadFileAsync(zipPath); - + DirectoryService.ClearAndDeleteDirectory(tempLocation); (new FileInfo(zipPath)).Delete(); @@ -261,7 +260,7 @@ namespace API.Services } try { - using var thumbnail = Image.ThumbnailStream(stream, ThumbnailWidth); + using var thumbnail = Image.ThumbnailStream(stream, MetadataService.ThumbnailWidth); return thumbnail.WriteToBuffer(formatExtension); } catch (Exception ex) @@ -286,12 +285,12 @@ namespace API.Services } if (Parser.Parser.IsArchive(archivePath) || Parser.Parser.IsEpub(archivePath)) return true; - + _logger.LogWarning("Archive {ArchivePath} is not a valid archive", archivePath); return false; } - + private static ComicInfo FindComicInfoXml(IEnumerable entries) { foreach (var entry in entries) @@ -309,7 +308,7 @@ namespace API.Services } } - + return null; } @@ -322,7 +321,7 @@ namespace API.Services try { if (!File.Exists(archivePath)) return summary; - + var libraryHandler = CanOpen(archivePath); switch (libraryHandler) { @@ -343,7 +342,7 @@ namespace API.Services { _logger.LogDebug("Using SharpCompress compression handling"); using var archive = ArchiveFactory.Open(archivePath); - info = FindComicInfoXml(archive.Entries.Where(entry => !entry.IsDirectory + info = FindComicInfoXml(archive.Entries.Where(entry => !entry.IsDirectory && !Parser.Parser.HasBlacklistedFolderInPath(Path.GetDirectoryName(entry.Key) ?? string.Empty) && Parser.Parser.IsXml(entry.Key))); break; @@ -365,7 +364,7 @@ namespace API.Services { _logger.LogWarning(ex, "[GetSummaryInfo] There was an exception when reading archive stream: {Filepath}", archivePath); } - + return summary; } @@ -386,7 +385,7 @@ namespace API.Services { var needsFlattening = ArchiveNeedsFlattening(archive); if (!archive.HasFiles() && !needsFlattening) return; - + archive.ExtractToDirectory(extractPath, true); if (needsFlattening) { @@ -408,7 +407,7 @@ namespace API.Services if (!IsValidArchive(archivePath)) return; if (Directory.Exists(extractPath)) return; - + var sw = Stopwatch.StartNew(); try @@ -427,7 +426,7 @@ namespace API.Services { _logger.LogDebug("Using SharpCompress compression handling"); using var archive = ArchiveFactory.Open(archivePath); - ExtractArchiveEntities(archive.Entries.Where(entry => !entry.IsDirectory + ExtractArchiveEntities(archive.Entries.Where(entry => !entry.IsDirectory && !Parser.Parser.HasBlacklistedFolderInPath(Path.GetDirectoryName(entry.Key) ?? string.Empty) && Parser.Parser.IsImage(entry.Key)), extractPath); break; @@ -439,7 +438,7 @@ namespace API.Services _logger.LogWarning("[ExtractArchive] There was an exception when reading archive stream: {ArchivePath}. Defaulting to 0 pages", archivePath); return; } - + } catch (Exception e) { @@ -449,4 +448,4 @@ namespace API.Services _logger.LogDebug("Extracted archive to {ExtractPath} in {ElapsedMilliseconds} milliseconds", extractPath, sw.ElapsedMilliseconds); } } -} \ No newline at end of file +} diff --git a/API/Services/BookService.cs b/API/Services/BookService.cs index f36455ff6..36c59a789 100644 --- a/API/Services/BookService.cs +++ b/API/Services/BookService.cs @@ -7,7 +7,7 @@ using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Web; using API.Entities.Enums; -using API.Interfaces; +using API.Interfaces.Services; using API.Parser; using ExCSS; using HtmlAgilityPack; @@ -20,18 +20,16 @@ namespace API.Services public class BookService : IBookService { private readonly ILogger _logger; - - private const int ThumbnailWidth = 320; // 153w x 230h private readonly StylesheetParser _cssParser = new (); public BookService(ILogger logger) { _logger = logger; } - + private static bool HasClickableHrefPart(HtmlNode anchor) { - return anchor.GetAttributeValue("href", string.Empty).Contains("#") + return anchor.GetAttributeValue("href", string.Empty).Contains("#") && anchor.GetAttributeValue("tabindex", string.Empty) != "-1" && anchor.GetAttributeValue("role", string.Empty) != "presentation"; } @@ -74,7 +72,7 @@ namespace API.Services .Split("#"); // Some keys get uri encoded when parsed, so replace any of those characters with original var mappingKey = HttpUtility.UrlDecode(hrefParts[0]); - + if (!mappings.ContainsKey(mappingKey)) { if (HasClickableHrefPart(anchor)) @@ -95,7 +93,7 @@ namespace API.Services return; } - + var mappedPage = mappings[mappingKey]; anchor.Attributes.Add("kavita-page", $"{mappedPage}"); if (hrefParts.Length > 1) @@ -103,7 +101,7 @@ namespace API.Services anchor.Attributes.Add("kavita-part", hrefParts[1]); } - + anchor.Attributes.Remove("href"); anchor.Attributes.Add("href", "javascript:void(0)"); } @@ -117,7 +115,7 @@ namespace API.Services foreach (Match match in Parser.Parser.CssImportUrlRegex.Matches(stylesheetHtml)) { if (!match.Success) continue; - + var importFile = match.Groups["Filename"].Value; var key = CleanContentKeys(importFile); if (!key.Contains(prepend)) @@ -125,7 +123,7 @@ namespace API.Services key = prepend + key; } if (!book.Content.AllFiles.ContainsKey(key)) continue; - + var bookFile = book.Content.AllFiles[key]; var content = await bookFile.ReadContentAsBytesAsync(); importBuilder.Append(Encoding.UTF8.GetString(content)); @@ -134,13 +132,13 @@ namespace API.Services stylesheetHtml = stylesheetHtml.Insert(0, importBuilder.ToString()); stylesheetHtml = Parser.Parser.CssImportUrlRegex.Replace(stylesheetHtml, "$1" + apiBase + prepend + "$2" + "$3"); - + var styleContent = RemoveWhiteSpaceFromStylesheets(stylesheetHtml); styleContent = Parser.Parser.FontSrcUrlRegex.Replace(styleContent, "$1" + apiBase + "$2" + "$3"); styleContent = styleContent.Replace("body", ".reading-section"); - + var stylesheet = await _cssParser.ParseAsync(styleContent); foreach (var styleRule in stylesheet.StyleRules) { @@ -183,9 +181,9 @@ namespace API.Services } if (Parser.Parser.IsBook(filePath)) return true; - + _logger.LogWarning("[BookService] Book {EpubFile} is not a valid EPUB", filePath); - return false; + return false; } public int GetNumberOfPages(string filePath) @@ -227,7 +225,7 @@ namespace API.Services dict.Add(contentFileRef.FileName, pageCount); pageCount += 1; } - + return dict; } @@ -242,7 +240,7 @@ namespace API.Services try { using var epubBook = EpubReader.OpenBook(filePath); - + // If the epub has the following tags, we can group the books as Volumes // // @@ -262,7 +260,7 @@ namespace API.Services var specialName = string.Empty; var groupPosition = string.Empty; - + foreach (var metadataItem in epubBook.Schema.Package.Metadata.MetaItems) { // EPUB 2 and 3 @@ -340,12 +338,12 @@ namespace API.Services return null; } - + public byte[] GetCoverImage(string fileFilePath, bool createThumbnail = true) { if (!IsValidFile(fileFilePath)) return Array.Empty(); - + using var epubBook = EpubReader.OpenBook(fileFilePath); @@ -355,14 +353,14 @@ namespace API.Services var coverImageContent = epubBook.Content.Cover ?? epubBook.Content.Images.Values.FirstOrDefault(file => Parser.Parser.IsCoverImage(file.FileName)) ?? epubBook.Content.Images.Values.FirstOrDefault(); - + if (coverImageContent == null) return Array.Empty(); if (createThumbnail) { using var stream = new MemoryStream(coverImageContent.ReadContent()); - using var thumbnail = Image.ThumbnailStream(stream, ThumbnailWidth); + using var thumbnail = Image.ThumbnailStream(stream, MetadataService.ThumbnailWidth); return thumbnail.WriteToBuffer(".jpg"); } @@ -372,10 +370,10 @@ namespace API.Services { _logger.LogWarning(ex, "[BookService] There was a critical error and prevented thumbnail generation on {BookFile}. Defaulting to no cover image", fileFilePath); } - + return Array.Empty(); } - + private static string RemoveWhiteSpaceFromStylesheets(string body) { body = Regex.Replace(body, @"[a-zA-Z]+#", "#"); @@ -391,4 +389,4 @@ namespace API.Services return body; } } -} \ No newline at end of file +} diff --git a/API/Services/CacheService.cs b/API/Services/CacheService.cs index 73c279657..bc3533481 100644 --- a/API/Services/CacheService.cs +++ b/API/Services/CacheService.cs @@ -21,7 +21,7 @@ namespace API.Services private readonly NumericComparer _numericComparer; public static readonly string CacheDirectory = Path.GetFullPath(Path.Join(Directory.GetCurrentDirectory(), "cache/")); - public CacheService(ILogger logger, IUnitOfWork unitOfWork, IArchiveService archiveService, + public CacheService(ILogger logger, IUnitOfWork unitOfWork, IArchiveService archiveService, IDirectoryService directoryService) { _logger = logger; @@ -47,58 +47,71 @@ namespace API.Services var fileCount = files.Count; var extractPath = GetCachePath(chapterId); var extraPath = ""; - - foreach (var file in files) + + if (Directory.Exists(extractPath)) { - if (fileCount > 1) - { - extraPath = file.Id + ""; - } - - if (file.Format == MangaFormat.Archive) - { - _archiveService.ExtractArchive(file.FilePath, Path.Join(extractPath, extraPath)); - } - + return chapter; } - new DirectoryInfo(extractPath).Flatten(); + var extractDi = new DirectoryInfo(extractPath); + + if (files.Count > 0 && files[0].Format == MangaFormat.Image) + { + DirectoryService.ExistOrCreate(extractPath); + _directoryService.CopyDirectoryToDirectory(Path.GetDirectoryName(files[0].FilePath), extractPath); + extractDi.Flatten(); + return chapter; + } + + foreach (var file in files) + { + if (fileCount > 1) + { + extraPath = file.Id + string.Empty; + } + + if (file.Format == MangaFormat.Archive) + { + _archiveService.ExtractArchive(file.FilePath, Path.Join(extractPath, extraPath)); + } + } + + extractDi.Flatten(); + extractDi.RemoveNonImages(); return chapter; } - + public void Cleanup() { _logger.LogInformation("Performing cleanup of Cache directory"); EnsureCacheDirectory(); - DirectoryInfo di = new DirectoryInfo(CacheDirectory); - try { - di.Empty(); + DirectoryService.ClearDirectory(CacheDirectory); } catch (Exception ex) { _logger.LogError(ex, "There was an issue deleting one or more folders/files during cleanup"); } - + _logger.LogInformation("Cache directory purged"); } - + public void CleanupChapters(int[] chapterIds) { _logger.LogInformation("Running Cache cleanup on Volumes"); - + foreach (var chapter in chapterIds) { var di = new DirectoryInfo(GetCachePath(chapter)); if (di.Exists) { - di.Delete(true); + di.Delete(true); } - + } _logger.LogInformation("Cache directory purged"); } @@ -124,27 +137,33 @@ namespace API.Services if (page <= (mangaFile.Pages + pagesSoFar)) { var path = GetCachePath(chapter.Id); - var files = _directoryService.GetFilesWithExtension(path, Parser.Parser.ImageFileExtensions); + var files = _directoryService.GetFilesWithExtension(path, Parser.Parser.ImageFileExtensions); Array.Sort(files, _numericComparer); if (files.Length == 0) { return (files.ElementAt(0), mangaFile); } - + // Since array is 0 based, we need to keep that in account (only affects last image) if (page == files.Length) { return (files.ElementAt(page - 1 - pagesSoFar), mangaFile); } - + + if (mangaFile.Format == MangaFormat.Image && mangaFile.Pages == 1) + { + // Each file is one page, meaning we should just get element at page + return (files.ElementAt(page), mangaFile); + } + return (files.ElementAt(page - pagesSoFar), mangaFile); } - + pagesSoFar += mangaFile.Pages; } - return ("", null); + return (string.Empty, null); } } -} \ No newline at end of file +} diff --git a/API/Services/Clients/StatsApiClient.cs b/API/Services/Clients/StatsApiClient.cs index e07bec222..29a8cf8dd 100644 --- a/API/Services/Clients/StatsApiClient.cs +++ b/API/Services/Clients/StatsApiClient.cs @@ -1,7 +1,6 @@ using System; using System.Net.Http; using System.Net.Http.Json; -using System.Threading; using System.Threading.Tasks; using API.Configurations.CustomOptions; @@ -59,4 +58,4 @@ namespace API.Services.Clients } } } -} \ No newline at end of file +} diff --git a/API/Services/DirectoryService.cs b/API/Services/DirectoryService.cs index f823d2066..cc7f2b6ca 100644 --- a/API/Services/DirectoryService.cs +++ b/API/Services/DirectoryService.cs @@ -14,7 +14,7 @@ namespace API.Services { private readonly ILogger _logger; private static readonly Regex ExcludeDirectories = new Regex( - @"@eaDir|\.DS_Store", + @"@eaDir|\.DS_Store", RegexOptions.Compiled | RegexOptions.IgnoreCase); public DirectoryService(ILogger logger) @@ -23,13 +23,13 @@ namespace API.Services } /// - /// Given a set of regex search criteria, get files in the given path. + /// Given a set of regex search criteria, get files in the given path. /// /// Directory to search /// Regex version of search pattern (ie \.mp3|\.mp4). Defaults to * meaning all files. /// SearchOption to use, defaults to TopDirectoryOnly /// List of file paths - private static IEnumerable GetFilesWithCertainExtensions(string path, + private static IEnumerable GetFilesWithCertainExtensions(string path, string searchPatternExpression = "", SearchOption searchOption = SearchOption.TopDirectoryOnly) { @@ -40,8 +40,9 @@ namespace API.Services reSearchPattern.IsMatch(Path.GetExtension(file))); } + /// - /// Returns a list of folders from end of fullPath to rootPath. + /// Returns a list of folders from end of fullPath to rootPath. If a file is passed at the end of the fullPath, it will be ignored. /// /// Example) (C:/Manga/, C:/Manga/Love Hina/Specials/Omake/) returns [Omake, Specials, Love Hina] /// @@ -50,25 +51,33 @@ namespace API.Services /// public static IEnumerable GetFoldersTillRoot(string rootPath, string fullPath) { - var separator = Path.AltDirectorySeparatorChar; + var separator = Path.AltDirectorySeparatorChar; if (fullPath.Contains(Path.DirectorySeparatorChar)) { fullPath = fullPath.Replace(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); } - + if (rootPath.Contains(Path.DirectorySeparatorChar)) { rootPath = rootPath.Replace(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); } + + var path = fullPath.EndsWith(separator) ? fullPath.Substring(0, fullPath.Length - 1) : fullPath; var root = rootPath.EndsWith(separator) ? rootPath.Substring(0, rootPath.Length - 1) : rootPath; var paths = new List(); + // If a file is at the end of the path, remove it before we start processing folders + if (Path.GetExtension(path) != string.Empty) + { + path = path.Substring(0, path.LastIndexOf(separator)); + } + while (Path.GetDirectoryName(path) != Path.GetDirectoryName(root)) { var folder = new DirectoryInfo(path).Name; paths.Add(folder); - path = path.Replace(separator + folder, string.Empty); + path = path.Substring(0, path.LastIndexOf(separator)); } return paths; @@ -80,7 +89,7 @@ namespace API.Services return di.Exists; } - public IEnumerable GetFiles(string path, string searchPatternExpression = "", + public IEnumerable GetFiles(string path, string searchPatternExpression = "", SearchOption searchOption = SearchOption.TopDirectoryOnly) { if (searchPatternExpression != string.Empty) @@ -91,17 +100,68 @@ namespace API.Services .Where(file => reSearchPattern.IsMatch(file)); } - + return !Directory.Exists(path) ? Array.Empty() : Directory.GetFiles(path); } + public void CopyFileToDirectory(string fullFilePath, string targetDirectory) + { + var fileInfo = new FileInfo(fullFilePath); + if (fileInfo.Exists) + { + fileInfo.CopyTo(Path.Join(targetDirectory, fileInfo.Name)); + } + } + + public bool CopyDirectoryToDirectory(string sourceDirName, string destDirName) + { + if (string.IsNullOrEmpty(sourceDirName)) return false; + + var di = new DirectoryInfo(sourceDirName); + if (!di.Exists) return false; + + // Get the subdirectories for the specified directory. + var dir = new DirectoryInfo(sourceDirName); + + if (!dir.Exists) + { + throw new DirectoryNotFoundException( + "Source directory does not exist or could not be found: " + + sourceDirName); + } + + var dirs = dir.GetDirectories(); + + // If the destination directory doesn't exist, create it. + Directory.CreateDirectory(destDirName); + + // Get the files in the directory and copy them to the new location. + var files = dir.GetFiles(); + foreach (var file in files) + { + var tempPath = Path.Combine(destDirName, file.Name); + file.CopyTo(tempPath, false); + } + + // If copying subdirectories, copy them and their contents to new location. + foreach (var subDir in dirs) + { + var tempPath = Path.Combine(destDirName, subDir.Name); + CopyDirectoryToDirectory(subDir.FullName, tempPath); + } + + return true; + } + + + public string[] GetFilesWithExtension(string path, string searchPatternExpression = "") { if (searchPatternExpression != string.Empty) { return GetFilesWithCertainExtensions(path, searchPatternExpression).ToArray(); } - + return !Directory.Exists(path) ? Array.Empty() : Directory.GetFiles(path); } @@ -142,11 +202,11 @@ namespace API.Services public static void ClearAndDeleteDirectory(string directoryPath) { if (!Directory.Exists(directoryPath)) return; - + DirectoryInfo di = new DirectoryInfo(directoryPath); ClearDirectory(directoryPath); - + di.Delete(true); } @@ -162,11 +222,11 @@ namespace API.Services foreach (var file in di.EnumerateFiles()) { - file.Delete(); + file.Delete(); } foreach (var dir in di.EnumerateDirectories()) { - dir.Delete(true); + dir.Delete(true); } } @@ -181,13 +241,13 @@ namespace API.Services var fileInfo = new FileInfo(file); if (fileInfo.Exists) { - fileInfo.CopyTo(Path.Join(directoryPath, fileInfo.Name)); + fileInfo.CopyTo(Path.Join(directoryPath, fileInfo.Name)); } else { _logger.LogWarning("Tried to copy {File} but it doesn't exist", file); } - + } } catch (Exception ex) @@ -202,12 +262,12 @@ namespace API.Services public IEnumerable ListDirectory(string rootPath) { if (!Directory.Exists(rootPath)) return ImmutableList.Empty; - + var di = new DirectoryInfo(rootPath); var dirs = di.GetDirectories() .Where(dir => !(dir.Attributes.HasFlag(FileAttributes.Hidden) || dir.Attributes.HasFlag(FileAttributes.System))) .Select(d => d.Name).ToImmutableList(); - + return dirs; } @@ -326,6 +386,6 @@ namespace API.Services return fileCount; } - + } -} \ No newline at end of file +} diff --git a/API/Services/ImageService.cs b/API/Services/ImageService.cs new file mode 100644 index 000000000..cae176a2d --- /dev/null +++ b/API/Services/ImageService.cs @@ -0,0 +1,71 @@ +using System; +using System.IO; +using System.Linq; +using API.Comparators; +using API.Entities; +using API.Interfaces.Services; +using Microsoft.Extensions.Logging; +using NetVips; + +namespace API.Services +{ + + public class ImageService : IImageService + { + private readonly ILogger _logger; + private readonly IDirectoryService _directoryService; + private readonly NaturalSortComparer _naturalSortComparer; + + public ImageService(ILogger logger, IDirectoryService directoryService) + { + _logger = logger; + _directoryService = directoryService; + _naturalSortComparer = new NaturalSortComparer(); + } + + /// + /// Finds the first image in the directory of the first file. Does not check for "cover/folder".ext files to override. + /// + /// + /// + public string GetCoverFile(MangaFile file) + { + var directory = Path.GetDirectoryName(file.FilePath); + if (string.IsNullOrEmpty(directory)) + { + _logger.LogError("Could not find Directory for {File}", file.FilePath); + return null; + } + + var firstImage = _directoryService.GetFilesWithExtension(directory, Parser.Parser.ImageFileExtensions) + .OrderBy(f => f, _naturalSortComparer).FirstOrDefault(); + + return firstImage; + } + + public byte[] GetCoverImage(string path, bool createThumbnail = false) + { + if (string.IsNullOrEmpty(path)) return Array.Empty(); + + try + { + if (createThumbnail) + { + using var thumbnail = Image.Thumbnail(path, MetadataService.ThumbnailWidth); + return thumbnail.WriteToBuffer(".jpg"); + } + + using var img = Image.NewFromFile(path); + using var stream = new MemoryStream(); + img.JpegsaveStream(stream); + return stream.ToArray(); + } + catch (Exception ex) + { + _logger.LogWarning(ex, "[GetCoverImage] There was an error and prevented thumbnail generation on {ImageFile}. Defaulting to no cover image", path); + } + + return Array.Empty(); + } + } +} diff --git a/API/Services/MetadataService.cs b/API/Services/MetadataService.cs index 6ee2856ab..7d9b143b5 100644 --- a/API/Services/MetadataService.cs +++ b/API/Services/MetadataService.cs @@ -20,16 +20,22 @@ namespace API.Services private readonly ILogger _logger; private readonly IArchiveService _archiveService; private readonly IBookService _bookService; + private readonly IDirectoryService _directoryService; + private readonly IImageService _imageService; private readonly ChapterSortComparer _chapterSortComparer = new ChapterSortComparer(); + public static readonly int ThumbnailWidth = 320; // 153w x 230h - public MetadataService(IUnitOfWork unitOfWork, ILogger logger, IArchiveService archiveService, IBookService bookService) + public MetadataService(IUnitOfWork unitOfWork, ILogger logger, + IArchiveService archiveService, IBookService bookService, IDirectoryService directoryService, IImageService imageService) { _unitOfWork = unitOfWork; _logger = logger; _archiveService = archiveService; _bookService = bookService; + _directoryService = directoryService; + _imageService = imageService; } - + private static bool ShouldFindCoverImage(byte[] coverImage, bool forceUpdate = false) { return forceUpdate || coverImage == null || !coverImage.Any(); @@ -37,23 +43,25 @@ namespace API.Services private byte[] GetCoverImage(MangaFile file, bool createThumbnail = true) { - if (file.Format == MangaFormat.Book) - { + switch (file.Format) + { + case MangaFormat.Book: return _bookService.GetCoverImage(file.FilePath, createThumbnail); - } - else - { - return _archiveService.GetCoverImage(file.FilePath, createThumbnail); - } + case MangaFormat.Image: + var coverImage = _imageService.GetCoverFile(file); + return _imageService.GetCoverImage(coverImage, createThumbnail); + default: + return _archiveService.GetCoverImage(file.FilePath, createThumbnail); + } } public void UpdateMetadata(Chapter chapter, bool forceUpdate) { - var firstFile = chapter.Files.OrderBy(x => x.Chapter).FirstOrDefault(); + var firstFile = chapter.Files.OrderBy(x => x.Chapter).FirstOrDefault(); if (ShouldFindCoverImage(chapter.CoverImage, forceUpdate) && firstFile != null && !new FileInfo(firstFile.FilePath).IsLastWriteLessThan(firstFile.LastModified)) { chapter.Files ??= new List(); - chapter.CoverImage = GetCoverImage(firstFile); + chapter.CoverImage = GetCoverImage(firstFile); } } @@ -88,10 +96,10 @@ namespace API.Services { series.Volumes ??= new List(); var firstCover = series.Volumes.GetCoverImage(series.Library.Type); - byte[] coverImage = null; + byte[] coverImage = null; if (firstCover == null && series.Volumes.Any()) { - // If firstCover is null and one volume, the whole series is Chapters under Vol 0. + // If firstCover is null and one volume, the whole series is Chapters under Vol 0. if (series.Volumes.Count == 1) { coverImage = series.Volumes[0].Chapters.OrderBy(c => double.Parse(c.Number), _chapterSortComparer) @@ -113,24 +121,21 @@ namespace API.Services private void UpdateSeriesSummary(Series series, bool forceUpdate) { if (!string.IsNullOrEmpty(series.Summary) && !forceUpdate) return; - + var isBook = series.Library.Type == LibraryType.Book; var firstVolume = series.Volumes.FirstWithChapters(isBook); var firstChapter = firstVolume?.Chapters.GetFirstChapterWithFiles(); // NOTE: This suffers from code changes not taking effect due to stale data var firstFile = firstChapter?.Files.FirstOrDefault(); - if (firstFile != null && - (forceUpdate || firstFile.HasFileBeenModified())) // !new FileInfo(firstFile.FilePath).IsLastWriteLessThan(firstFile.LastModified) + if (firstFile == null || (!forceUpdate && !firstFile.HasFileBeenModified())) return; + var summary = isBook ? _bookService.GetSummaryInfo(firstFile.FilePath) : _archiveService.GetSummaryInfo(firstFile.FilePath); + if (string.IsNullOrEmpty(series.Summary)) { - var summary = isBook ? _bookService.GetSummaryInfo(firstFile.FilePath) : _archiveService.GetSummaryInfo(firstFile.FilePath); - if (string.IsNullOrEmpty(series.Summary)) - { - series.Summary = summary; - } - - firstFile.LastModified = DateTime.Now; + series.Summary = summary; } + + firstFile.LastModified = DateTime.Now; } @@ -149,7 +154,7 @@ namespace API.Services { UpdateMetadata(chapter, forceUpdate); } - + UpdateMetadata(volume, forceUpdate); } @@ -163,13 +168,13 @@ namespace API.Services _logger.LogInformation("Updated metadata for {LibraryName} in {ElapsedMilliseconds} milliseconds", library.Name, sw.ElapsedMilliseconds); } } - - + + public void RefreshMetadataForSeries(int libraryId, int seriesId) { var sw = Stopwatch.StartNew(); var library = Task.Run(() => _unitOfWork.LibraryRepository.GetFullLibraryForIdAsync(libraryId)).GetAwaiter().GetResult(); - + var series = library.Series.SingleOrDefault(s => s.Id == seriesId); if (series == null) { @@ -183,7 +188,7 @@ namespace API.Services { UpdateMetadata(chapter, true); } - + UpdateMetadata(volume, true); } @@ -197,4 +202,4 @@ namespace API.Services } } } -} \ No newline at end of file +} diff --git a/API/Services/StatsService.cs b/API/Services/StatsService.cs index 2c315c99d..0e4748845 100644 --- a/API/Services/StatsService.cs +++ b/API/Services/StatsService.cs @@ -133,7 +133,7 @@ namespace API.Services return usageInfo; } - private static ServerInfoDto GetServerInfo() + public static ServerInfoDto GetServerInfo() { var serverInfo = new ServerInfoDto { @@ -183,4 +183,4 @@ namespace API.Services await File.WriteAllTextAsync(FinalPath, dataJson); } } -} \ No newline at end of file +} diff --git a/API/Services/TaskScheduler.cs b/API/Services/TaskScheduler.cs index 61ee114b3..675f51352 100644 --- a/API/Services/TaskScheduler.cs +++ b/API/Services/TaskScheduler.cs @@ -1,4 +1,5 @@ using System.IO; +using System.Threading; using System.Threading.Tasks; using API.Entities.Enums; using API.Helpers.Converters; @@ -24,7 +25,7 @@ namespace API.Services public static BackgroundJobServer Client => new BackgroundJobServer(); - public TaskScheduler(ICacheService cacheService, ILogger logger, IScannerService scannerService, + public TaskScheduler(ICacheService cacheService, ILogger logger, IScannerService scannerService, IUnitOfWork unitOfWork, IMetadataService metadataService, IBackupService backupService, ICleanupService cleanupService, IStatsService statsService) { @@ -41,20 +42,20 @@ namespace API.Services public void ScheduleTasks() { _logger.LogInformation("Scheduling reoccurring tasks"); - + var setting = Task.Run(() => _unitOfWork.SettingsRepository.GetSettingAsync(ServerSettingKey.TaskScan)).GetAwaiter().GetResult().Value; if (setting != null) { var scanLibrarySetting = setting; _logger.LogDebug("Scheduling Scan Library Task for {Setting}", scanLibrarySetting); - RecurringJob.AddOrUpdate("scan-libraries", () => _scannerService.ScanLibraries(), + RecurringJob.AddOrUpdate("scan-libraries", () => _scannerService.ScanLibraries(), () => CronConverter.ConvertToCronNotation(scanLibrarySetting)); } else { RecurringJob.AddOrUpdate("scan-libraries", () => _scannerService.ScanLibraries(), Cron.Daily); } - + setting = Task.Run(() => _unitOfWork.SettingsRepository.GetSettingAsync(ServerSettingKey.TaskBackup)).Result.Value; if (setting != null) { @@ -65,7 +66,7 @@ namespace API.Services { RecurringJob.AddOrUpdate("backup", () => _backupService.BackupDatabase(), Cron.Weekly); } - + RecurringJob.AddOrUpdate("cleanup", () => _cleanupService.Cleanup(), Cron.Daily); } @@ -80,7 +81,7 @@ namespace API.Services _logger.LogDebug("User has opted out of stat collection, not registering tasks"); return; } - + _logger.LogDebug("Adding StatsTasks"); _logger.LogDebug("Scheduling Send data to the Stats server {Setting}", nameof(Cron.Daily)); @@ -99,9 +100,9 @@ namespace API.Services public void ScanLibrary(int libraryId, bool forceUpdate = false) { _logger.LogInformation("Enqueuing library scan for: {LibraryId}", libraryId); - BackgroundJob.Enqueue(() => _scannerService.ScanLibrary(libraryId, forceUpdate)); + BackgroundJob.Enqueue(() => _scannerService.ScanLibrary(libraryId, forceUpdate)); // When we do a scan, force cache to re-unpack in case page numbers change - BackgroundJob.Enqueue(() => _cleanupService.Cleanup()); + BackgroundJob.Enqueue(() => _cleanupService.Cleanup()); } public void CleanupChapters(int[] chapterIds) @@ -112,19 +113,25 @@ namespace API.Services public void RefreshMetadata(int libraryId, bool forceUpdate = true) { _logger.LogInformation("Enqueuing library metadata refresh for: {LibraryId}", libraryId); - BackgroundJob.Enqueue((() => _metadataService.RefreshMetadata(libraryId, forceUpdate))); + BackgroundJob.Enqueue(() => _metadataService.RefreshMetadata(libraryId, forceUpdate)); } public void CleanupTemp() { var tempDirectory = Path.Join(Directory.GetCurrentDirectory(), "temp"); - BackgroundJob.Enqueue((() => DirectoryService.ClearDirectory(tempDirectory))); + BackgroundJob.Enqueue(() => DirectoryService.ClearDirectory(tempDirectory)); } public void RefreshSeriesMetadata(int libraryId, int seriesId) { _logger.LogInformation("Enqueuing series metadata refresh for: {SeriesId}", seriesId); - BackgroundJob.Enqueue((() => _metadataService.RefreshMetadataForSeries(libraryId, seriesId))); + BackgroundJob.Enqueue(() => _metadataService.RefreshMetadataForSeries(libraryId, seriesId)); + } + + public void ScanSeries(int libraryId, int seriesId, bool forceUpdate = false) + { + _logger.LogInformation("Enqueuing series scan for: {SeriesId}", seriesId); + BackgroundJob.Enqueue(() => _scannerService.ScanSeries(libraryId, seriesId, forceUpdate, CancellationToken.None)); } public void BackupDatabase() @@ -132,4 +139,4 @@ namespace API.Services BackgroundJob.Enqueue(() => _backupService.BackupDatabase()); } } -} \ No newline at end of file +} diff --git a/API/Services/Tasks/ScannerService.cs b/API/Services/Tasks/ScannerService.cs index 232e8fce0..7febcd9d3 100644 --- a/API/Services/Tasks/ScannerService.cs +++ b/API/Services/Tasks/ScannerService.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; +using System.Threading; using System.Threading.Tasks; using API.Comparators; using API.Data; @@ -28,7 +29,7 @@ namespace API.Services.Tasks private ConcurrentDictionary> _scannedSeries; private readonly NaturalSortComparer _naturalSort; - public ScannerService(IUnitOfWork unitOfWork, ILogger logger, IArchiveService archiveService, + public ScannerService(IUnitOfWork unitOfWork, ILogger logger, IArchiveService archiveService, IMetadataService metadataService, IBookService bookService) { _unitOfWork = unitOfWork; @@ -39,6 +40,86 @@ namespace API.Services.Tasks _naturalSort = new NaturalSortComparer(); } + [DisableConcurrentExecution(timeoutInSeconds: 360)] + [AutomaticRetry(Attempts = 0, OnAttemptsExceeded = AttemptsExceededAction.Delete)] + public async Task ScanSeries(int libraryId, int seriesId, bool forceUpdate, CancellationToken token) + { + var files = await _unitOfWork.SeriesRepository.GetFilesForSeries(seriesId); + var series = await _unitOfWork.SeriesRepository.GetSeriesByIdAsync(seriesId); + var library = await _unitOfWork.LibraryRepository.GetFullLibraryForIdAsync(libraryId, seriesId); + var dirs = FindHighestDirectoriesFromFiles(library, files); + + _logger.LogInformation("Beginning file scan on {SeriesName}", series.Name); + // TODO: We can't have a global variable if multiple scans are taking place. Refactor this. + _scannedSeries = new ConcurrentDictionary>(); + var parsedSeries = ScanLibrariesForSeries(library.Type, dirs.Keys, out var totalFiles, out var scanElapsedTime); + + // If a root level folder scan occurs, then multiple series gets passed in and thus we get a unique constraint issue + // Hence we clear out anything but what we selected for + var firstSeries = library.Series.FirstOrDefault(); + var keys = parsedSeries.Keys; + foreach (var key in keys.Where(key => !firstSeries.NameInParserInfo(parsedSeries[key].FirstOrDefault()))) + { + parsedSeries.Remove(key); + } + + var sw = new Stopwatch(); + UpdateLibrary(library, parsedSeries); + + _unitOfWork.LibraryRepository.Update(library); + if (await _unitOfWork.CommitAsync()) + { + _logger.LogInformation( + "Processed {TotalFiles} files and {ParsedSeriesCount} series in {ElapsedScanTime} milliseconds for {SeriesName}", + totalFiles, parsedSeries.Keys.Count, sw.ElapsedMilliseconds + scanElapsedTime, series.Name); + CleanupUserProgress(); + BackgroundJob.Enqueue(() => _metadataService.RefreshMetadata(libraryId, forceUpdate)); + } + else + { + _logger.LogCritical( + "There was a critical error that resulted in a failed scan. Please check logs and rescan"); + await _unitOfWork.RollbackAsync(); + } + } + + /// + /// Finds the highest directories from a set of MangaFiles + /// + /// + /// + /// + private static Dictionary FindHighestDirectoriesFromFiles(Library library, IList files) + { + var stopLookingForDirectories = false; + var dirs = new Dictionary(); + foreach (var folder in library.Folders) + { + if (stopLookingForDirectories) break; + foreach (var file in files) + { + if (!file.FilePath.Contains(folder.Path)) continue; + + var parts = DirectoryService.GetFoldersTillRoot(folder.Path, file.FilePath).ToList(); + if (parts.Count == 0) + { + // Break from all loops, we done, just scan folder.Path (library root) + dirs.Add(folder.Path, string.Empty); + stopLookingForDirectories = true; + break; + } + + var fullPath = Path.Join(folder.Path, parts.Last()); + if (!dirs.ContainsKey(fullPath)) + { + dirs.Add(fullPath, string.Empty); + } + } + } + + return dirs; + } + [DisableConcurrentExecution(timeoutInSeconds: 360)] [AutomaticRetry(Attempts = 0, OnAttemptsExceeded = AttemptsExceededAction.Delete)] @@ -51,51 +132,46 @@ namespace API.Services.Tasks } } - private bool ShouldSkipFolderScan(FolderPath folder, ref int skippedFolders) - { - // NOTE: The only way to skip folders is if Directory hasn't been modified, we aren't doing a forcedUpdate and version hasn't changed between scans. - return false; - - // if (!_forceUpdate && Directory.GetLastWriteTime(folder.Path) < folder.LastScanned) - // { - // _logger.LogDebug("{FolderPath} hasn't been modified since last scan. Skipping", folder.Path); - // skippedFolders += 1; - // return true; - // } - - //return false; - } [DisableConcurrentExecution(360)] [AutomaticRetry(Attempts = 0, OnAttemptsExceeded = AttemptsExceededAction.Delete)] public void ScanLibrary(int libraryId, bool forceUpdate) { - var sw = Stopwatch.StartNew(); - _scannedSeries = new ConcurrentDictionary>(); - Library library; + _scannedSeries = new ConcurrentDictionary>(); + Library library; try { - library = Task.Run(() => _unitOfWork.LibraryRepository.GetFullLibraryForIdAsync(libraryId)).GetAwaiter().GetResult(); + library = Task.Run(() => _unitOfWork.LibraryRepository.GetFullLibraryForIdAsync(libraryId)).GetAwaiter() + .GetResult(); } catch (Exception ex) { - // This usually only fails if user is not authenticated. - _logger.LogError(ex, "There was an issue fetching Library {LibraryId}", libraryId); - return; + // This usually only fails if user is not authenticated. + _logger.LogError(ex, "There was an issue fetching Library {LibraryId}", libraryId); + return; } - - - var series = ScanLibrariesForSeries(forceUpdate, library, sw, out var totalFiles, out var scanElapsedTime); + + _logger.LogInformation("Beginning file scan on {LibraryName}", library.Name); + var series = ScanLibrariesForSeries(library.Type, library.Folders.Select(fp => fp.Path), out var totalFiles, out var scanElapsedTime); + foreach (var folderPath in library.Folders) + { + folderPath.LastScanned = DateTime.Now; + } + var sw = Stopwatch.StartNew(); + UpdateLibrary(library, series); - + _unitOfWork.LibraryRepository.Update(library); if (Task.Run(() => _unitOfWork.CommitAsync()).Result) { - _logger.LogInformation("Processed {TotalFiles} files and {ParsedSeriesCount} series in {ElapsedScanTime} milliseconds for {LibraryName}", totalFiles, series.Keys.Count, sw.ElapsedMilliseconds + scanElapsedTime, library.Name); + _logger.LogInformation( + "Processed {TotalFiles} files and {ParsedSeriesCount} series in {ElapsedScanTime} milliseconds for {LibraryName}", + totalFiles, series.Keys.Count, sw.ElapsedMilliseconds + scanElapsedTime, library.Name); } else { - _logger.LogCritical("There was a critical error that resulted in a failed scan. Please check logs and rescan"); + _logger.LogCritical( + "There was a critical error that resulted in a failed scan. Please check logs and rescan"); } CleanupUserProgress(); @@ -112,61 +188,59 @@ namespace API.Services.Tasks _logger.LogInformation("Removed {Count} abandoned progress rows", cleanedUp); } - private Dictionary> ScanLibrariesForSeries(bool forceUpdate, Library library, Stopwatch sw, out int totalFiles, + /// + /// + /// + /// Type of library. Used for selecting the correct file extensions to search for and parsing files + /// The folders to scan. By default, this should be library.Folders, however it can be overwritten to restrict folders + /// Total files scanned + /// Time it took to scan and parse files + /// + private Dictionary> ScanLibrariesForSeries(LibraryType libraryType, IEnumerable folders, out int totalFiles, out long scanElapsedTime) { - _logger.LogInformation("Beginning scan on {LibraryName}. Forcing metadata update: {ForceUpdate}", library.Name, - forceUpdate); - totalFiles = 0; - var skippedFolders = 0; - foreach (var folderPath in library.Folders) - { - if (ShouldSkipFolderScan(folderPath, ref skippedFolders)) continue; - - // NOTE: we can refactor this to allow all filetypes and handle everything in the ProcessFile to allow mixed library types. - var searchPattern = Parser.Parser.ArchiveFileExtensions; - if (library.Type == LibraryType.Book) - { - searchPattern = Parser.Parser.BookFileExtensions; - } - - try - { - totalFiles += DirectoryService.TraverseTreeParallelForEach(folderPath.Path, (f) => - { - try + var sw = Stopwatch.StartNew(); + totalFiles = 0; + var searchPattern = GetLibrarySearchPattern(libraryType); + foreach (var folderPath in folders) + { + try + { + totalFiles += DirectoryService.TraverseTreeParallelForEach(folderPath, (f) => { - ProcessFile(f, folderPath.Path, library.Type); - } - catch (FileNotFoundException exception) - { - _logger.LogError(exception, "The file {Filename} could not be found", f); - } - }, searchPattern, _logger); - } - catch (ArgumentException ex) - { - _logger.LogError(ex, "The directory '{FolderPath}' does not exist", folderPath.Path); - } + try + { + ProcessFile(f, folderPath, libraryType); + } + catch (FileNotFoundException exception) + { + _logger.LogError(exception, "The file {Filename} could not be found", f); + } + }, searchPattern, _logger); + } + catch (ArgumentException ex) + { + _logger.LogError(ex, "The directory '{FolderPath}' does not exist", folderPath); + } + } - folderPath.LastScanned = DateTime.Now; - } + scanElapsedTime = sw.ElapsedMilliseconds; + _logger.LogInformation("Scanned {TotalFiles} files in {ElapsedScanTime} milliseconds", totalFiles, + scanElapsedTime); - scanElapsedTime = sw.ElapsedMilliseconds; - _logger.LogInformation("Folders Scanned {TotalFiles} files in {ElapsedScanTime} milliseconds", totalFiles, - scanElapsedTime); - sw.Restart(); - if (skippedFolders == library.Folders.Count) - { - _logger.LogInformation("All Folders were skipped due to no modifications to the directories"); - _unitOfWork.LibraryRepository.Update(library); - _scannedSeries = null; - _logger.LogInformation("Processed {TotalFiles} files in {ElapsedScanTime} milliseconds for {LibraryName}", - totalFiles, sw.ElapsedMilliseconds, library.Name); - return new Dictionary>(); - } - - return SeriesWithInfos(_scannedSeries); + return SeriesWithInfos(_scannedSeries); + } + + private static string GetLibrarySearchPattern(LibraryType libraryType) + { + var searchPattern = libraryType switch + { + LibraryType.Book => Parser.Parser.BookFileExtensions, + LibraryType.MangaImages or LibraryType.ComicImages => Parser.Parser.ImageFileExtensions, + _ => Parser.Parser.ArchiveFileExtensions + }; + + return searchPattern; } /// @@ -181,7 +255,7 @@ namespace API.Services.Tasks return series; } - + private void UpdateLibrary(Library library, Dictionary> parsedSeries) { if (parsedSeries == null) throw new ArgumentNullException(nameof(parsedSeries)); @@ -197,8 +271,8 @@ namespace API.Services.Tasks _logger.LogDebug("Removed {SeriesName}", s.Name); } } - - + + // Add new series that have parsedInfos foreach (var (key, infos) in parsedSeries) { @@ -215,7 +289,6 @@ namespace API.Services.Tasks foreach (var series in duplicateSeries) { _logger.LogCritical("{Key} maps with {Series}", key, series.OriginalName); - } continue; @@ -225,7 +298,7 @@ namespace API.Services.Tasks existingSeries = DbFactory.Series(infos[0].Series); library.Series.Add(existingSeries); } - + existingSeries.NormalizedName = Parser.Parser.Normalize(existingSeries.Name); existingSeries.OriginalName ??= infos[0].Series; existingSeries.Metadata ??= DbFactory.SeriesMetadata(new List()); @@ -240,7 +313,6 @@ namespace API.Services.Tasks _logger.LogInformation("Processing series {SeriesName}", series.OriginalName); UpdateVolumes(series, parsedSeries[Parser.Parser.Normalize(series.OriginalName)].ToArray()); series.Pages = series.Volumes.Sum(v => v.Pages); - // Test } catch (Exception ex) { @@ -267,13 +339,13 @@ namespace API.Services.Tasks { var existingCount = existingSeries.Count; var missingList = missingSeries.ToList(); - + existingSeries = existingSeries.Where( s => !missingList.Exists( m => m.NormalizedName.Equals(s.NormalizedName))).ToList(); removeCount = existingCount - existingSeries.Count; - + return existingSeries; } @@ -291,15 +363,15 @@ namespace API.Services.Tasks volume = DbFactory.Volume(volumeNumber); series.Volumes.Add(volume); } - + // NOTE: Instead of creating and adding? Why Not Merge a new volume into an existing, so no matter what, new properties,etc get propagated? - + _logger.LogDebug("Parsing {SeriesName} - Volume {VolumeNumber}", series.Name, volume.Name); var infos = parsedInfos.Where(p => p.Volumes == volumeNumber).ToArray(); UpdateChapters(volume, infos); volume.Pages = volume.Chapters.Sum(c => c.Pages); } - + // Remove existing volumes that aren't in parsedInfos var nonDeletedVolumes = series.Volumes.Where(v => parsedInfos.Select(p => p.Volumes).Contains(v.Name)).ToList(); if (series.Volumes.Count != nonDeletedVolumes.Count) @@ -320,12 +392,12 @@ namespace API.Services.Tasks series.Volumes = nonDeletedVolumes; } - _logger.LogDebug("Updated {SeriesName} volumes from {StartingVolumeCount} to {VolumeCount}", + _logger.LogDebug("Updated {SeriesName} volumes from {StartingVolumeCount} to {VolumeCount}", series.Name, startingVolumeCount, series.Volumes.Count); } - + /// - /// + /// /// /// /// @@ -346,7 +418,7 @@ namespace API.Services.Tasks _logger.LogError(ex, "{FileName} mapped as '{Series} - Vol {Volume} Ch {Chapter}' is a duplicate, skipping", info.FullFilePath, info.Series, info.Volumes, info.Chapters); continue; } - + if (chapter == null) { _logger.LogDebug( @@ -357,9 +429,9 @@ namespace API.Services.Tasks { chapter.UpdateFrom(info); } - + } - + // Add files foreach (var info in parsedInfos) { @@ -379,8 +451,8 @@ namespace API.Services.Tasks chapter.Number = Parser.Parser.MinimumNumberFromRange(info.Chapters) + string.Empty; chapter.Range = specialTreatment ? info.Filename : info.Chapters; } - - + + // Remove chapters that aren't in parsedInfos or have no files linked var existingChapters = volume.Chapters.ToList(); foreach (var existingChapter in existingChapters) @@ -403,15 +475,16 @@ namespace API.Services.Tasks /// /// Attempts to either add a new instance of a show mapping to the _scannedSeries bag or adds to an existing. + /// This will check if the name matches an existing series name (multiple fields) /// /// private void TrackSeries(ParserInfo info) { if (info.Series == string.Empty) return; - + // Check if normalized info.Series already exists and if so, update info to use that name instead info.Series = MergeName(_scannedSeries, info); - + _scannedSeries.AddOrUpdate(Parser.Parser.Normalize(info.Series), new List() {info}, (_, oldValue) => { oldValue ??= new List(); @@ -424,14 +497,20 @@ namespace API.Services.Tasks }); } + /// + /// Using a normalized name from the passed ParserInfo, this checks against all found series so far and if an existing one exists with + /// same normalized name, it merges into the existing one. This is important as some manga may have a slight difference with punctuation or capitalization. + /// + /// + /// + /// public string MergeName(ConcurrentDictionary> collectedSeries, ParserInfo info) { var normalizedSeries = Parser.Parser.Normalize(info.Series); _logger.LogDebug("Checking if we can merge {NormalizedSeries}", normalizedSeries); var existingName = collectedSeries.SingleOrDefault(p => Parser.Parser.Normalize(p.Key) == normalizedSeries) .Key; - // BUG: We are comparing info.Series against a normalized string. They should never match. (This can cause series to not delete or parse correctly after a rename) - if (!string.IsNullOrEmpty(existingName)) // && info.Series != existingName + if (!string.IsNullOrEmpty(existingName)) { _logger.LogDebug("Found duplicate parsed infos, merged {Original} into {Merged}", info.Series, existingName); return existingName; @@ -450,7 +529,7 @@ namespace API.Services.Tasks private void ProcessFile(string path, string rootPath, LibraryType type) { ParserInfo info; - + if (type == LibraryType.Book && Parser.Parser.IsEpub(path)) { info = _bookService.ParseInfo(path); @@ -465,14 +544,14 @@ namespace API.Services.Tasks _logger.LogWarning("[Scanner] Could not parse series from {Path}", path); return; } - + if (type == LibraryType.Book && Parser.Parser.IsEpub(path) && Parser.Parser.ParseVolume(info.Series) != Parser.Parser.DefaultVolume) { info = Parser.Parser.Parse(path, rootPath, type); var info2 = _bookService.ParseInfo(path); info.Merge(info2); } - + TrackSeries(info); } @@ -498,6 +577,15 @@ namespace API.Services.Tasks Pages = _bookService.GetNumberOfPages(info.FullFilePath) }; } + case MangaFormat.Image: + { + return new MangaFile() + { + FilePath = info.FullFilePath, + Format = info.Format, + Pages = 1 + }; + } default: _logger.LogWarning("[Scanner] Ignoring {Filename}. Non-archives are not supported", info.Filename); break; @@ -505,7 +593,7 @@ namespace API.Services.Tasks return null; } - + private void AddOrUpdateFileForChapter(Chapter chapter, ParserInfo info) { chapter.Files ??= new List(); @@ -515,8 +603,8 @@ namespace API.Services.Tasks existingFile.Format = info.Format; if (!existingFile.HasFileBeenModified() && existingFile.Pages > 0) { - existingFile.Pages = existingFile.Format == MangaFormat.Book - ? _bookService.GetNumberOfPages(info.FullFilePath) + existingFile.Pages = existingFile.Format == MangaFormat.Book + ? _bookService.GetNumberOfPages(info.FullFilePath) : _archiveService.GetNumberOfPagesFromArchive(info.FullFilePath); } } @@ -536,4 +624,4 @@ namespace API.Services.Tasks } } } -} \ No newline at end of file +} diff --git a/API/Startup.cs b/API/Startup.cs index f2b648d24..5fdafb448 100644 --- a/API/Startup.cs +++ b/API/Startup.cs @@ -52,18 +52,18 @@ namespace API { options.Providers.Add(); options.Providers.Add(); - options.MimeTypes = + options.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat( new[] { "image/jpeg", "image/jpg" }); options.EnableForHttps = true; }); - services.Configure(options => + services.Configure(options => { options.Level = CompressionLevel.Fastest; }); - + services.AddResponseCaching(); - + services.AddStatsClient(_config); services.AddHangfire(configuration => configuration @@ -80,7 +80,7 @@ namespace API } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IBackgroundJobClient backgroundJobs, IWebHostEnvironment env, + public void Configure(IApplicationBuilder app, IBackgroundJobClient backgroundJobs, IWebHostEnvironment env, IHostApplicationLifetime applicationLifetime) { app.UseMiddleware(); @@ -91,19 +91,19 @@ namespace API app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "API v1")); app.UseHangfireDashboard(); } - + app.UseResponseCompression(); - + app.UseForwardedHeaders(); app.UseRouting(); - + // Ordering is important. Cors, authentication, authorization if (env.IsDevelopment()) { app.UseCors(policy => policy.AllowAnyHeader().AllowAnyMethod().WithOrigins("http://localhost:4200")); } - + app.UseResponseCaching(); app.UseAuthentication(); @@ -116,18 +116,18 @@ namespace API { ContentTypeProvider = new FileExtensionContentTypeProvider() }); - + app.Use(async (context, next) => { - context.Response.GetTypedHeaders().CacheControl = + context.Response.GetTypedHeaders().CacheControl = new Microsoft.Net.Http.Headers.CacheControlHeaderValue() { Public = false, MaxAge = TimeSpan.FromSeconds(10) }; - context.Response.Headers[Microsoft.Net.Http.Headers.HeaderNames.Vary] = + context.Response.Headers[Microsoft.Net.Http.Headers.HeaderNames.Vary] = new[] { "Accept-Encoding" }; - + await next(); }); @@ -137,14 +137,14 @@ namespace API endpoints.MapHangfireDashboard(); endpoints.MapFallbackToController("Index", "Fallback"); }); - + applicationLifetime.ApplicationStopping.Register(OnShutdown); applicationLifetime.ApplicationStarted.Register(() => { Console.WriteLine($"Kavita - v{BuildInfo.Version}"); }); } - + private void OnShutdown() { Console.WriteLine("Server is shutting down. Please allow a few seconds to stop any background jobs..."); @@ -152,7 +152,7 @@ namespace API System.Threading.Thread.Sleep(1000); Console.WriteLine("You may now close the application window."); } - - + + } } diff --git a/Kavita.Common/Extensions/EnumExtensions.cs b/Kavita.Common/Extensions/EnumExtensions.cs new file mode 100644 index 000000000..d35aeb805 --- /dev/null +++ b/Kavita.Common/Extensions/EnumExtensions.cs @@ -0,0 +1,21 @@ +using System.ComponentModel; + +namespace Kavita.Common.Extensions +{ + public static class EnumExtensions + { + public static string ToDescription(this TEnum value) where TEnum : struct + { + var fi = value.GetType().GetField(value.ToString() ?? string.Empty); + + if (fi == null) + { + return value.ToString(); + } + + var attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false); + + return attributes is {Length: > 0} ? attributes[0].Description : value.ToString(); + } + } +} diff --git a/Kavita.Common/Extensions/PathExtensions.cs b/Kavita.Common/Extensions/PathExtensions.cs new file mode 100644 index 000000000..5ebb96673 --- /dev/null +++ b/Kavita.Common/Extensions/PathExtensions.cs @@ -0,0 +1,12 @@ +using System.IO; + +namespace Kavita.Common.Extensions +{ + public static class PathExtensions + { + public static string GetParentDirectory(string filePath) + { + return Path.GetDirectoryName(filePath); + } + } +} diff --git a/Kavita.Common/HashUtil.cs b/Kavita.Common/HashUtil.cs index ff02d7d32..b83068f5f 100644 --- a/Kavita.Common/HashUtil.cs +++ b/Kavita.Common/HashUtil.cs @@ -5,7 +5,7 @@ namespace Kavita.Common { public static class HashUtil { - public static string CalculateCrc(string input) + private static string CalculateCrc(string input) { uint mCrc = 0xffffffff; byte[] bytes = Encoding.UTF8.GetBytes(input); @@ -28,10 +28,14 @@ namespace Kavita.Common return $"{mCrc:x8}"; } + /// + /// Calculates a unique, Anonymous Token that will represent this unique Kavita installation. + /// + /// public static string AnonymousToken() { var seed = $"{Environment.ProcessorCount}_{Environment.OSVersion.Platform}_{Environment.MachineName}_{Environment.UserName}"; - return HashUtil.CalculateCrc(seed); + return CalculateCrc(seed); } } -} \ No newline at end of file +} diff --git a/Kavita.Common/Kavita.Common.csproj b/Kavita.Common/Kavita.Common.csproj index 3b92d09f8..b19d8551f 100644 --- a/Kavita.Common/Kavita.Common.csproj +++ b/Kavita.Common/Kavita.Common.csproj @@ -2,21 +2,16 @@ net5.0 - kareadita.github.io + kavitareader.com Kavita - 0.4.2.0 + 0.4.2.1 en - + - - - D:\Program Files\JetBrains\JetBrains Rider 2020.3.2\lib\ReSharperHost\TestRunner\netcoreapp2.0\JetBrains.ReSharper.TestRunner.Merged.dll - - diff --git a/UI/Web/LICENSE b/UI/Web/LICENSE new file mode 100644 index 000000000..a28fa47ea --- /dev/null +++ b/UI/Web/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/UI/Web/README.md b/UI/Web/README.md new file mode 100644 index 000000000..083807057 --- /dev/null +++ b/UI/Web/README.md @@ -0,0 +1,27 @@ +# Kavita Webui + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 11.0.0. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/UI/Web/angular.json b/UI/Web/angular.json new file mode 100644 index 000000000..dd8270c0f --- /dev/null +++ b/UI/Web/angular.json @@ -0,0 +1,139 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "kavita-webui": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + }, + "@schematics/angular:application": { + "strict": true + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "dist", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.app.json", + "aot": true, + "assets": [ + "src/assets", + "src/site.webmanifest" + ], + "sourceMap": { + "hidden": false, + "scripts": true, + "styles": true + }, + "styles": [ + "src/styles.scss", + "node_modules/@fortawesome/fontawesome-free/css/all.min.css" + ], + "scripts": [] + }, + "configurations": { + "production": { + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "optimization": true, + "outputHashing": "all", + "namedChunks": false, + "extractLicenses": true, + "vendorChunk": true, + "buildOptimizer": true, + "budgets": [ + { + "type": "initial", + "maximumWarning": "1mb", + "maximumError": "2mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "2kb", + "maximumError": "4kb" + } + ] + } + } + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "sslKey": "./ssl/server.key", + "sslCert": "./ssl/server.crt", + "ssl": false, + "browserTarget": "kavita-webui:build" + }, + "configurations": { + "production": { + "browserTarget": "kavita-webui:build:production" + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "kavita-webui:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "src/test.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.spec.json", + "karmaConfig": "karma.conf.js", + "assets": [ + "src/assets", + "src/site.webmanifest" + ], + "styles": [ + "src/styles.scss" + ], + "scripts": [] + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "tsconfig.app.json", + "tsconfig.spec.json", + "e2e/tsconfig.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + }, + "e2e": { + "builder": "@angular-devkit/build-angular:protractor", + "options": { + "protractorConfig": "e2e/protractor.conf.js", + "devServerTarget": "kavita-webui:serve" + }, + "configurations": { + "production": { + "devServerTarget": "kavita-webui:serve:production" + } + } + } + } + } + }, + "defaultProject": "kavita-webui" +} \ No newline at end of file diff --git a/UI/Web/e2e/protractor.conf.js b/UI/Web/e2e/protractor.conf.js new file mode 100644 index 000000000..361e7f0cd --- /dev/null +++ b/UI/Web/e2e/protractor.conf.js @@ -0,0 +1,37 @@ +// @ts-check +// Protractor configuration file, see link for more information +// https://github.com/angular/protractor/blob/master/lib/config.ts + +const { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter'); + +/** + * @type { import("protractor").Config } + */ +exports.config = { + allScriptsTimeout: 11000, + specs: [ + './src/**/*.e2e-spec.ts' + ], + capabilities: { + browserName: 'chrome' + }, + directConnect: true, + SELENIUM_PROMISE_MANAGER: false, + baseUrl: 'http://localhost:4200/', + framework: 'jasmine', + jasmineNodeOpts: { + showColors: true, + defaultTimeoutInterval: 30000, + print: function() {} + }, + onPrepare() { + require('ts-node').register({ + project: require('path').join(__dirname, './tsconfig.json') + }); + jasmine.getEnv().addReporter(new SpecReporter({ + spec: { + displayStacktrace: StacktraceOption.PRETTY + } + })); + } +}; \ No newline at end of file diff --git a/UI/Web/e2e/src/app.e2e-spec.ts b/UI/Web/e2e/src/app.e2e-spec.ts new file mode 100644 index 000000000..fb7ac99be --- /dev/null +++ b/UI/Web/e2e/src/app.e2e-spec.ts @@ -0,0 +1,23 @@ +import { AppPage } from './app.po'; +import { browser, logging } from 'protractor'; + +describe('workspace-project App', () => { + let page: AppPage; + + beforeEach(() => { + page = new AppPage(); + }); + + it('should display welcome message', async () => { + await page.navigateTo(); + expect(await page.getTitleText()).toEqual('kavita-webui app is running!'); + }); + + afterEach(async () => { + // Assert that there are no errors emitted from the browser + const logs = await browser.manage().logs().get(logging.Type.BROWSER); + expect(logs).not.toContain(jasmine.objectContaining({ + level: logging.Level.SEVERE, + } as logging.Entry)); + }); +}); diff --git a/UI/Web/e2e/src/app.po.ts b/UI/Web/e2e/src/app.po.ts new file mode 100644 index 000000000..c9c85ab9a --- /dev/null +++ b/UI/Web/e2e/src/app.po.ts @@ -0,0 +1,11 @@ +import { browser, by, element } from 'protractor'; + +export class AppPage { + async navigateTo(): Promise { + return browser.get(browser.baseUrl); + } + + async getTitleText(): Promise { + return element(by.css('app-root .content span')).getText(); + } +} diff --git a/UI/Web/e2e/tsconfig.json b/UI/Web/e2e/tsconfig.json new file mode 100644 index 000000000..0782539c0 --- /dev/null +++ b/UI/Web/e2e/tsconfig.json @@ -0,0 +1,13 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/e2e", + "module": "commonjs", + "target": "es2018", + "types": [ + "jasmine", + "node" + ] + } +} diff --git a/UI/Web/package-lock.json b/UI/Web/package-lock.json new file mode 100644 index 000000000..57c6fee31 --- /dev/null +++ b/UI/Web/package-lock.json @@ -0,0 +1,37201 @@ +{ + "name": "kavita-webui", + "version": "0.4.2", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "kavita-webui", + "version": "0.4.2", + "dependencies": { + "@angular-slider/ngx-slider": "^2.0.3", + "@angular/animations": "~11.0.0", + "@angular/common": "~11.0.0", + "@angular/compiler": "~11.0.0", + "@angular/core": "~11.0.0", + "@angular/forms": "~11.0.0", + "@angular/localize": "~11.0.0", + "@angular/platform-browser": "~11.0.0", + "@angular/platform-browser-dynamic": "~11.0.0", + "@angular/router": "~11.0.0", + "@fortawesome/fontawesome-free": "^5.15.1", + "@ng-bootstrap/ng-bootstrap": "^9.1.0", + "@ngx-lite/nav-drawer": "^0.4.6", + "@ngx-lite/util": "0.0.0", + "@sentry/angular": "^6.4.1", + "@sentry/integrations": "^6.4.1", + "@types/file-saver": "^2.0.1", + "angular-ng-autocomplete": "^2.0.5", + "bootstrap": "^4.5.0", + "bowser": "^2.11.0", + "file-saver": "^2.0.5", + "ng-lazyload-image": "^9.1.0", + "ng-sidebar": "^9.4.2", + "ngx-toastr": "^13.2.1", + "rxjs": "~6.6.0", + "swiper": "^6.5.8", + "tslib": "^2.0.0", + "zone.js": "~0.10.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~0.1100.0", + "@angular/cli": "^11.2.11", + "@angular/compiler-cli": "~11.0.0", + "@types/jest": "^26.0.20", + "@types/node": "^12.11.1", + "codelyzer": "^6.0.0", + "jest": "^26.6.3", + "jest-preset-angular": "^8.3.2", + "karma-coverage": "~2.0.3", + "protractor": "~7.0.0", + "ts-node": "~8.3.0", + "tslint": "^6.1.3", + "typescript": "~4.0.2" + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1100.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1100.7.tgz", + "integrity": "sha512-b2zv2yiRbdhJ7hJfZsAvGYcqgh2DVtc7gRIPo1eDPvOAKrenmZ4zo/v0PRYScrTsPzqmoCokNA5nIwufwUEnuA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "11.0.7", + "rxjs": "6.6.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-angular": { + "version": "0.1100.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.1100.7.tgz", + "integrity": "sha512-erc+AtSU46ZIX7A5dmeZ0/G/SQIbqMAGbTKZbf11GePyhT0JAAnfMQtOHMb6AaX85n4yQTg1uMo9f5+8V3lfKA==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1100.7", + "@angular-devkit/build-optimizer": "0.1100.7", + "@angular-devkit/build-webpack": "0.1100.7", + "@angular-devkit/core": "11.0.7", + "@babel/core": "7.12.3", + "@babel/generator": "7.12.1", + "@babel/plugin-transform-runtime": "7.12.1", + "@babel/preset-env": "7.12.1", + "@babel/runtime": "7.12.1", + "@babel/template": "7.10.4", + "@jsdevtools/coverage-istanbul-loader": "3.0.5", + "@ngtools/webpack": "11.0.7", + "ansi-colors": "4.1.1", + "autoprefixer": "9.8.6", + "babel-loader": "8.1.0", + "browserslist": "^4.9.1", + "cacache": "15.0.5", + "caniuse-lite": "^1.0.30001032", + "circular-dependency-plugin": "5.2.0", + "copy-webpack-plugin": "6.2.1", + "core-js": "3.6.5", + "css-loader": "4.3.0", + "cssnano": "4.1.10", + "file-loader": "6.1.1", + "find-cache-dir": "3.3.1", + "glob": "7.1.6", + "inquirer": "7.3.3", + "jest-worker": "26.5.0", + "karma-source-map-support": "1.4.0", + "less": "3.12.2", + "less-loader": "7.0.2", + "license-webpack-plugin": "2.3.1", + "loader-utils": "2.0.0", + "mini-css-extract-plugin": "1.2.1", + "minimatch": "3.0.4", + "open": "7.3.0", + "ora": "5.1.0", + "parse5-html-rewriting-stream": "6.0.1", + "pnp-webpack-plugin": "1.6.4", + "postcss": "7.0.32", + "postcss-import": "12.0.1", + "postcss-loader": "4.0.4", + "raw-loader": "4.0.2", + "regenerator-runtime": "0.13.7", + "resolve-url-loader": "3.1.2", + "rimraf": "3.0.2", + "rollup": "2.32.1", + "rxjs": "6.6.3", + "sass": "1.27.0", + "sass-loader": "10.0.5", + "semver": "7.3.2", + "source-map": "0.7.3", + "source-map-loader": "1.1.2", + "source-map-support": "0.5.19", + "speed-measure-webpack-plugin": "1.3.3", + "style-loader": "2.0.0", + "stylus": "0.54.8", + "stylus-loader": "4.3.1", + "terser": "5.3.7", + "terser-webpack-plugin": "4.2.3", + "text-table": "0.2.0", + "tree-kill": "1.2.2", + "webpack": "4.44.2", + "webpack-dev-middleware": "3.7.2", + "webpack-dev-server": "3.11.0", + "webpack-merge": "5.2.0", + "webpack-sources": "2.0.1", + "webpack-subresource-integrity": "1.5.1", + "worker-plugin": "5.0.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^11.0.0", + "@angular/localize": "^11.0.0", + "karma": "~5.1.0", + "ng-packagr": "^11.0.0", + "protractor": "^7.0.0", + "tslint": "^6.1.0", + "typescript": "~4.0.0" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "karma": { + "optional": true + }, + "ng-packagr": { + "optional": true + }, + "protractor": { + "optional": true + }, + "tslint": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-optimizer": { + "version": "0.1100.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1100.7.tgz", + "integrity": "sha512-bHIIub0d1trVAmAX/EaNR6Zo4b7hkscewK394qYYp/w8VKQkLSAPMUbt2YTWN+erR9yyHnJ2y7tBabIui75Wdw==", + "dev": true, + "dependencies": { + "loader-utils": "2.0.0", + "source-map": "0.7.3", + "tslib": "2.0.3", + "typescript": "4.0.5", + "webpack-sources": "2.0.1" + }, + "bin": { + "build-optimizer": "src/build-optimizer/cli.js" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1100.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1100.7.tgz", + "integrity": "sha512-/6Hudd1hs/GMHX4C/Qk7jueIMNg8NKFJWDEbvMPMgDzTqUIa680PTD6SNSCcY5Cz9mEpdpYCZo5N31JB7dlpOg==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1100.7", + "@angular-devkit/core": "11.0.7", + "rxjs": "6.6.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^4.6.0", + "webpack-dev-server": "^3.1.4" + } + }, + "node_modules/@angular-devkit/core": { + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.0.7.tgz", + "integrity": "sha512-1GKnIT++YSUHpzzRx9QC0+8yOw4wy+ZpiJVDlroPSeK4FGrTCJqJKenkfRjVFRFOSrzTiJds+IU6kI4+bFbw9g==", + "dev": true, + "dependencies": { + "ajv": "6.12.6", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.3", + "source-map": "0.7.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "11.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.2.11.tgz", + "integrity": "sha512-xkw+5P9V7VdV/X3Eko0/oZmEqelenIT1RdaOlFA3ZLCdT6bz+79HjeChMy++JcLjVNRcLYQSw0ULByq2q/S2Pw==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "11.2.11", + "ora": "5.3.0", + "rxjs": "6.6.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": "^6.11.0 || ^7.5.6", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/@angular-devkit/core": { + "version": "11.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.11.tgz", + "integrity": "sha512-6gFrpG0o00Y4kMU7cQeQ5fSlmXRvNlidylM3OfAvpj0qHoRKo1E3q9iVr4fW3oVZxK3fpCSN7RE5Myl5Y7mV0w==", + "dev": true, + "dependencies": { + "ajv": "6.12.6", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.3", + "source-map": "0.7.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": "^6.11.0 || ^7.5.6", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@angular-devkit/schematics/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/ora": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz", + "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "log-symbols": "^4.0.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular-slider/ngx-slider": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@angular-slider/ngx-slider/-/ngx-slider-2.0.3.tgz", + "integrity": "sha512-5NSHsYtHomBgJyPe7KtxTAJDLywHbuTb36NjD3dafbbj1VUbshX1m04d4JcyEiAB+Zeetcjkiy4jxQypUXYhHA==", + "dependencies": { + "detect-passive-events": "^1.0.4", + "rxjs": "^6.5.2", + "rxjs-compat": "^6.5.2", + "tslib": "^1.9.0" + } + }, + "node_modules/@angular-slider/ngx-slider/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@angular/animations": { + "version": "11.0.9", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-11.0.9.tgz", + "integrity": "sha512-/KsMBUbRTqp29CNLbRIe4/8IxWxhnbUUZWqULaySnRDDW/p2m4miPcFVSp4zjrDZPqdXSibDiCyTiWmQ5PTuKA==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/core": "11.0.9" + } + }, + "node_modules/@angular/cli": { + "version": "11.2.11", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-11.2.11.tgz", + "integrity": "sha512-KzpRaCaHUwznlm6Iz/DvWqZs1fQx+NpJsiEOtKz7ijKoktJq+qcxAcBr2A4sNAuuAMgs0Xqy70EHvbMPA1yQ9A==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1102.11", + "@angular-devkit/core": "11.2.11", + "@angular-devkit/schematics": "11.2.11", + "@schematics/angular": "11.2.11", + "@schematics/update": "0.1102.11", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "4.3.1", + "ini": "2.0.0", + "inquirer": "7.3.3", + "jsonc-parser": "3.0.0", + "npm-package-arg": "8.1.0", + "npm-pick-manifest": "6.1.0", + "open": "7.4.0", + "ora": "5.3.0", + "pacote": "11.2.4", + "resolve": "1.19.0", + "rimraf": "3.0.2", + "semver": "7.3.4", + "symbol-observable": "3.0.0", + "universal-analytics": "0.4.23", + "uuid": "8.3.2" + }, + "bin": { + "ng": "bin/ng" + }, + "engines": { + "node": ">= 10.13.0", + "npm": "^6.11.0 || ^7.5.6", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { + "version": "0.1102.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1102.11.tgz", + "integrity": "sha512-1MoUSz7zNJomUUuzbIyBSprzbWa9eF97SRDEbllYHHXY/IWWetHGNK7gkJPyW0zgKhXIc5Sq4TJKIJKWPNh00Q==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "11.2.11", + "rxjs": "6.6.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": "^6.11.0 || ^7.5.6", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/@angular-devkit/core": { + "version": "11.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.11.tgz", + "integrity": "sha512-6gFrpG0o00Y4kMU7cQeQ5fSlmXRvNlidylM3OfAvpj0qHoRKo1E3q9iVr4fW3oVZxK3fpCSN7RE5Myl5Y7mV0w==", + "dev": true, + "dependencies": { + "ajv": "6.12.6", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.3", + "source-map": "0.7.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": "^6.11.0 || ^7.5.6", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/cli/node_modules/chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@angular/cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@angular/cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/cli/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/cli/node_modules/open": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.0.tgz", + "integrity": "sha512-PGoBCX/lclIWlpS/R2PQuIR4NJoXh6X5AwVzE7WXnWRGvHg7+4TBCgsujUgiPpm0K1y4qvQeWnCWVTpTKZBtvA==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/cli/node_modules/ora": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz", + "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "log-symbols": "^4.0.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/cli/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/cli/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@angular/common": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-11.0.4.tgz", + "integrity": "sha512-4R2ALj71J6EAHVCKNnHHCKL7wcosMsv3gcMXbMTE+Wpzo3khEhM0Tej+I1qmMbVmGXVlRb//4+rjE4gff6FvQw==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/compiler": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-11.0.4.tgz", + "integrity": "sha512-Smf8FKSjkqd522ZCdXjSnVv1lYA0b21AN3WC5L1mwtRwyl/VacqCA/YEklLneDGgI2FdSIC9+bzSQIV+CCVftA==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/compiler-cli": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-11.0.4.tgz", + "integrity": "sha512-FV010O6GAldRe5sr+qegHe7oLinTylES70NX+0PIp44/W4tPx75Zvop+FVT90I4xPcvFvteLemy8nFAnMK+x5g==", + "dev": true, + "dependencies": { + "@babel/core": "^7.8.6", + "@babel/types": "^7.8.6", + "canonical-path": "1.0.0", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.7.2", + "fs-extra": "4.0.2", + "magic-string": "^0.25.0", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "semver": "^6.3.0", + "source-map": "^0.6.1", + "sourcemap-codec": "^1.4.8", + "tslib": "^2.0.0", + "yargs": "^16.1.1" + }, + "bin": { + "ivy-ngcc": "ngcc/main-ivy-ngcc.js", + "ng-xi18n": "src/extract_i18n.js", + "ngc": "src/main.js", + "ngcc": "ngcc/main-ngcc.js" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@angular/compiler-cli/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular/compiler-cli/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/compiler-cli/node_modules/y18n": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/compiler-cli/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/compiler-cli/node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/core": { + "version": "11.0.9", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-11.0.9.tgz", + "integrity": "sha512-J0ff3UK2Cw7Z0eNLtUXrpMFvmmkvPPZWLYIwimyc1pZys7qsIVT6cy2ybGEOhbJgC6qt3fo0DoJV3pGXTalb8A==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3", + "zone.js": "~0.10.3" + } + }, + "node_modules/@angular/forms": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-11.0.4.tgz", + "integrity": "sha512-Fhfc4buwMZk0WumDvl/X7XBnOKFeTRTJrwKdi8LlhY6o1Og8H4e/f69u9iDJCF3YjU4qC6yGtPp9YpSVCPP7Ew==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/localize": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-11.0.4.tgz", + "integrity": "sha512-r0dWvwFvEqQJ/H94rr548S092Hq53RqyMANuFD09CpkWXS6yAWBfArB6mW77PARnicEC0zkbi5qMGACjtSyNtA==", + "dependencies": { + "@babel/core": "7.8.3", + "glob": "7.1.2", + "yargs": "^16.1.1" + }, + "bin": { + "localize-extract": "src/tools/src/extract/main.js", + "localize-translate": "src/tools/src/translate/main.js" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/@angular/localize/node_modules/@babel/core": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.3.tgz", + "integrity": "sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA==", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.3", + "@babel/helpers": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@angular/localize/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/localize/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/@angular/localize/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@angular/localize/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@angular/localize/node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@angular/localize/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@angular/localize/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/localize/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/localize/node_modules/y18n": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/localize/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/localize/node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/platform-browser": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-11.0.4.tgz", + "integrity": "sha512-+uUCKJgspSghJ3R6Fk0XHA0tolbaRBi8JFS2cY+hi9s27WKB88peGvtsK6RCOPJONY6JdOuhpcZqRN8dKfPi7w==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-11.0.4.tgz", + "integrity": "sha512-ZOWTZaFfZSHhMy7a0RIxipiZoiobHWrGlq8/YaMrIgzUb9Fv518FeFCCI68BP0/GuyxX74MJmzv4ZgQctKKxXw==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/router": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-11.0.4.tgz", + "integrity": "sha512-B0sqv8zMM6j88+udEZzO8wKBw61pHgWZmLopnAqA65rRPrAvMsvAHUnYqX6w5pYqhJQxCVLVeKM+0QlQh1+WnA==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz", + "integrity": "sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==", + "dev": true + }, + "node_modules/@babel/core": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/core/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.1.tgz", + "integrity": "sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==", + "dependencies": { + "@babel/types": "^7.12.1", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz", + "integrity": "sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.10" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", + "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.12.5", + "@babel/helper-validator-option": "^7.12.1", + "browserslist": "^4.14.5", + "semver": "^5.5.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", + "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz", + "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "regexpu-core": "^4.7.1" + } + }, + "node_modules/@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "dependencies": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", + "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", + "dependencies": { + "@babel/types": "^7.12.10" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", + "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.7" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.5" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", + "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.10" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", + "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "dependencies": { + "@babel/types": "^7.11.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz", + "integrity": "sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==", + "dev": true + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", + "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helpers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "dependencies": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "node_modules/@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.10.tgz", + "integrity": "sha512-PJdRPwyoOqFAWfLytxrWwGrAxghCgh/yTNCYciOz8QgjflA7aZhECPZAa2VUedKg2+QMWkI0L9lynh2SNmNEgA==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz", + "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", + "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", + "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", + "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz", + "integrity": "sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz", + "integrity": "sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", + "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz", + "integrity": "sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", + "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", + "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", + "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", + "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", + "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", + "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", + "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", + "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", + "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", + "dev": true, + "dependencies": { + "regenerator-transform": "^0.14.2" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", + "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz", + "integrity": "sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "resolve": "^1.8.1", + "semver": "^5.5.1" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", + "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", + "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz", + "integrity": "sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", + "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.1.tgz", + "integrity": "sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.12.1", + "@babel/helper-compilation-targets": "^7.12.1", + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-option": "^7.12.1", + "@babel/plugin-proposal-async-generator-functions": "^7.12.1", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-dynamic-import": "^7.12.1", + "@babel/plugin-proposal-export-namespace-from": "^7.12.1", + "@babel/plugin-proposal-json-strings": "^7.12.1", + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-numeric-separator": "^7.12.1", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.1", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.12.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.12.1", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-async-to-generator": "^7.12.1", + "@babel/plugin-transform-block-scoped-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.1", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-computed-properties": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-dotall-regex": "^7.12.1", + "@babel/plugin-transform-duplicate-keys": "^7.12.1", + "@babel/plugin-transform-exponentiation-operator": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-function-name": "^7.12.1", + "@babel/plugin-transform-literals": "^7.12.1", + "@babel/plugin-transform-member-expression-literals": "^7.12.1", + "@babel/plugin-transform-modules-amd": "^7.12.1", + "@babel/plugin-transform-modules-commonjs": "^7.12.1", + "@babel/plugin-transform-modules-systemjs": "^7.12.1", + "@babel/plugin-transform-modules-umd": "^7.12.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", + "@babel/plugin-transform-new-target": "^7.12.1", + "@babel/plugin-transform-object-super": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-property-literals": "^7.12.1", + "@babel/plugin-transform-regenerator": "^7.12.1", + "@babel/plugin-transform-reserved-words": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/plugin-transform-sticky-regex": "^7.12.1", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/plugin-transform-typeof-symbol": "^7.12.1", + "@babel/plugin-transform-unicode-escapes": "^7.12.1", + "@babel/plugin-transform-unicode-regex": "^7.12.1", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.12.1", + "core-js-compat": "^3.6.2", + "semver": "^5.5.0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "node_modules/@babel/runtime": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz", + "integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/traverse": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.10.tgz", + "integrity": "sha512-6aEtf0IeRgbYWzta29lePeYSk+YAFIC3kyqESeft8o5CkFlYIMX+EQDDWEiAQ9LHOA3d0oHdgrSsID/CKqXJlg==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.10", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.10", + "@babel/types": "^7.12.10", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.10.tgz", + "integrity": "sha512-6mCdfhWgmqLdtTkhXjnIz0LcdVCd26wS2JXRtj2XY0u5klDsXBREA/pG5NVOuVnF2LUrBGNFtQkIqqTbblg0ww==", + "dependencies": { + "@babel/types": "^7.12.10", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/traverse/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/types": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.10.tgz", + "integrity": "sha512-sf6wboJV5mGyip2hIpDSKsr80RszPinEFjsHTalMxZAZkoQ2/2yQzxlcFN52SJqsyPfLtPmenL4g2KB3KJXPDw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "dev": true, + "dependencies": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + }, + "bin": { + "watch": "cli.js" + }, + "engines": { + "node": ">=0.1.95" + } + }, + "node_modules/@fortawesome/fontawesome-free": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.1.tgz", + "integrity": "sha512-OEdH7SyC1suTdhBGW91/zBfR6qaIhThbcN8PUXtXilY4GYnSBbVqOntdHbC1vXwsDnX0Qix2m2+DSU1J51ybOQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", + "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^26.6.2", + "jest-util": "^26.6.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", + "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", + "dev": true, + "dependencies": { + "@jest/console": "^26.6.2", + "@jest/reporters": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^26.6.2", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-resolve-dependencies": "^26.6.3", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "jest-watcher": "^26.6.2", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", + "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/fake-timers": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", + "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "@sinonjs/fake-timers": "^6.0.1", + "@types/node": "*", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/globals": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", + "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", + "dev": true, + "dependencies": { + "@jest/environment": "^26.6.2", + "@jest/types": "^26.6.2", + "expect": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/reporters": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", + "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^7.0.0" + }, + "engines": { + "node": ">= 10.14.2" + }, + "optionalDependencies": { + "node-notifier": "^8.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/@jest/reporters/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/source-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", + "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/source-map/node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@jest/source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/test-result": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", + "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", + "dev": true, + "dependencies": { + "@jest/console": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", + "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/transform": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", + "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^26.6.2", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-util": "^26.6.2", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jsdevtools/coverage-istanbul-loader": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz", + "integrity": "sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA==", + "dev": true, + "dependencies": { + "convert-source-map": "^1.7.0", + "istanbul-lib-instrument": "^4.0.3", + "loader-utils": "^2.0.0", + "merge-source-map": "^1.1.0", + "schema-utils": "^2.7.0" + } + }, + "node_modules/@ng-bootstrap/ng-bootstrap": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-9.1.0.tgz", + "integrity": "sha512-5cTxOew6EsENIa/PiIlIlF3MSGanLGD2fyGPyQJc0hU5j9uK+alz2eJXWpeAX3IHLDIaOBfRdCGOrpXkeIUhzQ==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@ngtools/webpack": { + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-11.0.7.tgz", + "integrity": "sha512-OWGiiDc7s4T53BBCY8tLkLUjgw44HrixW8Wh8e4thFH1eIUM0NHe087s/B5hDNu72W/GqK4IoBbhNQ2wiCR7qQ==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "11.0.7", + "enhanced-resolve": "5.3.1", + "webpack-sources": "2.0.1" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^11.0.0", + "typescript": "~4.0.0", + "webpack": "^4.0.0" + } + }, + "node_modules/@ngx-lite/nav-drawer": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/@ngx-lite/nav-drawer/-/nav-drawer-0.4.6.tgz", + "integrity": "sha512-b90i/t/m35pMKk2zymhv3zvjnfl/x6qOFVPAqXL6uw1b1mc+FcZkzxtEXRp/x9Ym20GLo3tgf/Es/Wc/LSkW0Q==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@ngx-lite/util": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@ngx-lite/util/-/util-0.0.0.tgz", + "integrity": "sha512-n1Y85KCpld5wIKp/izAfmLWuwwZT2F540xkjanq8f9mLy36Ol1MgQYruU8XrBrxKoAa04h43FJmMsoahoZq+/A==", + "dependencies": { + "tslib": "^1.9.0" + } + }, + "node_modules/@ngx-lite/util/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/ci-detect": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz", + "integrity": "sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q==", + "dev": true + }, + "node_modules/@npmcli/git": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.0.8.tgz", + "integrity": "sha512-LPnzyBZ+1p7+JzHVwwKycMF8M3lr1ze3wxGRnxn/QxJtk++Y3prSJQrdBDGCxJyRpFsup6J3lrRBVYBhJVrM8Q==", + "dev": true, + "dependencies": { + "@npmcli/promise-spawn": "^1.3.2", + "lru-cache": "^6.0.0", + "mkdirp": "^1.0.4", + "npm-pick-manifest": "^6.1.1", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^2.0.2" + } + }, + "node_modules/@npmcli/git/node_modules/hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/git/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/git/node_modules/npm-package-arg": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.2.tgz", + "integrity": "sha512-6Eem455JsSMJY6Kpd3EyWE+n5hC+g9bSyHr9K9U2zqZb7+02+hObQ2c0+8iDk/mNF+8r1MhY44WypKJAkySIYA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "semver": "^7.3.4", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/git/node_modules/npm-pick-manifest": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", + "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", + "dev": true, + "dependencies": { + "npm-install-checks": "^4.0.0", + "npm-normalize-package-bin": "^1.0.1", + "npm-package-arg": "^8.1.2", + "semver": "^7.3.4" + } + }, + "node_modules/@npmcli/git/node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/git/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/git/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", + "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", + "dev": true, + "dependencies": { + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "installed-package-contents": "index.js" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", + "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.2.tgz", + "integrity": "sha512-yrJUe6reVMpktcvagumoqD9r08fH1iRo01gn1u0zoCApa9lnZGEigVKUd2hzsCId4gdtkZZIVscLhNxMECKgRg==", + "dev": true + }, + "node_modules/@npmcli/promise-spawn": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", + "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", + "dev": true, + "dependencies": { + "infer-owner": "^1.0.4" + } + }, + "node_modules/@npmcli/run-script": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.5.tgz", + "integrity": "sha512-NQspusBCpTjNwNRFMtz2C5MxoxyzlbuJ4YEhxAKrIonTiirKDtatsZictx9RgamQIx6+QuHMNmPl0wQdoESs9A==", + "dev": true, + "dependencies": { + "@npmcli/node-gyp": "^1.0.2", + "@npmcli/promise-spawn": "^1.3.2", + "infer-owner": "^1.0.4", + "node-gyp": "^7.1.0", + "read-package-json-fast": "^2.0.1" + } + }, + "node_modules/@npmcli/run-script/node_modules/read-package-json-fast": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.2.tgz", + "integrity": "sha512-5fyFUyO9B799foVk4n6ylcoAktG/FbE3jwRKxvwaeSrIunaoMc0u81dzXxjeAFKOce7O5KncdfwpGvvs6r5PsQ==", + "dev": true, + "dependencies": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@schematics/angular": { + "version": "11.2.11", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-11.2.11.tgz", + "integrity": "sha512-Ii7KabU79Jg2zoU7qR9wFd81TOAePQ6jog7OhoTyE2aKpKyBZlHXA4qq1dJfV3GAE5H1JKVm0lRgGEFJLQitGg==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "11.2.11", + "@angular-devkit/schematics": "11.2.11", + "jsonc-parser": "3.0.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": "^6.11.0 || ^7.5.6", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { + "version": "11.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.11.tgz", + "integrity": "sha512-6gFrpG0o00Y4kMU7cQeQ5fSlmXRvNlidylM3OfAvpj0qHoRKo1E3q9iVr4fW3oVZxK3fpCSN7RE5Myl5Y7mV0w==", + "dev": true, + "dependencies": { + "ajv": "6.12.6", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.3", + "source-map": "0.7.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": "^6.11.0 || ^7.5.6", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@schematics/update": { + "version": "0.1102.11", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.1102.11.tgz", + "integrity": "sha512-SdQ/Zao+huxSFnKXFbf93EEExzyLy5y+BBs14n9uLwnhaFbd5jlH0xO8/Ui1H6oDuOycSRQdnl7gt3sUr8EbaQ==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "11.2.11", + "@angular-devkit/schematics": "11.2.11", + "@yarnpkg/lockfile": "1.1.0", + "ini": "2.0.0", + "npm-package-arg": "^8.0.0", + "pacote": "11.2.4", + "semver": "7.3.4", + "semver-intersect": "1.4.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": "^6.11.0 || ^7.5.6", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@schematics/update/node_modules/@angular-devkit/core": { + "version": "11.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.11.tgz", + "integrity": "sha512-6gFrpG0o00Y4kMU7cQeQ5fSlmXRvNlidylM3OfAvpj0qHoRKo1E3q9iVr4fW3oVZxK3fpCSN7RE5Myl5Y7mV0w==", + "dev": true, + "dependencies": { + "ajv": "6.12.6", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.3", + "source-map": "0.7.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": "^6.11.0 || ^7.5.6", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@schematics/update/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@schematics/update/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@sentry/angular": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@sentry/angular/-/angular-6.4.1.tgz", + "integrity": "sha512-lpbc1nA19SYKzaaYd/kn/xqvxI8oRForAR+lM1iE0yru/56ZrFKoUreqQQjCgtMD5aKfI9cT4VrtIq5PVkfOeA==", + "dependencies": { + "@sentry/browser": "6.4.1", + "@sentry/types": "6.4.1", + "@sentry/utils": "6.4.1", + "rxjs": "^6.6.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "@angular/common": "10.x || 11.x || 12.x", + "@angular/core": "10.x || 11.x || 12.x", + "@angular/router": "10.x || 11.x || 12.x" + } + }, + "node_modules/@sentry/angular/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/browser": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-6.4.1.tgz", + "integrity": "sha512-3cDud6GWutnJqcnheIq0lPNTsUJbrRLevQ+g1YfawVXFUxfmmY2bOsGd/Mxq17LxYeBHgKTitXv3DU1bsQ+WBQ==", + "dependencies": { + "@sentry/core": "6.4.1", + "@sentry/types": "6.4.1", + "@sentry/utils": "6.4.1", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/browser/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/core": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.4.1.tgz", + "integrity": "sha512-Lx13oTiP+Tjvm5VxulcCszNVd2S1wY4viSnr+ygq62ySVERR+t7uOZDSARZ0rZ259GwW6nkbMh9dDmD0d6VCGQ==", + "dependencies": { + "@sentry/hub": "6.4.1", + "@sentry/minimal": "6.4.1", + "@sentry/types": "6.4.1", + "@sentry/utils": "6.4.1", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/core/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/hub": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.4.1.tgz", + "integrity": "sha512-7IZRP5buDE6s/c3vWzzPR/ySE+8GUuHPgTEPiDCPOCWwUN11zXDafJDKkJqY3muJfebUKmC/JG67RyBx+XlnlQ==", + "dependencies": { + "@sentry/types": "6.4.1", + "@sentry/utils": "6.4.1", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/hub/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/integrations": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-6.4.1.tgz", + "integrity": "sha512-3kw6NcrFGXW+qlfT112EkYt7jdFX55m9yJN5eCt7Iad59YzA8ji8Pio5ohy9Pl+OfYXlKRFOvnYPpZZn80UjlQ==", + "dependencies": { + "@sentry/types": "6.4.1", + "@sentry/utils": "6.4.1", + "localforage": "^1.8.1", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/integrations/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/minimal": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.4.1.tgz", + "integrity": "sha512-4x/PRbDZACCKJqjta9EkhiIMyGMf7VgBX13EEWEDVWLP7ymFukBuTr4ap/Tz9429kB/yXZuDGGMIZp/G618H3g==", + "dependencies": { + "@sentry/hub": "6.4.1", + "@sentry/types": "6.4.1", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/minimal/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/types": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.4.1.tgz", + "integrity": "sha512-sTu/GaLsLYk1AkAqpkMT4+4q665LtZjhV0hkgiTD4N3zPl5uSf1pCIzxPRYjOpe7NEANmWv8U4PaGKGtc2eMfA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.4.1.tgz", + "integrity": "sha512-xJ1uVa5fvg23pXQfulvCIBb9pQ3p1awyd1PapK2AYi+wKjTuYl4B9edmhjRREEQEExznl/d2OVm78fRXLq7M9Q==", + "dependencies": { + "@sentry/types": "6.4.1", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", + "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/babel__core": { + "version": "7.1.12", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz", + "integrity": "sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", + "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", + "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", + "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/file-saver": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.1.tgz", + "integrity": "sha512-g1QUuhYVVAamfCifK7oB7G3aIl4BbOyzDOqVyUfEr4tfBKrXfeH+M+Tg7HKCXSrbzxYdhyCP7z9WbKo0R2hBCw==" + }, + "node_modules/@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "26.0.20", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", + "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", + "dev": true, + "dependencies": { + "jest-diff": "^26.0.0", + "pretty-format": "^26.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "12.19.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.9.tgz", + "integrity": "sha512-yj0DOaQeUrk3nJ0bd3Y5PeDRJ6W0r+kilosLA+dzF3dola/o9hxhMSg2sFvVcA2UHS5JSOsZp4S0c1OEXc4m1Q==", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/prettier": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.1.tgz", + "integrity": "sha512-DxZZbyMAM9GWEzXL+BMZROWz9oo6A9EilwwOMET2UVu2uZTqMWS5S69KVtuVKaRjCUpcrOXRalet86/OpG4kqw==", + "dev": true + }, + "node_modules/@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", + "dev": true + }, + "node_modules/@types/selenium-webdriver": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", + "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", + "dev": true + }, + "node_modules/@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", + "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", + "dev": true + }, + "node_modules/@types/webpack-sources": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.8.tgz", + "integrity": "sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.6.1" + } + }, + "node_modules/@types/webpack-sources/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@types/yargs": { + "version": "15.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", + "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", + "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", + "dev": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "dependencies": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz", + "integrity": "sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true, + "engines": { + "node": ">=0.3.0" + } + }, + "node_modules/agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", + "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "node_modules/alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "node_modules/angular-ng-autocomplete": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/angular-ng-autocomplete/-/angular-ng-autocomplete-2.0.5.tgz", + "integrity": "sha512-mYALrzwc5eoFR5xz/diup5GDsxqXp3L707P4CkiBl5l01fKej0nyIDTQ+xXtZUK3spXIyfuOX0ypa9wTrgCP5A==" + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "dependencies": { + "type-fest": "^0.11.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/app-root-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", + "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "node_modules/are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "dev": true, + "dependencies": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, + "node_modules/arity-n": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", + "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=", + "dev": true + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "dev": true, + "dependencies": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "node_modules/axobject-query": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", + "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", + "dev": true, + "dependencies": { + "ast-types-flow": "0.0.7" + } + }, + "node_modules/babel-jest": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", + "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", + "dev": true, + "dependencies": { + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/babel__core": "^7.1.7", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", + "dev": true, + "dependencies": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 6.9" + } + }, + "node_modules/babel-loader/node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/babel-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/babel-loader/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", + "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "node_modules/babel-preset-jest": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", + "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^26.6.2", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/blocking-proxy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", + "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "blocking-proxy": "built/lib/bin.js" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "dev": true + }, + "node_modules/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "dependencies": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "node_modules/bootstrap": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.3.tgz", + "integrity": "sha512-o9ppKQioXGqhw8Z7mah6KdTYpNQY//tipnkxppWhPbiSWdD+1raYsnhwEZjkTHYbGee4cVQ0Rx65EhOY/HNLcQ==" + }, + "node_modules/bowser": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/browserify-sign/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/browserstack": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", + "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", + "dev": true, + "dependencies": { + "https-proxy-agent": "^2.2.1" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "node_modules/buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", + "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", + "dev": true, + "dependencies": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacache/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "dependencies": { + "callsites": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "dependencies": { + "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001230", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001230.tgz", + "integrity": "sha512-5yBd5nWCBS+jWKTcHOzXwo5xzcj4ePE/yjtkZyUV1BTUmrBaA9MRGC+e7mxnqXSA90CmCA8L3eKLaSUkt099IQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/canonical-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", + "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", + "dev": true + }, + "node_modules/capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "dev": true, + "dependencies": { + "rsvp": "^4.8.4" + }, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/chrome-trace-event/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/circular-dependency-plugin": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz", + "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/cjs-module-lexer": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", + "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", + "dev": true + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", + "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/codelyzer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-6.0.1.tgz", + "integrity": "sha512-cOyGQgMdhnRYtW2xrJUNrNYDjEgwQ+BrE2y93Bwz3h4DJ6vJRLfupemU5N3pbYsUlBHJf0u1j1UGk+NLW4d97g==", + "dev": true, + "dependencies": { + "@angular/compiler": "9.0.0", + "@angular/core": "9.0.0", + "app-root-path": "^3.0.0", + "aria-query": "^3.0.0", + "axobject-query": "2.0.2", + "css-selector-tokenizer": "^0.7.1", + "cssauron": "^1.4.0", + "damerau-levenshtein": "^1.0.4", + "rxjs": "^6.5.3", + "semver-dsl": "^1.0.1", + "source-map": "^0.5.7", + "sprintf-js": "^1.1.2", + "tslib": "^1.10.0", + "zone.js": "~0.10.3" + } + }, + "node_modules/codelyzer/node_modules/@angular/compiler": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz", + "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==", + "dev": true + }, + "node_modules/codelyzer/node_modules/@angular/core": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz", + "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==", + "dev": true + }, + "node_modules/codelyzer/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/codelyzer/node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, + "node_modules/codelyzer/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/color-string": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", + "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", + "dev": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/compose-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", + "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", + "dev": true, + "dependencies": { + "arity-n": "^1.0.4" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "node_modules/copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "node_modules/copy-concurrently/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.2.1.tgz", + "integrity": "sha512-VH2ZTMIBsx4p++Lmpg77adZ0KUyM5gFR/9cuTrbneNnJlcQXUFvsNariPqq2dq2kV3F2skHiDGPQCyKWy1+U0Q==", + "dev": true, + "dependencies": { + "cacache": "^15.0.5", + "fast-glob": "^3.2.4", + "find-cache-dir": "^3.3.1", + "glob-parent": "^5.1.1", + "globby": "^11.0.1", + "loader-utils": "^2.0.0", + "normalize-path": "^3.0.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "webpack-sources": "^1.4.3" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/copy-webpack-plugin/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/core-js": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", + "dev": true + }, + "node_modules/core-js-compat": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.1.tgz", + "integrity": "sha512-a16TLmy9NVD1rkjUGbwuyWkiDoN0FDpAwrfLONvHFQx0D9k7J9y0srwMT8QP/Z6HE3MIFaVynEeYwZwPX1o5RQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.15.0", + "semver": "7.0.0" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "dependencies": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + } + }, + "node_modules/css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + }, + "engines": { + "node": ">4" + } + }, + "node_modules/css-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-4.3.0.tgz", + "integrity": "sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^2.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.3", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.1", + "semver": "^7.3.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/css-parse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", + "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", + "dev": true, + "dependencies": { + "css": "^2.0.0" + } + }, + "node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "node_modules/css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssauron": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", + "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", + "dev": true, + "dependencies": { + "through": "X.X.X" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "dev": true, + "dependencies": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz", + "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.3", + "postcss-unique-selectors": "^4.0.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "node_modules/csso/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", + "dev": true + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", + "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==", + "dev": true + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "dependencies": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/dependency-graph": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz", + "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "node_modules/detect-passive-events": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/detect-passive-events/-/detect-passive-events-1.0.5.tgz", + "integrity": "sha512-foW7Q35wwOCxVzW0xLf5XeB5Fhe7oyRgvkBYdiP9IWgLMzjqUqTvsJv9ymuEWGjY6AoDXD3OC294+Z9iuOw0QA==" + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "dev": true, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "node_modules/dns-packet": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "dev": true, + "dependencies": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "dependencies": { + "buffer-indexof": "^1.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/dom7": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom7/-/dom7-3.0.0.tgz", + "integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==", + "dependencies": { + "ssr-window": "^3.0.0-alpha.1" + } + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true, + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.3.741", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.741.tgz", + "integrity": "sha512-4i3T0cwnHo1O4Mnp9JniEco8bZiXoqbm3PhW5hv7uu8YLg35iajYrRnNyKFaN8/8SSTskU2hYqVTeYVPceSpUA==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", + "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.3.1.tgz", + "integrity": "sha512-G1XD3MRGrGfNcf6Hg0LVZG7GIKcYkbfHa5QMxt1HDUTdYoXH0JR1xXyg+MaKLF73E9A27uWNVxvFivNRYeUB6w==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "node_modules/errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", + "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.10.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dev": true, + "dependencies": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "node_modules/es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "dependencies": { + "es6-promise": "^4.0.3" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "dev": true, + "dependencies": { + "original": "^1.0.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/exec-sh": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", + "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==", + "dev": true + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/expect": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", + "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-styles": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/expect/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/expect/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/expect/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "dependencies": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dev": true, + "dependencies": { + "type": "^2.0.0" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", + "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==", + "dev": true + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", + "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/file-loader": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.1.1.tgz", + "integrity": "sha512-Klt8C4BjWSXYQAfhpYYkG4qHNTna4toMHEbWrI5IuVoxbU6uiDKeKAP99R8mmbJi3lvewn/jQBOgU4+NS3tDQw==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/follow-redirects": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", + "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/fs-extra": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", + "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/gauge/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true, + "optional": true + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hosted-git-info": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", + "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "node_modules/hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", + "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==", + "dev": true + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-agent/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "dependencies": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "node_modules/https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "dependencies": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.14" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "node_modules/iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "node_modules/ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + }, + "node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "dependencies": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/inquirer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/inquirer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/inquirer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "dependencies": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "node_modules/ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", + "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "dependencies": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "node_modules/is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "dev": true + }, + "node_modules/is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", + "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "dependencies": { + "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", + "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-string": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", + "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "dev": true, + "dependencies": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" + }, + "bin": { + "jasmine": "bin/jasmine.js" + } + }, + "node_modules/jasmine/node_modules/jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "dev": true + }, + "node_modules/jasminewd2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", + "dev": true, + "engines": { + "node": ">= 6.9.x" + } + }, + "node_modules/jest": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", + "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", + "dev": true, + "dependencies": { + "@jest/core": "^26.6.3", + "import-local": "^3.0.2", + "jest-cli": "^26.6.3" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-changed-files": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", + "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "execa": "^4.0.0", + "throat": "^5.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-changed-files/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/jest-changed-files/node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-changed-files/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/jest-config": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", + "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^26.6.3", + "@jest/types": "^26.6.2", + "babel-jest": "^26.6.3", + "chalk": "^4.0.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "jest-environment-jsdom": "^26.6.2", + "jest-environment-node": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-jasmine2": "^26.6.3", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", + "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-each": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", + "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", + "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", + "dev": true, + "dependencies": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2", + "jsdom": "^16.4.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-environment-node": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", + "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", + "dev": true, + "dependencies": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-haste-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", + "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^26.0.0", + "jest-serializer": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7" + }, + "engines": { + "node": ">= 10.14.2" + }, + "optionalDependencies": { + "fsevents": "^2.1.2" + } + }, + "node_modules/jest-haste-map/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-haste-map/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-haste-map/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", + "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^26.6.2", + "is-generator-fn": "^2.0.0", + "jest-each": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2", + "throat": "^5.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-jasmine2/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-jasmine2/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-jasmine2/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-leak-detector": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", + "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", + "dev": true, + "dependencies": { + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-matcher-utils": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", + "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", + "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2", + "slash": "^3.0.0", + "stack-utils": "^2.0.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", + "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "@types/node": "*" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-preset-angular": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-8.3.2.tgz", + "integrity": "sha512-mdETK9E5tkCJPnPzB7NLXDB7CULbUEwcrA7eKU7WdR0u7ZIJqP0pvQxK5Cc70KBsOEaiwJK6LSGJm7aeqjSYYA==", + "dev": true, + "dependencies": { + "pretty-format": "26.x", + "ts-jest": "26.x" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/jest-regex-util": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", + "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", + "dev": true, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", + "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-snapshot": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", + "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", + "dev": true, + "dependencies": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.7.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-docblock": "^26.0.0", + "jest-haste-map": "^26.6.2", + "jest-leak-detector": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "source-map-support": "^0.5.6", + "throat": "^5.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", + "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", + "dev": true, + "dependencies": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/globals": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^0.6.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^15.4.1" + }, + "bin": { + "jest-runtime": "bin/jest-runtime.js" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-runtime/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runtime/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-serializer": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", + "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", + "dev": true, + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-snapshot": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", + "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.0.0", + "chalk": "^4.0.0", + "expect": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-haste-map": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "natural-compare": "^1.4.0", + "pretty-format": "^26.6.2", + "semver": "^7.3.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", + "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", + "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "camelcase": "^6.0.0", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "leven": "^3.1.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", + "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", + "dev": true, + "dependencies": { + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^26.6.2", + "string-length": "^4.0.1" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "26.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.5.0.tgz", + "integrity": "sha512-kTw66Dn4ZX7WpjZ7T/SUDgRhapFRKWmisVAF0Rv4Fu8SLFD7eLbqpLvbxVqYhSgaWa7I+bW7pHnbyfNsH6stug==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "dev": true, + "dependencies": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "node_modules/jsdom": { + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz", + "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==", + "dev": true, + "dependencies": { + "abab": "^2.0.3", + "acorn": "^7.1.1", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.2.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.0", + "domexception": "^2.0.1", + "escodegen": "^1.14.1", + "html-encoding-sniffer": "^2.0.1", + "is-potential-custom-element-name": "^1.0.0", + "nwsapi": "^2.2.0", + "parse5": "5.1.1", + "request": "^2.88.2", + "request-promise-native": "^1.0.8", + "saxes": "^5.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^3.0.1", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0", + "ws": "^7.2.3", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jsdom/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jsdom/node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true + }, + "node_modules/jsdom/node_modules/tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "dependencies": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsdom/node_modules/ws": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", + "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", + "dev": true, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "node_modules/json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "node_modules/json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/jszip": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", + "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", + "dev": true, + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "node_modules/karma-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.0.3.tgz", + "integrity": "sha512-atDvLQqvPcLxhED0cmXYdsPMCQuh6Asa9FMZW1bhNqlVEhJoB9qyZ2BY1gu7D/rr5GLGb5QzYO4siQskxaWP/g==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.1", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.0", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "dependencies": { + "source-map-support": "^0.5.5" + } + }, + "node_modules/killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz", + "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/less": { + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/less/-/less-3.12.2.tgz", + "integrity": "sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q==", + "dev": true, + "dependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "tslib": "^1.10.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "image-size": "~0.5.0", + "native-request": "^1.0.5", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-7.0.2.tgz", + "integrity": "sha512-7MKlgjnkCf63E3Lv6w2FvAEgLMx3d/tNBExITcanAq7ys5U8VPWT3F6xcRjYmdNfkoQ9udoVFb1r2azSiTnD6w==", + "dev": true, + "dependencies": { + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/less-loader/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/less/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/license-webpack-plugin": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.3.1.tgz", + "integrity": "sha512-yhqTmlYIEpZWA122lf6E0G8+rkn0AzoQ1OpzUKKs/lXUqG1plmGnwmkuuPlfggzJR5y6DLOdot/Tv00CC51CeQ==", + "dev": true, + "dependencies": { + "@types/webpack-sources": "^0.1.5", + "webpack-sources": "^1.2.0" + } + }, + "node_modules/license-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/license-webpack-plugin/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "node_modules/loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/localforage": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.9.0.tgz", + "integrity": "sha512-rR1oyNrKulpe+VM9cYmcFn6tsHuokyVHFaCM3+osEmxaHTbEk8oQu6eGDfS6DQLWi/N67XRmB8ECG37OES368g==", + "dependencies": { + "lie": "3.1.1" + } + }, + "node_modules/localforage/node_modules/lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", + "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.4" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/make-fetch-happen": { + "version": "8.0.14", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", + "integrity": "sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.0.5", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^5.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/make-fetch-happen/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/make-fetch-happen/node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "dev": true, + "dependencies": { + "tmpl": "1.0.x" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "node_modules/merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/merge-source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dev": true, + "dependencies": { + "mime-db": "1.44.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.2.1.tgz", + "integrity": "sha512-G3yw7/TQaPfkuiR73MDcyiqhyP8SnbmLhUbpC76H+wtQxA6wfKhMCQOCb6wnPK0dQbjORAeOILQqEesg4/wF7A==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "webpack-sources": "^1.1.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.3.tgz", + "integrity": "sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ==", + "dev": true, + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "node_modules/move-concurrently/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "dependencies": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "dev": true, + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/native-request": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.0.8.tgz", + "integrity": "sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag==", + "dev": true, + "optional": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "node_modules/ng-lazyload-image": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/ng-lazyload-image/-/ng-lazyload-image-9.1.0.tgz", + "integrity": "sha512-ZdfCXMTaehfzxcSRRThpz9YZbEA+8LPA086Od6JiylrGj0yNM7Aq830A1x6NE/M8o2VuVq93emH9m8T6SFBHlA==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/ng-sidebar": { + "version": "9.4.2", + "resolved": "https://registry.npmjs.org/ng-sidebar/-/ng-sidebar-9.4.2.tgz", + "integrity": "sha512-8KmEQYFhn4S5LDjRDXBhDfCgLchJEj+ClBdiTCAQoRjX8vdh85hmKIGN7aBsh1HNOXKN3rzDu0qmd90193/P3Q==" + }, + "node_modules/ngx-toastr": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-13.2.1.tgz", + "integrity": "sha512-UAzp7/xWK9IXA2LsOmhpaaIGCqscvJokoQpBNpAMrjEkDeSlFf8PWQAuQY795KW0mJb3qF9UG/s23nsXfMYKmg==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": ">=10.0.0-0", + "@angular/core": ">=10.0.0-0", + "@angular/platform-browser": ">=10.0.0-0" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/node-gyp": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", + "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.3", + "nopt": "^5.0.0", + "npmlog": "^4.1.2", + "request": "^2.88.2", + "rimraf": "^3.0.2", + "semver": "^7.3.2", + "tar": "^6.0.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/node-gyp/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "node_modules/node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/node-notifier": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", + "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", + "dev": true, + "optional": true, + "dependencies": { + "growly": "^1.3.0", + "is-wsl": "^2.2.0", + "semver": "^7.3.2", + "shellwords": "^0.1.1", + "uuid": "^8.3.0", + "which": "^2.0.2" + } + }, + "node_modules/node-notifier/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "optional": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/node-notifier/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "optional": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/node-releases": { + "version": "1.1.72", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.72.tgz", + "integrity": "sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==", + "dev": true + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-install-checks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "dev": true, + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "node_modules/npm-package-arg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.0.tgz", + "integrity": "sha512-/ep6QDxBkm9HvOhOg0heitSd7JHA1U7y1qhhlRlteYYAi9Pdb/ZV7FW5aHpkrpM8+P+4p/jjR8zCyKPBMBjSig==", + "dev": true, + "dependencies": { + "hosted-git-info": "^3.0.6", + "semver": "^7.0.0", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-packlist": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.1.5.tgz", + "integrity": "sha512-KCfK3Vi2F+PH1klYauoQzg81GQ8/GGjQRKYY6tRnpQUPKTs/1gBZSRWtTEd7jGdSn1LZL7gpAmJT+BcS55k2XQ==", + "dev": true, + "dependencies": { + "glob": "^7.1.6", + "ignore-walk": "^3.0.3", + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "npm-packlist": "bin/index.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-pick-manifest": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz", + "integrity": "sha512-ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw==", + "dev": true, + "dependencies": { + "npm-install-checks": "^4.0.0", + "npm-package-arg": "^8.0.0", + "semver": "^7.0.0" + } + }, + "node_modules/npm-registry-fetch": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz", + "integrity": "sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA==", + "dev": true, + "dependencies": { + "@npmcli/ci-detect": "^1.0.0", + "lru-cache": "^6.0.0", + "make-fetch-happen": "^8.0.9", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", + "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", + "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", + "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/open": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.3.0.tgz", + "integrity": "sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/opn/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.1.0.tgz", + "integrity": "sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.4.0", + "is-interactive": "^1.0.0", + "log-symbols": "^4.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "dependencies": { + "url-parse": "^1.4.3" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-each-series": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", + "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "dependencies": { + "retry": "^0.12.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pacote": { + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.2.4.tgz", + "integrity": "sha512-GfTeVQGJ6WyBQbQD4t3ocHbyOmTQLmWjkCKSZPmKiGFKYKNUaM5U2gbLzUW8WG1XmS9yQFnsTFA0k3o1+q4klQ==", + "dev": true, + "dependencies": { + "@npmcli/git": "^2.0.1", + "@npmcli/installed-package-contents": "^1.0.5", + "@npmcli/promise-spawn": "^1.2.0", + "@npmcli/run-script": "^1.3.0", + "cacache": "^15.0.5", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "minipass": "^3.1.3", + "mkdirp": "^1.0.3", + "npm-package-arg": "^8.0.1", + "npm-packlist": "^2.1.4", + "npm-pick-manifest": "^6.0.0", + "npm-registry-fetch": "^9.0.0", + "promise-retry": "^1.1.1", + "read-package-json-fast": "^1.1.3", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.1.0" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pacote/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pacote/node_modules/tar": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", + "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module/node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/parse5-html-rewriting-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", + "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1", + "parse5-sax-parser": "^6.0.1" + } + }, + "node_modules/parse5-sax-parser": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", + "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, + "dependencies": { + "node-modules-regexp": "^1.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", + "dev": true, + "dependencies": { + "ts-pnp": "^1.1.6" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-colormin/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-convert-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-import": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "dev": true, + "dependencies": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-import/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-loader": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-4.0.4.tgz", + "integrity": "sha512-pntA9zIR14drQo84yGTjQJg1m7T0DkXR4vXYHBngiRZdJtEeCrojL6lOpqUanMzG375lIJbT4Yug85zC/AJWGw==", + "dev": true, + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/postcss-loader/node_modules/cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-loader/node_modules/import-fresh": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-loader/node_modules/parse-json": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-loader/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-loader/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "dependencies": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-merge-longhand/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-params/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", + "dev": true, + "dependencies": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "dev": true, + "dependencies": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-positions/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "dependencies": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-string/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "dependencies": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz", + "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-svgo/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "node_modules/postcss/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-format/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/pretty-format/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "node_modules/promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, + "dependencies": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/promise-retry/node_modules/err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "node_modules/promise-retry/node_modules/retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/prompts": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", + "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/protractor": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", + "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", + "dev": true, + "dependencies": { + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "^3.0.0", + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "q": "1.4.1", + "saucelabs": "^1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "2.1.0", + "webdriver-manager": "^12.1.7", + "yargs": "^15.3.1" + }, + "bin": { + "protractor": "bin/protractor", + "webdriver-manager": "bin/webdriver-manager" + }, + "engines": { + "node": ">=10.13.x" + } + }, + "node_modules/protractor/node_modules/@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "dev": true + }, + "node_modules/protractor/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/protractor/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/protractor/node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/protractor/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/protractor/node_modules/del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "dependencies": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "dependencies": { + "is-path-inside": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/protractor/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/protractor/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/protractor/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/protractor/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/protractor/node_modules/webdriver-manager": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.7.tgz", + "integrity": "sha512-XINj6b8CYuUYC93SG3xPkxlyUc3IJbD6Vvo75CVGuG9uzsefDzWQrhz0Lq8vbPxtb4d63CZdYophF8k8Or/YiA==", + "dev": true, + "dependencies": { + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + }, + "bin": { + "webdriver-manager": "bin/webdriver-manager" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/protractor/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dev": true, + "dependencies": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", + "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/raw-loader/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/react-is": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", + "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", + "dev": true + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-package-json-fast": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-1.2.2.tgz", + "integrity": "sha512-39DbPJjkltEzfXJXB6D8/Ir3GFOU2YbSKa2HaB/Y3nKrc/zY+0XrALpID6/13ezWyzqvOHrBbR4t4cjQuTdBVQ==", + "dev": true, + "dependencies": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "node_modules/repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "dev": true, + "dependencies": { + "lodash": "^4.17.19" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "dev": true, + "dependencies": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dependencies": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + }, + "node_modules/resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "node_modules/resolve-url-loader": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz", + "integrity": "sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ==", + "dev": true, + "dependencies": { + "adjust-sourcemap-loader": "3.0.0", + "camelcase": "5.3.1", + "compose-function": "3.0.3", + "convert-source-map": "1.7.0", + "es6-iterator": "2.0.3", + "loader-utils": "1.2.3", + "postcss": "7.0.21", + "rework": "1.0.1", + "rework-visit": "1.0.0", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/resolve-url-loader/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/resolve-url-loader/node_modules/emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/resolve-url-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", + "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-url-loader/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rework": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", + "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", + "dev": true, + "dependencies": { + "convert-source-map": "^0.3.3", + "css": "^2.0.0" + } + }, + "node_modules/rework-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", + "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=", + "dev": true + }, + "node_modules/rework/node_modules/convert-source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", + "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=", + "dev": true + }, + "node_modules/rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "node_modules/rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rollup": { + "version": "2.32.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.32.1.tgz", + "integrity": "sha512-Op2vWTpvK7t6/Qnm1TTh7VjEZZkN8RWgf0DHbkKzQBwNf748YhXbozHVefqpPp/Fuyk/PQPAnYsBxAEtlMvpUw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.2" + } + }, + "node_modules/rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "dev": true, + "engines": { + "node": "6.* || >= 7.*" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "dev": true + }, + "node_modules/run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/rxjs-compat": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs-compat/-/rxjs-compat-6.6.7.tgz", + "integrity": "sha512-szN4fK+TqBPOFBcBcsR0g2cmTTUF/vaFEOZNuSdfU8/pGFnNmmn2u8SystYXG1QMrjOPBc6XTKHMVfENDf6hHw==" + }, + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sane": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "dev": true, + "dependencies": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + }, + "bin": { + "sane": "src/cli.js" + }, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/sane/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/sane/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sass": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.27.0.tgz", + "integrity": "sha512-0gcrER56OkzotK/GGwgg4fPrKuiFlPNitO7eUJ18Bs+/NBlofJfMxmxqpqJxjae9vu0Wq8TZzrSyxZal00WDig==", + "dev": true, + "dependencies": { + "chokidar": ">=2.0.0 <4.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/sass-loader": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-10.0.5.tgz", + "integrity": "sha512-2LqoNPtKkZq/XbXNQ4C64GFEleSEHKv6NPSI+bMC/l+jpEXGJhiRYkAQToO24MR7NU4JRY2RpLpJ/gjo2Uf13w==", + "dev": true, + "dependencies": { + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "neo-async": "^2.6.2", + "schema-utils": "^3.0.0", + "semver": "^7.3.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/sass-loader/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/saucelabs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", + "dev": true, + "dependencies": { + "https-proxy-agent": "^2.2.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "node_modules/selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "dependencies": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/selenium-webdriver/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/selenium-webdriver/node_modules/tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/selfsigned": { + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "dev": true, + "dependencies": { + "node-forge": "^0.10.0" + } + }, + "node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-dsl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", + "dev": true, + "dependencies": { + "semver": "^5.3.0" + } + }, + "node_modules/semver-dsl/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-intersect": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", + "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", + "dev": true, + "dependencies": { + "semver": "^5.0.0" + } + }, + "node_modules/semver-intersect/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true, + "optional": true + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.10.0", + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" + } + }, + "node_modules/sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "dev": true, + "dependencies": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + } + }, + "node_modules/sockjs-client/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/sockjs-client/node_modules/faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/socks": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", + "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "dev": true, + "dependencies": { + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", + "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4", + "socks": "^2.3.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-loader": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-1.1.2.tgz", + "integrity": "sha512-bjf6eSENOYBX4JZDfl9vVLNsGAQ6Uz90fLmOazcmMcyDYOBFsGxPNn83jXezWLY9bJsVAo1ObztxPcV8HAbjVA==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.2", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "source-map": "^0.6.1", + "whatwg-mimetype": "^2.3.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/source-map-loader/node_modules/iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/source-map-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/speed-measure-webpack-plugin": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.3.tgz", + "integrity": "sha512-2ljD4Ch/rz2zG3HsLsnPfp23osuPBS0qPuz9sGpkNXTN1Ic4M+W9xB8l8rS8ob2cO4b1L+WTJw/0AJwWYVgcxQ==", + "dev": true, + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ssr-window": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-3.0.0.tgz", + "integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==" + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-length": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz", + "integrity": "sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/style-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz", + "integrity": "sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/style-loader/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/stylehacks/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylus": { + "version": "0.54.8", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", + "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", + "dev": true, + "dependencies": { + "css-parse": "~2.0.0", + "debug": "~3.1.0", + "glob": "^7.1.6", + "mkdirp": "~1.0.4", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "semver": "^6.3.0", + "source-map": "^0.7.3" + }, + "bin": { + "stylus": "bin/stylus" + }, + "engines": { + "node": "*" + } + }, + "node_modules/stylus-loader": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-4.3.1.tgz", + "integrity": "sha512-apDYJEM5ZpOAWbWInWcsbtI8gHNr/XYVcSY/tWqOUPt7M5tqhtwXVsAkgyiVjhuvw2Yrjq474a9H+g4d047Ebw==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.4", + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "normalize-path": "^3.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/stylus-loader/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/stylus/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/stylus/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stylus/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/stylus/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", + "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/swiper": { + "version": "6.5.8", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-6.5.8.tgz", + "integrity": "sha512-SW8bNkJf8jCB4VdZsA1EZ3c87xshHS4f83YZVqT9ppkDKgspOfk9/I6dTtKGJFlsZpuE1S5X0LUAa7+QEaC0fQ==", + "dependencies": { + "dom7": "^3.0.0", + "ssr-window": "^3.0.0" + }, + "engines": { + "node": ">= 4.7.0" + } + }, + "node_modules/symbol-observable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-3.0.0.tgz", + "integrity": "sha512-6tDOXSHiVjuCaasQSWTmHUWn4PuG7qa3+1WT031yTc/swT7+rLiw3GOrFxaH1E3lLP09dH3bVuVDf2gK5rxG3Q==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/tapable": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", + "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", + "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/terser": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.7.tgz", + "integrity": "sha512-lJbKdfxWvjpV330U4PBZStCT9h3N9A4zZVA5Y4k9sCWXknrpdyxi1oMsRKLmQ/YDMDxSBKIh88v0SkdhdqX06w==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": "^10.0.0 || ^11.0.0 || ^12.0.0 || >=14.0.0" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz", + "integrity": "sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==", + "dev": true, + "dependencies": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.5.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "source-map": "^0.6.1", + "terser": "^5.3.4", + "webpack-sources": "^1.4.3" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", + "dev": true + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-jest": { + "version": "26.5.1", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.1.tgz", + "integrity": "sha512-G7Rmo3OJMvlqE79amJX8VJKDiRcd7/r61wh9fnvvG8cAjhA9edklGw/dCxRSQmfZ/z8NDums5srSVgwZos1qfg==", + "dev": true, + "dependencies": { + "@types/jest": "26.x", + "bs-logger": "0.x", + "buffer-from": "1.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^26.1.0", + "json5": "2.x", + "lodash": "4.x", + "make-error": "1.x", + "mkdirp": "1.x", + "semver": "7.x", + "yargs-parser": "20.x" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/ts-jest/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-jest/node_modules/yargs-parser": { + "version": "20.2.5", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.5.tgz", + "integrity": "sha512-jYRGS3zWy20NtDtK2kBgo/TlAoy5YUuhD9/LZ7z7W4j1Fdw2cqD0xEEclf8fxc8xjD6X5Qr+qQQwCEsP8iRiYg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-node": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz", + "integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==", + "dev": true, + "dependencies": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.6", + "yn": "^3.0.0" + }, + "bin": { + "ts-node": "dist/bin.js" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + }, + "node_modules/tslint": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", + "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.3", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.13.0", + "tsutils": "^2.29.0" + }, + "bin": { + "tslint": "bin/tslint" + }, + "engines": { + "node": ">=4.8.0" + } + }, + "node_modules/tslint/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/tslint/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "node_modules/uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universal-analytics": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz", + "integrity": "sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "request": "^2.88.2", + "uuid": "^3.0.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", + "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", + "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "dev": true, + "dependencies": { + "makeerror": "1.0.x" + } + }, + "node_modules/watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "dependencies": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "optionalDependencies": { + "watchpack-chokidar2": "^2.0.1" + } + }, + "node_modules/watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "dependencies": { + "chokidar": "^2.1.8" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webdriver-js-extender": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", + "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", + "dev": true, + "dependencies": { + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz", + "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.3.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "dev": true, + "dependencies": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", + "dev": true, + "dependencies": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 6.11.5" + } + }, + "node_modules/webpack-dev-server/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/webpack-dev-server/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/webpack-dev-server/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-dev-server/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/webpack-dev-server/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/webpack-dev-server/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "dependencies": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-log/node_modules/ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-merge": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.2.0.tgz", + "integrity": "sha512-QBglJBg5+lItm3/Lopv8KDDK01+hjdg2azEwi/4vKJ8ZmGPdtJsTpjtNNOW3a4WiqzXdCATtTudOZJngE7RKkA==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.0.1.tgz", + "integrity": "sha512-A9oYz7ANQBK5EN19rUXbvNgfdfZf5U2gP0769OXsj9CvYkCR6OHOsd6OKyEy4H38GGxpsQPKIL83NC64QY6Xmw==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-sources/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-subresource-integrity": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.5.1.tgz", + "integrity": "sha512-uekbQ93PZ9e7BFB8Hl9cFIVYQyQqiXp2ExKk9Zv+qZfH/zHXHrCFAfw1VW0+NqWbTWrs/HnuDrto3+tiPXh//Q==", + "dev": true, + "dependencies": { + "webpack-sources": "^1.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack-subresource-integrity/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-subresource-integrity/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/webpack/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/webpack/node_modules/enhanced-resolve": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/webpack/node_modules/enhanced-resolve/node_modules/memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/webpack/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/webpack/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/webpack/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/webpack/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/webpack/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/webpack/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/webpack/node_modules/terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "dev": true, + "dependencies": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/webpack/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "dev": true, + "dependencies": { + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", + "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", + "dev": true, + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/wide-align/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/wide-align/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/wide-align/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/wide-align/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "dependencies": { + "errno": "~0.1.7" + } + }, + "node_modules/worker-plugin": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-5.0.0.tgz", + "integrity": "sha512-AXMUstURCxDD6yGam2r4E34aJg6kW85IiaeX72hi+I1cxyaMUtrvVY6sbfpGKAj5e7f68Acl62BjQF5aOOx2IQ==", + "dev": true, + "dependencies": { + "loader-utils": "^1.1.0" + } + }, + "node_modules/worker-plugin/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/worker-plugin/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/zone.js": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", + "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==" + } + }, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.1100.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1100.7.tgz", + "integrity": "sha512-b2zv2yiRbdhJ7hJfZsAvGYcqgh2DVtc7gRIPo1eDPvOAKrenmZ4zo/v0PRYScrTsPzqmoCokNA5nIwufwUEnuA==", + "dev": true, + "requires": { + "@angular-devkit/core": "11.0.7", + "rxjs": "6.6.3" + } + }, + "@angular-devkit/build-angular": { + "version": "0.1100.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.1100.7.tgz", + "integrity": "sha512-erc+AtSU46ZIX7A5dmeZ0/G/SQIbqMAGbTKZbf11GePyhT0JAAnfMQtOHMb6AaX85n4yQTg1uMo9f5+8V3lfKA==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1100.7", + "@angular-devkit/build-optimizer": "0.1100.7", + "@angular-devkit/build-webpack": "0.1100.7", + "@angular-devkit/core": "11.0.7", + "@babel/core": "7.12.3", + "@babel/generator": "7.12.1", + "@babel/plugin-transform-runtime": "7.12.1", + "@babel/preset-env": "7.12.1", + "@babel/runtime": "7.12.1", + "@babel/template": "7.10.4", + "@jsdevtools/coverage-istanbul-loader": "3.0.5", + "@ngtools/webpack": "11.0.7", + "ansi-colors": "4.1.1", + "autoprefixer": "9.8.6", + "babel-loader": "8.1.0", + "browserslist": "^4.9.1", + "cacache": "15.0.5", + "caniuse-lite": "^1.0.30001032", + "circular-dependency-plugin": "5.2.0", + "copy-webpack-plugin": "6.2.1", + "core-js": "3.6.5", + "css-loader": "4.3.0", + "cssnano": "4.1.10", + "file-loader": "6.1.1", + "find-cache-dir": "3.3.1", + "glob": "7.1.6", + "inquirer": "7.3.3", + "jest-worker": "26.5.0", + "karma-source-map-support": "1.4.0", + "less": "3.12.2", + "less-loader": "7.0.2", + "license-webpack-plugin": "2.3.1", + "loader-utils": "2.0.0", + "mini-css-extract-plugin": "1.2.1", + "minimatch": "3.0.4", + "open": "7.3.0", + "ora": "5.1.0", + "parse5-html-rewriting-stream": "6.0.1", + "pnp-webpack-plugin": "1.6.4", + "postcss": "7.0.32", + "postcss-import": "12.0.1", + "postcss-loader": "4.0.4", + "raw-loader": "4.0.2", + "regenerator-runtime": "0.13.7", + "resolve-url-loader": "3.1.2", + "rimraf": "3.0.2", + "rollup": "2.32.1", + "rxjs": "6.6.3", + "sass": "1.27.0", + "sass-loader": "10.0.5", + "semver": "7.3.2", + "source-map": "0.7.3", + "source-map-loader": "1.1.2", + "source-map-support": "0.5.19", + "speed-measure-webpack-plugin": "1.3.3", + "style-loader": "2.0.0", + "stylus": "0.54.8", + "stylus-loader": "4.3.1", + "terser": "5.3.7", + "terser-webpack-plugin": "4.2.3", + "text-table": "0.2.0", + "tree-kill": "1.2.2", + "webpack": "4.44.2", + "webpack-dev-middleware": "3.7.2", + "webpack-dev-server": "3.11.0", + "webpack-merge": "5.2.0", + "webpack-sources": "2.0.1", + "webpack-subresource-integrity": "1.5.1", + "worker-plugin": "5.0.0" + } + }, + "@angular-devkit/build-optimizer": { + "version": "0.1100.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1100.7.tgz", + "integrity": "sha512-bHIIub0d1trVAmAX/EaNR6Zo4b7hkscewK394qYYp/w8VKQkLSAPMUbt2YTWN+erR9yyHnJ2y7tBabIui75Wdw==", + "dev": true, + "requires": { + "loader-utils": "2.0.0", + "source-map": "0.7.3", + "tslib": "2.0.3", + "typescript": "4.0.5", + "webpack-sources": "2.0.1" + } + }, + "@angular-devkit/build-webpack": { + "version": "0.1100.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1100.7.tgz", + "integrity": "sha512-/6Hudd1hs/GMHX4C/Qk7jueIMNg8NKFJWDEbvMPMgDzTqUIa680PTD6SNSCcY5Cz9mEpdpYCZo5N31JB7dlpOg==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1100.7", + "@angular-devkit/core": "11.0.7", + "rxjs": "6.6.3" + } + }, + "@angular-devkit/core": { + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.0.7.tgz", + "integrity": "sha512-1GKnIT++YSUHpzzRx9QC0+8yOw4wy+ZpiJVDlroPSeK4FGrTCJqJKenkfRjVFRFOSrzTiJds+IU6kI4+bFbw9g==", + "dev": true, + "requires": { + "ajv": "6.12.6", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.3", + "source-map": "0.7.3" + } + }, + "@angular-devkit/schematics": { + "version": "11.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.2.11.tgz", + "integrity": "sha512-xkw+5P9V7VdV/X3Eko0/oZmEqelenIT1RdaOlFA3ZLCdT6bz+79HjeChMy++JcLjVNRcLYQSw0ULByq2q/S2Pw==", + "dev": true, + "requires": { + "@angular-devkit/core": "11.2.11", + "ora": "5.3.0", + "rxjs": "6.6.3" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "11.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.11.tgz", + "integrity": "sha512-6gFrpG0o00Y4kMU7cQeQ5fSlmXRvNlidylM3OfAvpj0qHoRKo1E3q9iVr4fW3oVZxK3fpCSN7RE5Myl5Y7mV0w==", + "dev": true, + "requires": { + "ajv": "6.12.6", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.3", + "source-map": "0.7.3" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "ora": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz", + "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==", + "dev": true, + "requires": { + "bl": "^4.0.3", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "log-symbols": "^4.0.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@angular-slider/ngx-slider": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@angular-slider/ngx-slider/-/ngx-slider-2.0.3.tgz", + "integrity": "sha512-5NSHsYtHomBgJyPe7KtxTAJDLywHbuTb36NjD3dafbbj1VUbshX1m04d4JcyEiAB+Zeetcjkiy4jxQypUXYhHA==", + "requires": { + "detect-passive-events": "^1.0.4", + "rxjs": "^6.5.2", + "rxjs-compat": "^6.5.2", + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@angular/animations": { + "version": "11.0.9", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-11.0.9.tgz", + "integrity": "sha512-/KsMBUbRTqp29CNLbRIe4/8IxWxhnbUUZWqULaySnRDDW/p2m4miPcFVSp4zjrDZPqdXSibDiCyTiWmQ5PTuKA==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/cli": { + "version": "11.2.11", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-11.2.11.tgz", + "integrity": "sha512-KzpRaCaHUwznlm6Iz/DvWqZs1fQx+NpJsiEOtKz7ijKoktJq+qcxAcBr2A4sNAuuAMgs0Xqy70EHvbMPA1yQ9A==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1102.11", + "@angular-devkit/core": "11.2.11", + "@angular-devkit/schematics": "11.2.11", + "@schematics/angular": "11.2.11", + "@schematics/update": "0.1102.11", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "4.3.1", + "ini": "2.0.0", + "inquirer": "7.3.3", + "jsonc-parser": "3.0.0", + "npm-package-arg": "8.1.0", + "npm-pick-manifest": "6.1.0", + "open": "7.4.0", + "ora": "5.3.0", + "pacote": "11.2.4", + "resolve": "1.19.0", + "rimraf": "3.0.2", + "semver": "7.3.4", + "symbol-observable": "3.0.0", + "universal-analytics": "0.4.23", + "uuid": "8.3.2" + }, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.1102.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1102.11.tgz", + "integrity": "sha512-1MoUSz7zNJomUUuzbIyBSprzbWa9eF97SRDEbllYHHXY/IWWetHGNK7gkJPyW0zgKhXIc5Sq4TJKIJKWPNh00Q==", + "dev": true, + "requires": { + "@angular-devkit/core": "11.2.11", + "rxjs": "6.6.3" + } + }, + "@angular-devkit/core": { + "version": "11.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.11.tgz", + "integrity": "sha512-6gFrpG0o00Y4kMU7cQeQ5fSlmXRvNlidylM3OfAvpj0qHoRKo1E3q9iVr4fW3oVZxK3fpCSN7RE5Myl5Y7mV0w==", + "dev": true, + "requires": { + "ajv": "6.12.6", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.3", + "source-map": "0.7.3" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true + }, + "open": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.0.tgz", + "integrity": "sha512-PGoBCX/lclIWlpS/R2PQuIR4NJoXh6X5AwVzE7WXnWRGvHg7+4TBCgsujUgiPpm0K1y4qvQeWnCWVTpTKZBtvA==", + "dev": true, + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, + "ora": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz", + "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==", + "dev": true, + "requires": { + "bl": "^4.0.3", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "log-symbols": "^4.0.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + } + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + } + } + }, + "@angular/common": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-11.0.4.tgz", + "integrity": "sha512-4R2ALj71J6EAHVCKNnHHCKL7wcosMsv3gcMXbMTE+Wpzo3khEhM0Tej+I1qmMbVmGXVlRb//4+rjE4gff6FvQw==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/compiler": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-11.0.4.tgz", + "integrity": "sha512-Smf8FKSjkqd522ZCdXjSnVv1lYA0b21AN3WC5L1mwtRwyl/VacqCA/YEklLneDGgI2FdSIC9+bzSQIV+CCVftA==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/compiler-cli": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-11.0.4.tgz", + "integrity": "sha512-FV010O6GAldRe5sr+qegHe7oLinTylES70NX+0PIp44/W4tPx75Zvop+FVT90I4xPcvFvteLemy8nFAnMK+x5g==", + "dev": true, + "requires": { + "@babel/core": "^7.8.6", + "@babel/types": "^7.8.6", + "canonical-path": "1.0.0", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.7.2", + "fs-extra": "4.0.2", + "magic-string": "^0.25.0", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "semver": "^6.3.0", + "source-map": "^0.6.1", + "sourcemap-codec": "^1.4.8", + "tslib": "^2.0.0", + "yargs": "^16.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true + } + } + }, + "@angular/core": { + "version": "11.0.9", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-11.0.9.tgz", + "integrity": "sha512-J0ff3UK2Cw7Z0eNLtUXrpMFvmmkvPPZWLYIwimyc1pZys7qsIVT6cy2ybGEOhbJgC6qt3fo0DoJV3pGXTalb8A==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/forms": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-11.0.4.tgz", + "integrity": "sha512-Fhfc4buwMZk0WumDvl/X7XBnOKFeTRTJrwKdi8LlhY6o1Og8H4e/f69u9iDJCF3YjU4qC6yGtPp9YpSVCPP7Ew==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/localize": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-11.0.4.tgz", + "integrity": "sha512-r0dWvwFvEqQJ/H94rr548S092Hq53RqyMANuFD09CpkWXS6yAWBfArB6mW77PARnicEC0zkbi5qMGACjtSyNtA==", + "requires": { + "@babel/core": "7.8.3", + "glob": "7.1.2", + "yargs": "^16.1.1" + }, + "dependencies": { + "@babel/core": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.3.tgz", + "integrity": "sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.3", + "@babel/helpers": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==" + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==" + } + } + }, + "@angular/platform-browser": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-11.0.4.tgz", + "integrity": "sha512-+uUCKJgspSghJ3R6Fk0XHA0tolbaRBi8JFS2cY+hi9s27WKB88peGvtsK6RCOPJONY6JdOuhpcZqRN8dKfPi7w==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/platform-browser-dynamic": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-11.0.4.tgz", + "integrity": "sha512-ZOWTZaFfZSHhMy7a0RIxipiZoiobHWrGlq8/YaMrIgzUb9Fv518FeFCCI68BP0/GuyxX74MJmzv4ZgQctKKxXw==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/router": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-11.0.4.tgz", + "integrity": "sha512-B0sqv8zMM6j88+udEZzO8wKBw61pHgWZmLopnAqA65rRPrAvMsvAHUnYqX6w5pYqhJQxCVLVeKM+0QlQh1+WnA==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz", + "integrity": "sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==", + "dev": true + }, + "@babel/core": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.1.tgz", + "integrity": "sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==", + "requires": { + "@babel/types": "^7.12.1", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz", + "integrity": "sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", + "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.12.5", + "@babel/helper-validator-option": "^7.12.1", + "browserslist": "^4.14.5", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", + "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz", + "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", + "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", + "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", + "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-replace-supers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", + "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" + }, + "@babel/helper-validator-option": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz", + "integrity": "sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", + "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helpers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "requires": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.10.tgz", + "integrity": "sha512-PJdRPwyoOqFAWfLytxrWwGrAxghCgh/yTNCYciOz8QgjflA7aZhECPZAa2VUedKg2+QMWkI0L9lynh2SNmNEgA==" + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz", + "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", + "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", + "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", + "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz", + "integrity": "sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz", + "integrity": "sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", + "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz", + "integrity": "sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", + "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", + "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", + "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", + "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", + "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", + "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", + "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", + "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", + "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", + "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz", + "integrity": "sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "resolve": "^1.8.1", + "semver": "^5.5.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", + "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", + "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz", + "integrity": "sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", + "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/preset-env": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.1.tgz", + "integrity": "sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.12.1", + "@babel/helper-compilation-targets": "^7.12.1", + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-option": "^7.12.1", + "@babel/plugin-proposal-async-generator-functions": "^7.12.1", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-dynamic-import": "^7.12.1", + "@babel/plugin-proposal-export-namespace-from": "^7.12.1", + "@babel/plugin-proposal-json-strings": "^7.12.1", + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-numeric-separator": "^7.12.1", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.1", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.12.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.12.1", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-async-to-generator": "^7.12.1", + "@babel/plugin-transform-block-scoped-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.1", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-computed-properties": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-dotall-regex": "^7.12.1", + "@babel/plugin-transform-duplicate-keys": "^7.12.1", + "@babel/plugin-transform-exponentiation-operator": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-function-name": "^7.12.1", + "@babel/plugin-transform-literals": "^7.12.1", + "@babel/plugin-transform-member-expression-literals": "^7.12.1", + "@babel/plugin-transform-modules-amd": "^7.12.1", + "@babel/plugin-transform-modules-commonjs": "^7.12.1", + "@babel/plugin-transform-modules-systemjs": "^7.12.1", + "@babel/plugin-transform-modules-umd": "^7.12.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", + "@babel/plugin-transform-new-target": "^7.12.1", + "@babel/plugin-transform-object-super": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-property-literals": "^7.12.1", + "@babel/plugin-transform-regenerator": "^7.12.1", + "@babel/plugin-transform-reserved-words": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/plugin-transform-sticky-regex": "^7.12.1", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/plugin-transform-typeof-symbol": "^7.12.1", + "@babel/plugin-transform-unicode-escapes": "^7.12.1", + "@babel/plugin-transform-unicode-regex": "^7.12.1", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.12.1", + "core-js-compat": "^3.6.2", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz", + "integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.10.tgz", + "integrity": "sha512-6aEtf0IeRgbYWzta29lePeYSk+YAFIC3kyqESeft8o5CkFlYIMX+EQDDWEiAQ9LHOA3d0oHdgrSsID/CKqXJlg==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.10", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.10", + "@babel/types": "^7.12.10", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "@babel/generator": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.10.tgz", + "integrity": "sha512-6mCdfhWgmqLdtTkhXjnIz0LcdVCd26wS2JXRtj2XY0u5klDsXBREA/pG5NVOuVnF2LUrBGNFtQkIqqTbblg0ww==", + "requires": { + "@babel/types": "^7.12.10", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "@babel/types": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.10.tgz", + "integrity": "sha512-sf6wboJV5mGyip2hIpDSKsr80RszPinEFjsHTalMxZAZkoQ2/2yQzxlcFN52SJqsyPfLtPmenL4g2KB3KJXPDw==", + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "dev": true, + "requires": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + } + }, + "@fortawesome/fontawesome-free": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.1.tgz", + "integrity": "sha512-OEdH7SyC1suTdhBGW91/zBfR6qaIhThbcN8PUXtXilY4GYnSBbVqOntdHbC1vXwsDnX0Qix2m2+DSU1J51ybOQ==" + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true + }, + "@jest/console": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", + "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^26.6.2", + "jest-util": "^26.6.2", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/core": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", + "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", + "dev": true, + "requires": { + "@jest/console": "^26.6.2", + "@jest/reporters": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^26.6.2", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-resolve-dependencies": "^26.6.3", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "jest-watcher": "^26.6.2", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/environment": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", + "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", + "dev": true, + "requires": { + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2" + } + }, + "@jest/fake-timers": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", + "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@sinonjs/fake-timers": "^6.0.1", + "@types/node": "*", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + } + }, + "@jest/globals": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", + "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", + "dev": true, + "requires": { + "@jest/environment": "^26.6.2", + "@jest/types": "^26.6.2", + "expect": "^26.6.2" + } + }, + "@jest/reporters": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", + "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "node-notifier": "^8.0.0", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^7.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/source-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", + "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", + "dev": true, + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + }, + "dependencies": { + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@jest/test-result": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", + "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", + "dev": true, + "requires": { + "@jest/console": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", + "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", + "dev": true, + "requires": { + "@jest/test-result": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3" + } + }, + "@jest/transform": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", + "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^26.6.2", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-util": "^26.6.2", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jsdevtools/coverage-istanbul-loader": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz", + "integrity": "sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA==", + "dev": true, + "requires": { + "convert-source-map": "^1.7.0", + "istanbul-lib-instrument": "^4.0.3", + "loader-utils": "^2.0.0", + "merge-source-map": "^1.1.0", + "schema-utils": "^2.7.0" + } + }, + "@ng-bootstrap/ng-bootstrap": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-9.1.0.tgz", + "integrity": "sha512-5cTxOew6EsENIa/PiIlIlF3MSGanLGD2fyGPyQJc0hU5j9uK+alz2eJXWpeAX3IHLDIaOBfRdCGOrpXkeIUhzQ==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@ngtools/webpack": { + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-11.0.7.tgz", + "integrity": "sha512-OWGiiDc7s4T53BBCY8tLkLUjgw44HrixW8Wh8e4thFH1eIUM0NHe087s/B5hDNu72W/GqK4IoBbhNQ2wiCR7qQ==", + "dev": true, + "requires": { + "@angular-devkit/core": "11.0.7", + "enhanced-resolve": "5.3.1", + "webpack-sources": "2.0.1" + } + }, + "@ngx-lite/nav-drawer": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/@ngx-lite/nav-drawer/-/nav-drawer-0.4.6.tgz", + "integrity": "sha512-b90i/t/m35pMKk2zymhv3zvjnfl/x6qOFVPAqXL6uw1b1mc+FcZkzxtEXRp/x9Ym20GLo3tgf/Es/Wc/LSkW0Q==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@ngx-lite/util": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@ngx-lite/util/-/util-0.0.0.tgz", + "integrity": "sha512-n1Y85KCpld5wIKp/izAfmLWuwwZT2F540xkjanq8f9mLy36Ol1MgQYruU8XrBrxKoAa04h43FJmMsoahoZq+/A==", + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + } + }, + "@npmcli/ci-detect": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz", + "integrity": "sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q==", + "dev": true + }, + "@npmcli/git": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.0.8.tgz", + "integrity": "sha512-LPnzyBZ+1p7+JzHVwwKycMF8M3lr1ze3wxGRnxn/QxJtk++Y3prSJQrdBDGCxJyRpFsup6J3lrRBVYBhJVrM8Q==", + "dev": true, + "requires": { + "@npmcli/promise-spawn": "^1.3.2", + "lru-cache": "^6.0.0", + "mkdirp": "^1.0.4", + "npm-pick-manifest": "^6.1.1", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^2.0.2" + }, + "dependencies": { + "hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "npm-package-arg": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.2.tgz", + "integrity": "sha512-6Eem455JsSMJY6Kpd3EyWE+n5hC+g9bSyHr9K9U2zqZb7+02+hObQ2c0+8iDk/mNF+8r1MhY44WypKJAkySIYA==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "semver": "^7.3.4", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-pick-manifest": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", + "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", + "dev": true, + "requires": { + "npm-install-checks": "^4.0.0", + "npm-normalize-package-bin": "^1.0.1", + "npm-package-arg": "^8.1.2", + "semver": "^7.3.4" + } + }, + "promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "requires": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "@npmcli/installed-package-contents": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", + "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", + "dev": true, + "requires": { + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "@npmcli/move-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", + "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "@npmcli/node-gyp": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.2.tgz", + "integrity": "sha512-yrJUe6reVMpktcvagumoqD9r08fH1iRo01gn1u0zoCApa9lnZGEigVKUd2hzsCId4gdtkZZIVscLhNxMECKgRg==", + "dev": true + }, + "@npmcli/promise-spawn": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", + "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", + "dev": true, + "requires": { + "infer-owner": "^1.0.4" + } + }, + "@npmcli/run-script": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.5.tgz", + "integrity": "sha512-NQspusBCpTjNwNRFMtz2C5MxoxyzlbuJ4YEhxAKrIonTiirKDtatsZictx9RgamQIx6+QuHMNmPl0wQdoESs9A==", + "dev": true, + "requires": { + "@npmcli/node-gyp": "^1.0.2", + "@npmcli/promise-spawn": "^1.3.2", + "infer-owner": "^1.0.4", + "node-gyp": "^7.1.0", + "read-package-json-fast": "^2.0.1" + }, + "dependencies": { + "read-package-json-fast": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.2.tgz", + "integrity": "sha512-5fyFUyO9B799foVk4n6ylcoAktG/FbE3jwRKxvwaeSrIunaoMc0u81dzXxjeAFKOce7O5KncdfwpGvvs6r5PsQ==", + "dev": true, + "requires": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + } + } + } + }, + "@schematics/angular": { + "version": "11.2.11", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-11.2.11.tgz", + "integrity": "sha512-Ii7KabU79Jg2zoU7qR9wFd81TOAePQ6jog7OhoTyE2aKpKyBZlHXA4qq1dJfV3GAE5H1JKVm0lRgGEFJLQitGg==", + "dev": true, + "requires": { + "@angular-devkit/core": "11.2.11", + "@angular-devkit/schematics": "11.2.11", + "jsonc-parser": "3.0.0" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "11.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.11.tgz", + "integrity": "sha512-6gFrpG0o00Y4kMU7cQeQ5fSlmXRvNlidylM3OfAvpj0qHoRKo1E3q9iVr4fW3oVZxK3fpCSN7RE5Myl5Y7mV0w==", + "dev": true, + "requires": { + "ajv": "6.12.6", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.3", + "source-map": "0.7.3" + } + } + } + }, + "@schematics/update": { + "version": "0.1102.11", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.1102.11.tgz", + "integrity": "sha512-SdQ/Zao+huxSFnKXFbf93EEExzyLy5y+BBs14n9uLwnhaFbd5jlH0xO8/Ui1H6oDuOycSRQdnl7gt3sUr8EbaQ==", + "dev": true, + "requires": { + "@angular-devkit/core": "11.2.11", + "@angular-devkit/schematics": "11.2.11", + "@yarnpkg/lockfile": "1.1.0", + "ini": "2.0.0", + "npm-package-arg": "^8.0.0", + "pacote": "11.2.4", + "semver": "7.3.4", + "semver-intersect": "1.4.0" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "11.2.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.11.tgz", + "integrity": "sha512-6gFrpG0o00Y4kMU7cQeQ5fSlmXRvNlidylM3OfAvpj0qHoRKo1E3q9iVr4fW3oVZxK3fpCSN7RE5Myl5Y7mV0w==", + "dev": true, + "requires": { + "ajv": "6.12.6", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.3", + "source-map": "0.7.3" + } + }, + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@sentry/angular": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@sentry/angular/-/angular-6.4.1.tgz", + "integrity": "sha512-lpbc1nA19SYKzaaYd/kn/xqvxI8oRForAR+lM1iE0yru/56ZrFKoUreqQQjCgtMD5aKfI9cT4VrtIq5PVkfOeA==", + "requires": { + "@sentry/browser": "6.4.1", + "@sentry/types": "6.4.1", + "@sentry/utils": "6.4.1", + "rxjs": "^6.6.0", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@sentry/browser": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-6.4.1.tgz", + "integrity": "sha512-3cDud6GWutnJqcnheIq0lPNTsUJbrRLevQ+g1YfawVXFUxfmmY2bOsGd/Mxq17LxYeBHgKTitXv3DU1bsQ+WBQ==", + "requires": { + "@sentry/core": "6.4.1", + "@sentry/types": "6.4.1", + "@sentry/utils": "6.4.1", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@sentry/core": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.4.1.tgz", + "integrity": "sha512-Lx13oTiP+Tjvm5VxulcCszNVd2S1wY4viSnr+ygq62ySVERR+t7uOZDSARZ0rZ259GwW6nkbMh9dDmD0d6VCGQ==", + "requires": { + "@sentry/hub": "6.4.1", + "@sentry/minimal": "6.4.1", + "@sentry/types": "6.4.1", + "@sentry/utils": "6.4.1", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@sentry/hub": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.4.1.tgz", + "integrity": "sha512-7IZRP5buDE6s/c3vWzzPR/ySE+8GUuHPgTEPiDCPOCWwUN11zXDafJDKkJqY3muJfebUKmC/JG67RyBx+XlnlQ==", + "requires": { + "@sentry/types": "6.4.1", + "@sentry/utils": "6.4.1", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@sentry/integrations": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-6.4.1.tgz", + "integrity": "sha512-3kw6NcrFGXW+qlfT112EkYt7jdFX55m9yJN5eCt7Iad59YzA8ji8Pio5ohy9Pl+OfYXlKRFOvnYPpZZn80UjlQ==", + "requires": { + "@sentry/types": "6.4.1", + "@sentry/utils": "6.4.1", + "localforage": "^1.8.1", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@sentry/minimal": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.4.1.tgz", + "integrity": "sha512-4x/PRbDZACCKJqjta9EkhiIMyGMf7VgBX13EEWEDVWLP7ymFukBuTr4ap/Tz9429kB/yXZuDGGMIZp/G618H3g==", + "requires": { + "@sentry/hub": "6.4.1", + "@sentry/types": "6.4.1", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@sentry/types": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.4.1.tgz", + "integrity": "sha512-sTu/GaLsLYk1AkAqpkMT4+4q665LtZjhV0hkgiTD4N3zPl5uSf1pCIzxPRYjOpe7NEANmWv8U4PaGKGtc2eMfA==" + }, + "@sentry/utils": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.4.1.tgz", + "integrity": "sha512-xJ1uVa5fvg23pXQfulvCIBb9pQ3p1awyd1PapK2AYi+wKjTuYl4B9edmhjRREEQEExznl/d2OVm78fRXLq7M9Q==", + "requires": { + "@sentry/types": "6.4.1", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@sinonjs/commons": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", + "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, + "@types/babel__core": { + "version": "7.1.12", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz", + "integrity": "sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", + "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", + "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", + "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/file-saver": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.1.tgz", + "integrity": "sha512-g1QUuhYVVAamfCifK7oB7G3aIl4BbOyzDOqVyUfEr4tfBKrXfeH+M+Tg7HKCXSrbzxYdhyCP7z9WbKo0R2hBCw==" + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "26.0.20", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", + "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", + "dev": true, + "requires": { + "jest-diff": "^26.0.0", + "pretty-format": "^26.0.0" + } + }, + "@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "12.19.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.9.tgz", + "integrity": "sha512-yj0DOaQeUrk3nJ0bd3Y5PeDRJ6W0r+kilosLA+dzF3dola/o9hxhMSg2sFvVcA2UHS5JSOsZp4S0c1OEXc4m1Q==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "@types/prettier": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.1.tgz", + "integrity": "sha512-DxZZbyMAM9GWEzXL+BMZROWz9oo6A9EilwwOMET2UVu2uZTqMWS5S69KVtuVKaRjCUpcrOXRalet86/OpG4kqw==", + "dev": true + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", + "dev": true + }, + "@types/selenium-webdriver": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", + "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", + "dev": true + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "@types/stack-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", + "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", + "dev": true + }, + "@types/webpack-sources": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.8.tgz", + "integrity": "sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@types/yargs": { + "version": "15.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", + "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", + "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + } + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + }, + "adjust-sourcemap-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz", + "integrity": "sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + } + }, + "adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true + }, + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "agentkeepalive": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", + "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "angular-ng-autocomplete": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/angular-ng-autocomplete/-/angular-ng-autocomplete-2.0.5.tgz", + "integrity": "sha512-mYALrzwc5eoFR5xz/diup5GDsxqXp3L707P4CkiBl5l01fKej0nyIDTQ+xXtZUK3spXIyfuOX0ypa9wTrgCP5A==" + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "app-root-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", + "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", + "dev": true + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, + "arity-n": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", + "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=", + "dev": true + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "axobject-query": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", + "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7" + } + }, + "babel-jest": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", + "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", + "dev": true, + "requires": { + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/babel__core": "^7.1.7", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", + "dev": true, + "requires": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", + "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", + "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^26.6.2", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "blocking-proxy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", + "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "dev": true + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "bootstrap": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.3.tgz", + "integrity": "sha512-o9ppKQioXGqhw8Z7mah6KdTYpNQY//tipnkxppWhPbiSWdD+1raYsnhwEZjkTHYbGee4cVQ0Rx65EhOY/HNLcQ==" + }, + "bowser": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" + } + }, + "browserstack": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", + "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", + "dev": true, + "requires": { + "https-proxy-agent": "^2.2.1" + } + }, + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "2.x" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "cacache": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", + "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", + "dev": true, + "requires": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001230", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001230.tgz", + "integrity": "sha512-5yBd5nWCBS+jWKTcHOzXwo5xzcj4ePE/yjtkZyUV1BTUmrBaA9MRGC+e7mxnqXSA90CmCA8L3eKLaSUkt099IQ==", + "dev": true + }, + "canonical-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", + "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", + "dev": true + }, + "capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "dev": true, + "requires": { + "rsvp": "^4.8.4" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "chokidar": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "circular-dependency-plugin": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz", + "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==", + "dev": true + }, + "cjs-module-lexer": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", + "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", + "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==", + "dev": true + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "codelyzer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-6.0.1.tgz", + "integrity": "sha512-cOyGQgMdhnRYtW2xrJUNrNYDjEgwQ+BrE2y93Bwz3h4DJ6vJRLfupemU5N3pbYsUlBHJf0u1j1UGk+NLW4d97g==", + "dev": true, + "requires": { + "@angular/compiler": "9.0.0", + "@angular/core": "9.0.0", + "app-root-path": "^3.0.0", + "aria-query": "^3.0.0", + "axobject-query": "2.0.2", + "css-selector-tokenizer": "^0.7.1", + "cssauron": "^1.4.0", + "damerau-levenshtein": "^1.0.4", + "rxjs": "^6.5.3", + "semver-dsl": "^1.0.1", + "source-map": "^0.5.7", + "sprintf-js": "^1.1.2", + "tslib": "^1.10.0", + "zone.js": "~0.10.3" + }, + "dependencies": { + "@angular/compiler": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz", + "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==", + "dev": true + }, + "@angular/core": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz", + "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", + "dev": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "color-string": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", + "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "compose-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", + "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", + "dev": true, + "requires": { + "arity-n": "^1.0.4" + } + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-webpack-plugin": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.2.1.tgz", + "integrity": "sha512-VH2ZTMIBsx4p++Lmpg77adZ0KUyM5gFR/9cuTrbneNnJlcQXUFvsNariPqq2dq2kV3F2skHiDGPQCyKWy1+U0Q==", + "dev": true, + "requires": { + "cacache": "^15.0.5", + "fast-glob": "^3.2.4", + "find-cache-dir": "^3.3.1", + "glob-parent": "^5.1.1", + "globby": "^11.0.1", + "loader-utils": "^2.0.0", + "normalize-path": "^3.0.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + } + } + }, + "core-js": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", + "dev": true + }, + "core-js-compat": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.1.tgz", + "integrity": "sha512-a16TLmy9NVD1rkjUGbwuyWkiDoN0FDpAwrfLONvHFQx0D9k7J9y0srwMT8QP/Z6HE3MIFaVynEeYwZwPX1o5RQ==", + "dev": true, + "requires": { + "browserslist": "^4.15.0", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "css-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-4.3.0.tgz", + "integrity": "sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg==", + "dev": true, + "requires": { + "camelcase": "^6.0.0", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^2.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.3", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.1", + "semver": "^7.3.2" + } + }, + "css-parse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", + "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", + "dev": true, + "requires": { + "css": "^2.0.0" + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "dev": true + }, + "cssauron": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", + "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", + "dev": true, + "requires": { + "through": "X.X.X" + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "cssnano-preset-default": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz", + "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.3", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + }, + "dependencies": { + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + } + } + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decimal.js": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", + "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "dependency-graph": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz", + "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", + "dev": true + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "detect-passive-events": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/detect-passive-events/-/detect-passive-events-1.0.5.tgz", + "integrity": "sha512-foW7Q35wwOCxVzW0xLf5XeB5Fhe7oyRgvkBYdiP9IWgLMzjqUqTvsJv9ymuEWGjY6AoDXD3OC294+Z9iuOw0QA==" + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "dev": true + } + } + }, + "dom7": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom7/-/dom7-3.0.0.tgz", + "integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==", + "requires": { + "ssr-window": "^3.0.0-alpha.1" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "requires": { + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true + } + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.741", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.741.tgz", + "integrity": "sha512-4i3T0cwnHo1O4Mnp9JniEco8bZiXoqbm3PhW5hv7uu8YLg35iajYrRnNyKFaN8/8SSTskU2hYqVTeYVPceSpUA==", + "dev": true + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "emittery": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", + "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "requires": { + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.3.1.tgz", + "integrity": "sha512-G1XD3MRGrGfNcf6Hg0LVZG7GIKcYkbfHa5QMxt1HDUTdYoXH0JR1xXyg+MaKLF73E9A27uWNVxvFivNRYeUB6w==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.0.0" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true + }, + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", + "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.10.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "dev": true + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "dev": true, + "requires": { + "original": "^1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "exec-sh": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", + "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==", + "dev": true + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "expect": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", + "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-styles": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dev": true, + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", + "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "fastq": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", + "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-loader": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.1.1.tgz", + "integrity": "sha512-Klt8C4BjWSXYQAfhpYYkG4qHNTna4toMHEbWrI5IuVoxbU6uiDKeKAP99R8mmbJi3lvewn/jQBOgU4+NS3tDQw==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", + "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", + "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true, + "optional": true + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hosted-git-info": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", + "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "html-entities": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", + "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + } + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "dev": true, + "requires": { + "postcss": "^7.0.14" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + } + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-bigint": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", + "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", + "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", + "dev": true + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-potential-custom-element-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", + "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=", + "dev": true + }, + "is-regex": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-string": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", + "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", + "dev": true + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "dev": true, + "requires": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" + }, + "dependencies": { + "jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "dev": true + } + } + }, + "jasminewd2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", + "dev": true + }, + "jest": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", + "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", + "dev": true, + "requires": { + "@jest/core": "^26.6.3", + "import-local": "^3.0.2", + "jest-cli": "^26.6.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "dev": true, + "requires": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "jest-changed-files": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", + "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "execa": "^4.0.0", + "throat": "^5.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "jest-config": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", + "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^26.6.3", + "@jest/types": "^26.6.2", + "babel-jest": "^26.6.3", + "chalk": "^4.0.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "jest-environment-jsdom": "^26.6.2", + "jest-environment-node": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-jasmine2": "^26.6.3", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-docblock": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", + "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", + "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-environment-jsdom": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", + "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", + "dev": true, + "requires": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2", + "jsdom": "^16.4.0" + } + }, + "jest-environment-node": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", + "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", + "dev": true, + "requires": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + } + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + }, + "jest-haste-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", + "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^26.0.0", + "jest-serializer": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-jasmine2": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", + "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", + "dev": true, + "requires": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^26.6.2", + "is-generator-fn": "^2.0.0", + "jest-each": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2", + "throat": "^5.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-leak-detector": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", + "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", + "dev": true, + "requires": { + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + } + }, + "jest-matcher-utils": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", + "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-message-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", + "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2", + "slash": "^3.0.0", + "stack-utils": "^2.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-mock": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", + "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*" + } + }, + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true + }, + "jest-preset-angular": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-8.3.2.tgz", + "integrity": "sha512-mdETK9E5tkCJPnPzB7NLXDB7CULbUEwcrA7eKU7WdR0u7ZIJqP0pvQxK5Cc70KBsOEaiwJK6LSGJm7aeqjSYYA==", + "dev": true, + "requires": { + "pretty-format": "26.x", + "ts-jest": "26.x" + } + }, + "jest-regex-util": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", + "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", + "dev": true + }, + "jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", + "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-snapshot": "^26.6.2" + } + }, + "jest-runner": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", + "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", + "dev": true, + "requires": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.7.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-docblock": "^26.0.0", + "jest-haste-map": "^26.6.2", + "jest-leak-detector": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "source-map-support": "^0.5.6", + "throat": "^5.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-runtime": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", + "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", + "dev": true, + "requires": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/globals": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^0.6.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^15.4.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "jest-serializer": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", + "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + } + }, + "jest-snapshot": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", + "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.0.0", + "chalk": "^4.0.0", + "expect": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-haste-map": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "natural-compare": "^1.4.0", + "pretty-format": "^26.6.2", + "semver": "^7.3.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", + "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "micromatch": "^4.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-validate": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", + "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "camelcase": "^6.0.0", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "leven": "^3.1.0", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-watcher": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", + "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", + "dev": true, + "requires": { + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^26.6.2", + "string-length": "^4.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-worker": { + "version": "26.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.5.0.tgz", + "integrity": "sha512-kTw66Dn4ZX7WpjZ7T/SUDgRhapFRKWmisVAF0Rv4Fu8SLFD7eLbqpLvbxVqYhSgaWa7I+bW7pHnbyfNsH6stug==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsdom": { + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz", + "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==", + "dev": true, + "requires": { + "abab": "^2.0.3", + "acorn": "^7.1.1", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.2.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.0", + "domexception": "^2.0.1", + "escodegen": "^1.14.1", + "html-encoding-sniffer": "^2.0.1", + "is-potential-custom-element-name": "^1.0.0", + "nwsapi": "^2.2.0", + "parse5": "5.1.1", + "request": "^2.88.2", + "request-promise-native": "^1.0.8", + "saxes": "^5.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^3.0.1", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0", + "ws": "^7.2.3", + "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true + }, + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "ws": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", + "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", + "dev": true + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jszip": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", + "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", + "dev": true, + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "karma-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.0.3.tgz", + "integrity": "sha512-atDvLQqvPcLxhED0cmXYdsPMCQuh6Asa9FMZW1bhNqlVEhJoB9qyZ2BY1gu7D/rr5GLGb5QzYO4siQskxaWP/g==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.1", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.0", + "minimatch": "^3.0.4" + } + }, + "karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "requires": { + "source-map-support": "^0.5.5" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "klona": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz", + "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==", + "dev": true + }, + "less": { + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/less/-/less-3.12.2.tgz", + "integrity": "sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q==", + "dev": true, + "requires": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "native-request": "^1.0.5", + "source-map": "~0.6.0", + "tslib": "^1.10.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "less-loader": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-7.0.2.tgz", + "integrity": "sha512-7MKlgjnkCf63E3Lv6w2FvAEgLMx3d/tNBExITcanAq7ys5U8VPWT3F6xcRjYmdNfkoQ9udoVFb1r2azSiTnD6w==", + "dev": true, + "requires": { + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "license-webpack-plugin": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.3.1.tgz", + "integrity": "sha512-yhqTmlYIEpZWA122lf6E0G8+rkn0AzoQ1OpzUKKs/lXUqG1plmGnwmkuuPlfggzJR5y6DLOdot/Tv00CC51CeQ==", + "dev": true, + "requires": { + "@types/webpack-sources": "^0.1.5", + "webpack-sources": "^1.2.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + } + } + }, + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "requires": { + "immediate": "~3.0.5" + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "localforage": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.9.0.tgz", + "integrity": "sha512-rR1oyNrKulpe+VM9cYmcFn6tsHuokyVHFaCM3+osEmxaHTbEk8oQu6eGDfS6DQLWi/N67XRmB8ECG37OES368g==", + "requires": { + "lie": "3.1.1" + }, + "dependencies": { + "lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", + "requires": { + "immediate": "~3.0.5" + } + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log-symbols": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", + "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "dev": true, + "requires": { + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "make-fetch-happen": { + "version": "8.0.14", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", + "integrity": "sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ==", + "dev": true, + "requires": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.0.5", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^5.0.0", + "ssri": "^8.0.0" + }, + "dependencies": { + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "requires": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + } + } + } + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "dev": true, + "requires": { + "tmpl": "1.0.x" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "dev": true + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dev": true, + "requires": { + "mime-db": "1.44.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.2.1.tgz", + "integrity": "sha512-G3yw7/TQaPfkuiR73MDcyiqhyP8SnbmLhUbpC76H+wtQxA6wfKhMCQOCb6wnPK0dQbjORAeOILQqEesg4/wF7A==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-fetch": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.3.tgz", + "integrity": "sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ==", + "dev": true, + "requires": { + "encoding": "^0.1.12", + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "requires": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "native-request": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.0.8.tgz", + "integrity": "sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag==", + "dev": true, + "optional": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "ng-lazyload-image": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/ng-lazyload-image/-/ng-lazyload-image-9.1.0.tgz", + "integrity": "sha512-ZdfCXMTaehfzxcSRRThpz9YZbEA+8LPA086Od6JiylrGj0yNM7Aq830A1x6NE/M8o2VuVq93emH9m8T6SFBHlA==", + "requires": { + "tslib": "^2.0.0" + } + }, + "ng-sidebar": { + "version": "9.4.2", + "resolved": "https://registry.npmjs.org/ng-sidebar/-/ng-sidebar-9.4.2.tgz", + "integrity": "sha512-8KmEQYFhn4S5LDjRDXBhDfCgLchJEj+ClBdiTCAQoRjX8vdh85hmKIGN7aBsh1HNOXKN3rzDu0qmd90193/P3Q==" + }, + "ngx-toastr": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-13.2.1.tgz", + "integrity": "sha512-UAzp7/xWK9IXA2LsOmhpaaIGCqscvJokoQpBNpAMrjEkDeSlFf8PWQAuQY795KW0mJb3qF9UG/s23nsXfMYKmg==", + "requires": { + "tslib": "^2.0.0" + } + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true + }, + "node-gyp": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", + "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", + "dev": true, + "requires": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.3", + "nopt": "^5.0.0", + "npmlog": "^4.1.2", + "request": "^2.88.2", + "rimraf": "^3.0.2", + "semver": "^7.3.2", + "tar": "^6.0.2", + "which": "^2.0.2" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true + }, + "node-notifier": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", + "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", + "dev": true, + "optional": true, + "requires": { + "growly": "^1.3.0", + "is-wsl": "^2.2.0", + "semver": "^7.3.2", + "shellwords": "^0.1.1", + "uuid": "^8.3.0", + "which": "^2.0.2" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "optional": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "optional": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "node-releases": { + "version": "1.1.72", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.72.tgz", + "integrity": "sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==", + "dev": true + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true + }, + "npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-install-checks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "dev": true, + "requires": { + "semver": "^7.1.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "npm-package-arg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.0.tgz", + "integrity": "sha512-/ep6QDxBkm9HvOhOg0heitSd7JHA1U7y1qhhlRlteYYAi9Pdb/ZV7FW5aHpkrpM8+P+4p/jjR8zCyKPBMBjSig==", + "dev": true, + "requires": { + "hosted-git-info": "^3.0.6", + "semver": "^7.0.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-packlist": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.1.5.tgz", + "integrity": "sha512-KCfK3Vi2F+PH1klYauoQzg81GQ8/GGjQRKYY6tRnpQUPKTs/1gBZSRWtTEd7jGdSn1LZL7gpAmJT+BcS55k2XQ==", + "dev": true, + "requires": { + "glob": "^7.1.6", + "ignore-walk": "^3.0.3", + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz", + "integrity": "sha512-ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw==", + "dev": true, + "requires": { + "npm-install-checks": "^4.0.0", + "npm-package-arg": "^8.0.0", + "semver": "^7.0.0" + } + }, + "npm-registry-fetch": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz", + "integrity": "sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA==", + "dev": true, + "requires": { + "@npmcli/ci-detect": "^1.0.0", + "lru-cache": "^6.0.0", + "make-fetch-happen": "^8.0.9", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", + "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", + "dev": true + }, + "object-is": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", + "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", + "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.2" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.3.0.tgz", + "integrity": "sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==", + "dev": true, + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + }, + "dependencies": { + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + } + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "ora": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.1.0.tgz", + "integrity": "sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.4.0", + "is-interactive": "^1.0.0", + "log-symbols": "^4.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-each-series": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", + "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pacote": { + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.2.4.tgz", + "integrity": "sha512-GfTeVQGJ6WyBQbQD4t3ocHbyOmTQLmWjkCKSZPmKiGFKYKNUaM5U2gbLzUW8WG1XmS9yQFnsTFA0k3o1+q4klQ==", + "dev": true, + "requires": { + "@npmcli/git": "^2.0.1", + "@npmcli/installed-package-contents": "^1.0.5", + "@npmcli/promise-spawn": "^1.2.0", + "@npmcli/run-script": "^1.3.0", + "cacache": "^15.0.5", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "minipass": "^3.1.3", + "mkdirp": "^1.0.3", + "npm-package-arg": "^8.0.1", + "npm-packlist": "^2.1.4", + "npm-pick-manifest": "^6.0.0", + "npm-registry-fetch": "^9.0.0", + "promise-retry": "^1.1.1", + "read-package-json-fast": "^1.1.3", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.1.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "tar": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", + "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + } + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + }, + "dependencies": { + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + } + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "parse5-html-rewriting-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", + "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", + "dev": true, + "requires": { + "parse5": "^6.0.1", + "parse5-sax-parser": "^6.0.1" + } + }, + "parse5-sax-parser": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", + "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", + "dev": true, + "requires": { + "parse5": "^6.0.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", + "dev": true, + "requires": { + "ts-pnp": "^1.1.6" + } + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "dev": true, + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-import": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-loader": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-4.0.4.tgz", + "integrity": "sha512-pntA9zIR14drQo84yGTjQJg1m7T0DkXR4vXYHBngiRZdJtEeCrojL6lOpqUanMzG375lIJbT4Yug85zC/AJWGw==", + "dev": true, + "requires": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.2" + }, + "dependencies": { + "cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "import-fresh": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "parse-json": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "dev": true, + "requires": { + "postcss": "^7.0.5" + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", + "dev": true, + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + } + }, + "postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "dev": true, + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz", + "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "dependencies": { + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true + } + } + }, + "prompts": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", + "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "protractor": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", + "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", + "dev": true, + "requires": { + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "^3.0.0", + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "q": "1.4.1", + "saucelabs": "^1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "2.1.0", + "webdriver-manager": "^12.1.7", + "yargs": "^15.3.1" + }, + "dependencies": { + "@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "webdriver-manager": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.7.tgz", + "integrity": "sha512-XINj6b8CYuUYC93SG3xPkxlyUc3IJbD6Vvo75CVGuG9uzsefDzWQrhz0Lq8vbPxtb4d63CZdYophF8k8Or/YiA==", + "dev": true, + "requires": { + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + } + } + }, + "raw-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", + "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "react-is": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", + "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", + "dev": true + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "requires": { + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "read-package-json-fast": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-1.2.2.tgz", + "integrity": "sha512-39DbPJjkltEzfXJXB6D8/Ir3GFOU2YbSKa2HaB/Y3nKrc/zY+0XrALpID6/13ezWyzqvOHrBbR4t4cjQuTdBVQ==", + "dev": true, + "requires": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + } + } + }, + "request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "dev": true, + "requires": { + "lodash": "^4.17.19" + } + }, + "request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "dev": true, + "requires": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "requires": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "resolve-url-loader": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz", + "integrity": "sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ==", + "dev": true, + "requires": { + "adjust-sourcemap-loader": "3.0.0", + "camelcase": "5.3.1", + "compose-function": "3.0.3", + "convert-source-map": "1.7.0", + "es6-iterator": "2.0.3", + "loader-utils": "1.2.3", + "postcss": "7.0.21", + "rework": "1.0.1", + "rework-visit": "1.0.0", + "source-map": "0.6.1" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "postcss": { + "version": "7.0.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", + "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rework": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", + "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", + "dev": true, + "requires": { + "convert-source-map": "^0.3.3", + "css": "^2.0.0" + }, + "dependencies": { + "convert-source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", + "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=", + "dev": true + } + } + }, + "rework-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", + "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=", + "dev": true + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rollup": { + "version": "2.32.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.32.1.tgz", + "integrity": "sha512-Op2vWTpvK7t6/Qnm1TTh7VjEZZkN8RWgf0DHbkKzQBwNf748YhXbozHVefqpPp/Fuyk/PQPAnYsBxAEtlMvpUw==", + "dev": true, + "requires": { + "fsevents": "~2.1.2" + } + }, + "rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "dev": true + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-parallel": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "dev": true + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "rxjs-compat": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs-compat/-/rxjs-compat-6.6.7.tgz", + "integrity": "sha512-szN4fK+TqBPOFBcBcsR0g2cmTTUF/vaFEOZNuSdfU8/pGFnNmmn2u8SystYXG1QMrjOPBc6XTKHMVfENDf6hHw==" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sane": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "dev": true, + "requires": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "sass": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.27.0.tgz", + "integrity": "sha512-0gcrER56OkzotK/GGwgg4fPrKuiFlPNitO7eUJ18Bs+/NBlofJfMxmxqpqJxjae9vu0Wq8TZzrSyxZal00WDig==", + "dev": true, + "requires": { + "chokidar": ">=2.0.0 <4.0.0" + } + }, + "sass-loader": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-10.0.5.tgz", + "integrity": "sha512-2LqoNPtKkZq/XbXNQ4C64GFEleSEHKv6NPSI+bMC/l+jpEXGJhiRYkAQToO24MR7NU4JRY2RpLpJ/gjo2Uf13w==", + "dev": true, + "requires": { + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "neo-async": "^2.6.2", + "schema-utils": "^3.0.0", + "semver": "^7.3.2" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "saucelabs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", + "dev": true, + "requires": { + "https-proxy-agent": "^2.2.1" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "requires": { + "xmlchars": "^2.2.0" + } + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "requires": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.1" + } + } + } + }, + "selfsigned": { + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "dev": true, + "requires": { + "node-forge": "^0.10.0" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "semver-dsl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", + "dev": true, + "requires": { + "semver": "^5.3.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "semver-intersect": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", + "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", + "dev": true, + "requires": { + "semver": "^5.0.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + } + } + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sockjs": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", + "dev": true, + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" + } + }, + "sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "dev": true, + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "socks": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", + "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "dev": true, + "requires": { + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", + "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4", + "socks": "^2.3.3" + }, + "dependencies": { + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + } + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + }, + "source-map-loader": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-1.1.2.tgz", + "integrity": "sha512-bjf6eSENOYBX4JZDfl9vVLNsGAQ6Uz90fLmOazcmMcyDYOBFsGxPNn83jXezWLY9bJsVAo1ObztxPcV8HAbjVA==", + "dev": true, + "requires": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.2", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "source-map": "^0.6.1", + "whatwg-mimetype": "^2.3.0" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "dev": true + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "speed-measure-webpack-plugin": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.3.tgz", + "integrity": "sha512-2ljD4Ch/rz2zG3HsLsnPfp23osuPBS0qPuz9sGpkNXTN1Ic4M+W9xB8l8rS8ob2cO4b1L+WTJw/0AJwWYVgcxQ==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssr-window": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-3.0.0.tgz", + "integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==" + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "string-length": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz", + "integrity": "sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "style-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz", + "integrity": "sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "stylus": { + "version": "0.54.8", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", + "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", + "dev": true, + "requires": { + "css-parse": "~2.0.0", + "debug": "~3.1.0", + "glob": "^7.1.6", + "mkdirp": "~1.0.4", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "semver": "^6.3.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "stylus-loader": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-4.3.1.tgz", + "integrity": "sha512-apDYJEM5ZpOAWbWInWcsbtI8gHNr/XYVcSY/tWqOUPt7M5tqhtwXVsAkgyiVjhuvw2Yrjq474a9H+g4d047Ebw==", + "dev": true, + "requires": { + "fast-glob": "^3.2.4", + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "normalize-path": "^3.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", + "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + } + }, + "swiper": { + "version": "6.5.8", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-6.5.8.tgz", + "integrity": "sha512-SW8bNkJf8jCB4VdZsA1EZ3c87xshHS4f83YZVqT9ppkDKgspOfk9/I6dTtKGJFlsZpuE1S5X0LUAa7+QEaC0fQ==", + "requires": { + "dom7": "^3.0.0", + "ssr-window": "^3.0.0" + } + }, + "symbol-observable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-3.0.0.tgz", + "integrity": "sha512-6tDOXSHiVjuCaasQSWTmHUWn4PuG7qa3+1WT031yTc/swT7+rLiw3GOrFxaH1E3lLP09dH3bVuVDf2gK5rxG3Q==", + "dev": true + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "tapable": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", + "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", + "dev": true + }, + "tar": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", + "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "terser": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.7.tgz", + "integrity": "sha512-lJbKdfxWvjpV330U4PBZStCT9h3N9A4zZVA5Y4k9sCWXknrpdyxi1oMsRKLmQ/YDMDxSBKIh88v0SkdhdqX06w==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" + } + }, + "terser-webpack-plugin": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz", + "integrity": "sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==", + "dev": true, + "requires": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.5.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "source-map": "^0.6.1", + "terser": "^5.3.4", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + } + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", + "dev": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true + }, + "ts-jest": { + "version": "26.5.1", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.1.tgz", + "integrity": "sha512-G7Rmo3OJMvlqE79amJX8VJKDiRcd7/r61wh9fnvvG8cAjhA9edklGw/dCxRSQmfZ/z8NDums5srSVgwZos1qfg==", + "dev": true, + "requires": { + "@types/jest": "26.x", + "bs-logger": "0.x", + "buffer-from": "1.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^26.1.0", + "json5": "2.x", + "lodash": "4.x", + "make-error": "1.x", + "mkdirp": "1.x", + "semver": "7.x", + "yargs-parser": "20.x" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "yargs-parser": { + "version": "20.2.5", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.5.tgz", + "integrity": "sha512-jYRGS3zWy20NtDtK2kBgo/TlAoy5YUuhD9/LZ7z7W4j1Fdw2cqD0xEEclf8fxc8xjD6X5Qr+qQQwCEsP8iRiYg==", + "dev": true + } + } + }, + "ts-node": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz", + "integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==", + "dev": true, + "requires": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.6", + "yn": "^3.0.0" + } + }, + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "dev": true + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + }, + "tslint": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", + "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.3", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.13.0", + "tsutils": "^2.29.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universal-analytics": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz", + "integrity": "sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "request": "^2.88.2", + "uuid": "^3.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-parse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", + "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "v8-to-istanbul": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", + "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "dev": true, + "requires": { + "makeerror": "1.0.x" + } + }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, + "watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webdriver-js-extender": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", + "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", + "dev": true, + "requires": { + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true + }, + "webpack": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz", + "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.3.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "enhanced-resolve": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, + "terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "dev": true + } + } + }, + "webpack-dev-server": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + } + } + }, + "webpack-merge": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.2.0.tgz", + "integrity": "sha512-QBglJBg5+lItm3/Lopv8KDDK01+hjdg2azEwi/4vKJ8ZmGPdtJsTpjtNNOW3a4WiqzXdCATtTudOZJngE7RKkA==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, + "webpack-sources": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.0.1.tgz", + "integrity": "sha512-A9oYz7ANQBK5EN19rUXbvNgfdfZf5U2gP0769OXsj9CvYkCR6OHOsd6OKyEy4H38GGxpsQPKIL83NC64QY6Xmw==", + "dev": true, + "requires": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "webpack-subresource-integrity": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.5.1.tgz", + "integrity": "sha512-uekbQ93PZ9e7BFB8Hl9cFIVYQyQqiXp2ExKk9Zv+qZfH/zHXHrCFAfw1VW0+NqWbTWrs/HnuDrto3+tiPXh//Q==", + "dev": true, + "requires": { + "webpack-sources": "^1.3.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + } + } + }, + "websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "dev": true, + "requires": { + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "whatwg-url": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", + "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^6.1.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "worker-plugin": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-5.0.0.tgz", + "integrity": "sha512-AXMUstURCxDD6yGam2r4E34aJg6kW85IiaeX72hi+I1cxyaMUtrvVY6sbfpGKAj5e7f68Acl62BjQF5aOOx2IQ==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yaml": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + } + } + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + }, + "zone.js": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", + "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==" + } + } +} diff --git a/UI/Web/package.json b/UI/Web/package.json new file mode 100644 index 000000000..bafaa04c5 --- /dev/null +++ b/UI/Web/package.json @@ -0,0 +1,78 @@ +{ + "name": "kavita-webui", + "version": "0.4.2", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "prod": "ng build --prod", + "explore": "ng build --stats-json && webpack-bundle-analyzer ../kavita/API/wwwroot/stats.json", + "test": "jest", + "test:watch": "jest --watch", + "test:coverage": "jest --coverage", + "lint": "ng lint", + "e2e": "ng e2e" + }, + "private": true, + "dependencies": { + "@angular-slider/ngx-slider": "^2.0.3", + "@angular/animations": "~11.0.0", + "@angular/common": "~11.0.0", + "@angular/compiler": "~11.0.0", + "@angular/core": "~11.0.0", + "@angular/forms": "~11.0.0", + "@angular/localize": "~11.0.0", + "@angular/platform-browser": "~11.0.0", + "@angular/platform-browser-dynamic": "~11.0.0", + "@angular/router": "~11.0.0", + "@fortawesome/fontawesome-free": "^5.15.1", + "@ng-bootstrap/ng-bootstrap": "^9.1.0", + "@ngx-lite/nav-drawer": "^0.4.6", + "@ngx-lite/util": "0.0.0", + "@sentry/angular": "^6.4.1", + "@sentry/integrations": "^6.4.1", + "@types/file-saver": "^2.0.1", + "angular-ng-autocomplete": "^2.0.5", + "bootstrap": "^4.5.0", + "bowser": "^2.11.0", + "file-saver": "^2.0.5", + "ng-lazyload-image": "^9.1.0", + "ng-sidebar": "^9.4.2", + "ngx-toastr": "^13.2.1", + "rxjs": "~6.6.0", + "swiper": "^6.5.8", + "tslib": "^2.0.0", + "zone.js": "~0.10.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~0.1100.0", + "@angular/cli": "^11.2.11", + "@angular/compiler-cli": "~11.0.0", + "@types/jest": "^26.0.20", + "@types/node": "^12.11.1", + "codelyzer": "^6.0.0", + "jest": "^26.6.3", + "jest-preset-angular": "^8.3.2", + "karma-coverage": "~2.0.3", + "protractor": "~7.0.0", + "ts-node": "~8.3.0", + "tslint": "^6.1.3", + "typescript": "~4.0.2" + }, + "jest": { + "preset": "jest-preset-angular", + "setupFilesAfterEnv": [ + "/setupJest.ts" + ], + "testPathIgnorePatterns": [ + "/node_modules/", + "/dist/" + ], + "globals": { + "ts-jest": { + "tsConfig": "/tsconfig.spec.json", + "stringifyContentPathRegex": "\\.html$" + } + } + } +} diff --git a/UI/Web/setupJest.ts b/UI/Web/setupJest.ts new file mode 100644 index 000000000..bbe6ca22b --- /dev/null +++ b/UI/Web/setupJest.ts @@ -0,0 +1,19 @@ +import 'jest-preset-angular'; + + +/* global mocks for jsdom */ +const mock = () => { + let storage: { [key: string]: string } = {}; + return { + getItem: (key: string) => (key in storage ? storage[key] : null), + setItem: (key: string, value: string) => (storage[key] = value || ''), + removeItem: (key: string) => delete storage[key], + clear: () => (storage = {}) + }; +}; + +Object.defineProperty(window, 'localStorage', { value: mock() }); +Object.defineProperty(window, 'sessionStorage', { value: mock() }); +Object.defineProperty(window, 'getComputedStyle', { + value: () => ['-webkit-appearance'], +}); diff --git a/UI/Web/src/app/_guards/admin.guard.ts b/UI/Web/src/app/_guards/admin.guard.ts new file mode 100644 index 000000000..d59b8643c --- /dev/null +++ b/UI/Web/src/app/_guards/admin.guard.ts @@ -0,0 +1,28 @@ +import { Injectable } from '@angular/core'; +import { CanActivate } from '@angular/router'; +import { ToastrService } from 'ngx-toastr'; +import { Observable } from 'rxjs'; +import { map } from 'rxjs/operators'; +import { User } from '../_models/user'; +import { AccountService } from '../_services/account.service'; + +@Injectable({ + providedIn: 'root' +}) +export class AdminGuard implements CanActivate { + constructor(private accountService: AccountService, private toastr: ToastrService) {} + + canActivate(): Observable { + // this automaticallys subs due to being router guard + return this.accountService.currentUser$.pipe( + map((user: User) => { + if (this.accountService.hasAdminRole(user)) { + return true; + } + + this.toastr.error('You are not authorized to view this page.'); + return false; + }) + ); + } +} diff --git a/UI/Web/src/app/_guards/auth.guard.ts b/UI/Web/src/app/_guards/auth.guard.ts new file mode 100644 index 000000000..4d4aae01b --- /dev/null +++ b/UI/Web/src/app/_guards/auth.guard.ts @@ -0,0 +1,27 @@ +import { Injectable } from '@angular/core'; +import { CanActivate, Router } from '@angular/router'; +import { ToastrService } from 'ngx-toastr'; +import { Observable } from 'rxjs'; +import { map } from 'rxjs/operators'; +import { User } from '../_models/user'; +import { AccountService } from '../_services/account.service'; + +@Injectable({ + providedIn: 'root' +}) +export class AuthGuard implements CanActivate { + constructor(private accountService: AccountService, private router: Router, private toastr: ToastrService) {} + + canActivate(): Observable { + return this.accountService.currentUser$.pipe( + map((user: User) => { + if (user) { + return true; + } + this.toastr.error('You are not authorized to view this page.'); + this.router.navigateByUrl('/home'); + return false; + }) + ); + } +} diff --git a/UI/Web/src/app/_guards/library-access.guard.ts b/UI/Web/src/app/_guards/library-access.guard.ts new file mode 100644 index 000000000..611eb556d --- /dev/null +++ b/UI/Web/src/app/_guards/library-access.guard.ts @@ -0,0 +1,17 @@ +import { Injectable } from '@angular/core'; +import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router'; +import { Observable } from 'rxjs'; +import { MemberService } from '../_services/member.service'; + +@Injectable({ + providedIn: 'root' +}) +export class LibraryAccessGuard implements CanActivate { + + constructor(private memberService: MemberService) {} + + canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable { + const libraryId = parseInt(state.url.split('library/')[1], 10); + return this.memberService.hasLibraryAccess(libraryId); + } +} diff --git a/UI/Web/src/app/_interceptors/error.interceptor.ts b/UI/Web/src/app/_interceptors/error.interceptor.ts new file mode 100644 index 000000000..941bd14b9 --- /dev/null +++ b/UI/Web/src/app/_interceptors/error.interceptor.ts @@ -0,0 +1,121 @@ +import { Injectable, OnDestroy } from '@angular/core'; +import { + HttpRequest, + HttpHandler, + HttpEvent, + HttpInterceptor +} from '@angular/common/http'; +import { Observable, throwError } from 'rxjs'; +import { Router } from '@angular/router'; +import { ToastrService } from 'ngx-toastr'; +import { catchError, take } from 'rxjs/operators'; +import { AccountService } from '../_services/account.service'; +import { environment } from 'src/environments/environment'; + +@Injectable() +export class ErrorInterceptor implements HttpInterceptor { + + constructor(private router: Router, private toastr: ToastrService, private accountService: AccountService) {} + + + intercept(request: HttpRequest, next: HttpHandler): Observable> { + return next.handle(request).pipe( + catchError(error => { + if (error === undefined || error === null) { + return throwError(error); + } + + if (!environment.production) { + console.error('error:', error); + } + + switch (error.status) { + case 400: + this.handleValidationError(error); + break; + case 401: + this.handleAuthError(error); + break; + case 404: + this.handleNotFound(error); + break; + case 500: + this.handleServerException(error); + break; + default: + // Don't throw multiple Something undexpected went wrong + if (this.toastr.previousToastMessage !== 'Something unexpected went wrong.') { + this.toastr.error('Something unexpected went wrong.'); + } + + // If we are not on no-connection, redirect there and save current url so when we refersh, we redirect back there + if (this.router.url !== '/no-connection') { + localStorage.setItem('kavita--no-connection-url', this.router.url); + this.router.navigateByUrl('/no-connection'); + } + break; + } + return throwError(error); + }) + ); + } + + private handleValidationError(error: any) { + // This 400 can also be a bad request + if (Array.isArray(error.error)) { + const modalStateErrors: any[] = []; + if (error.error.length > 0 && error.error[0].hasOwnProperty('message')) { + error.error.forEach((issue: {status: string, details: string, message: string}) => { + modalStateErrors.push(issue.details); + }); + } else { + error.error.forEach((issue: {code: string, description: string}) => { + modalStateErrors.push(issue.description); + }); + } + throw modalStateErrors.flat(); + } else if (error.error.errors) { + // Validation error + const modalStateErrors = []; + for (const key in error.error.errors) { + if (error.error.errors[key]) { + modalStateErrors.push(error.error.errors[key]); + } + } + throw modalStateErrors.flat(); + } else { + console.error('error:', error); + if (error.statusText === 'Bad Request') { + this.toastr.error(error.error, error.status); + } else { + this.toastr.error(error.statusText === 'OK' ? error.error : error.statusText, error.status); + } + } + } + + private handleNotFound(error: any) { + this.toastr.error('That url does not exist.'); + } + + private handleServerException(error: any) { + console.error('500 error:', error); + const err = error.error; + if (err.hasOwnProperty('message') && err.message.trim() !== '') { + this.toastr.error(err.message); + } else { + this.toastr.error('There was an unknown critical error.'); + } + } + + private handleAuthError(error: any) { + // NOTE: Signin has error.error or error.statusText available. + // if statement is due to http/2 spec issue: https://github.com/angular/angular/issues/23334 + this.accountService.currentUser$.pipe(take(1)).subscribe(user => { + if (user) { + this.toastr.error(error.statusText === 'OK' ? 'Unauthorized' : error.statusText, error.status); + } + this.accountService.logout(); + }); + + } +} diff --git a/UI/Web/src/app/_interceptors/jwt.interceptor.ts b/UI/Web/src/app/_interceptors/jwt.interceptor.ts new file mode 100644 index 000000000..014a7ca41 --- /dev/null +++ b/UI/Web/src/app/_interceptors/jwt.interceptor.ts @@ -0,0 +1,36 @@ +import { Injectable } from '@angular/core'; +import { + HttpRequest, + HttpHandler, + HttpEvent, + HttpInterceptor +} from '@angular/common/http'; +import { Observable } from 'rxjs'; +import { AccountService } from '../_services/account.service'; +import { User } from '../_models/user'; +import { take } from 'rxjs/operators'; + +@Injectable() +export class JwtInterceptor implements HttpInterceptor { + + constructor(private accountService: AccountService) {} + + intercept(request: HttpRequest, next: HttpHandler): Observable> { + let currentUser: User; + + // Take 1 means we don't have to unsubscribe because we take 1 then complete + this.accountService.currentUser$.pipe(take(1)).subscribe(user => { + currentUser = user; + + if (currentUser) { + request = request.clone({ + setHeaders: { + Authorization: `Bearer ${currentUser.token}` + } + }); + } + }); + + return next.handle(request); + } +} diff --git a/UI/Web/src/app/_modals/edit-collection-tags/edit-collection-tags.component.html b/UI/Web/src/app/_modals/edit-collection-tags/edit-collection-tags.component.html new file mode 100644 index 000000000..e2bdd5898 --- /dev/null +++ b/UI/Web/src/app/_modals/edit-collection-tags/edit-collection-tags.component.html @@ -0,0 +1,53 @@ + + + + diff --git a/UI/Web/src/app/_modals/edit-collection-tags/edit-collection-tags.component.scss b/UI/Web/src/app/_modals/edit-collection-tags/edit-collection-tags.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/UI/Web/src/app/_modals/edit-collection-tags/edit-collection-tags.component.ts b/UI/Web/src/app/_modals/edit-collection-tags/edit-collection-tags.component.ts new file mode 100644 index 000000000..c28d1a7bd --- /dev/null +++ b/UI/Web/src/app/_modals/edit-collection-tags/edit-collection-tags.component.ts @@ -0,0 +1,121 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { FormControl, FormGroup } from '@angular/forms'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { ToastrService } from 'ngx-toastr'; +import { forkJoin } from 'rxjs'; +import { ConfirmService } from 'src/app/shared/confirm.service'; +import { SelectionModel } from 'src/app/typeahead/typeahead.component'; +import { CollectionTag } from 'src/app/_models/collection-tag'; +import { Pagination } from 'src/app/_models/pagination'; +import { Series } from 'src/app/_models/series'; +import { CollectionTagService } from 'src/app/_services/collection-tag.service'; +import { LibraryService } from 'src/app/_services/library.service'; +import { SeriesService } from 'src/app/_services/series.service'; + +@Component({ + selector: 'app-edit-collection-tags', + templateUrl: './edit-collection-tags.component.html', + styleUrls: ['./edit-collection-tags.component.scss'] +}) +export class EditCollectionTagsComponent implements OnInit { + + @Input() tag!: CollectionTag; + series: Array = []; + selections!: SelectionModel; + isLoading: boolean = true; + + pagination!: Pagination; + selectAll: boolean = true; + libraryNames!: any; + collectionTagForm!: FormGroup; + + + constructor(public modal: NgbActiveModal, private seriesService: SeriesService, + private collectionService: CollectionTagService, private toastr: ToastrService, + private confirmSerivce: ConfirmService, private libraryService: LibraryService) { } + + ngOnInit(): void { + if (this.pagination == undefined) { + this.pagination = {totalPages: 1, totalItems: 200, itemsPerPage: 200, currentPage: 0}; + } + this.collectionTagForm = new FormGroup({ + summary: new FormControl(this.tag.summary, []), + }); + this.loadSeries(); + } + + onPageChange(pageNum: number) { + this.pagination.currentPage = pageNum; + this.loadSeries(); + } + + toggleAll() { + this.selectAll = !this.selectAll; + this.series.forEach(s => this.selections.toggle(s, this.selectAll)); + } + + loadSeries() { + forkJoin([ + this.seriesService.getSeriesForTag(this.tag.id, this.pagination.currentPage, this.pagination.itemsPerPage), + this.libraryService.getLibraryNames() + ]).subscribe(results => { + const series = results[0]; + + this.pagination = series.pagination; + this.series = series.result; + this.selections = new SelectionModel(true, this.series); + this.isLoading = false; + + this.libraryNames = results[1]; + }); + } + + handleSelection(item: Series) { + this.selections.toggle(item); + const numberOfSelected = this.selections.selected().length; + if (numberOfSelected == 0) { + this.selectAll = false; + } else if (numberOfSelected == this.series.length) { + this.selectAll = true; + } + } + + togglePromotion() { + const originalPromotion = this.tag.promoted; + this.tag.promoted = !this.tag.promoted; + this.collectionService.updateTag(this.tag).subscribe(res => { + this.toastr.success('Tag updated successfully'); + }, err => { + this.tag.promoted = originalPromotion; + }); + } + + libraryName(libraryId: number) { + return this.libraryNames[libraryId]; + } + + close() { + this.modal.close(false); + } + + async save() { + const unselectedIds = this.selections.unselected().map(s => s.id); + const tag: CollectionTag = {...this.tag}; + tag.summary = this.collectionTagForm.get('summary')?.value; + + if (unselectedIds.length == this.series.length && !await this.confirmSerivce.confirm('Warning! No series are selected, saving will delete the tag. Are you sure you want to continue?')) { + return; + } + + this.collectionService.updateSeriesForTag(tag, this.selections.unselected().map(s => s.id)).subscribe(() => { + this.toastr.success('Tag updated'); + this.modal.close(true); + }); + } + + get someSelected() { + const selected = this.selections.selected(); + return (selected.length != this.series.length && selected.length != 0); + } + +} diff --git a/UI/Web/src/app/_modals/edit-series-modal/edit-series-modal.component.html b/UI/Web/src/app/_modals/edit-series-modal/edit-series-modal.component.html new file mode 100644 index 000000000..614880bb3 --- /dev/null +++ b/UI/Web/src/app/_modals/edit-series-modal/edit-series-modal.component.html @@ -0,0 +1,169 @@ +
+ + + +
+ + diff --git a/UI/Web/src/app/_modals/edit-series-modal/edit-series-modal.component.scss b/UI/Web/src/app/_modals/edit-series-modal/edit-series-modal.component.scss new file mode 100644 index 000000000..afb1e98eb --- /dev/null +++ b/UI/Web/src/app/_modals/edit-series-modal/edit-series-modal.component.scss @@ -0,0 +1,3 @@ +.scrollable-modal { + height: 600px; +} \ No newline at end of file diff --git a/UI/Web/src/app/_modals/edit-series-modal/edit-series-modal.component.ts b/UI/Web/src/app/_modals/edit-series-modal/edit-series-modal.component.ts new file mode 100644 index 000000000..b5272f47f --- /dev/null +++ b/UI/Web/src/app/_modals/edit-series-modal/edit-series-modal.component.ts @@ -0,0 +1,148 @@ +import { Component, Input, OnDestroy, OnInit } from '@angular/core'; +import { FormBuilder, FormControl, FormGroup } from '@angular/forms'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { forkJoin, Subject } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; +import { UtilityService } from 'src/app/shared/_services/utility.service'; +import { TypeaheadSettings } from 'src/app/typeahead/typeahead-settings'; +import { Chapter } from 'src/app/_models/chapter'; +import { CollectionTag } from 'src/app/_models/collection-tag'; +import { Series } from 'src/app/_models/series'; +import { SeriesMetadata } from 'src/app/_models/series-metadata'; +import { CollectionTagService } from 'src/app/_services/collection-tag.service'; +import { ImageService } from 'src/app/_services/image.service'; +import { LibraryService } from 'src/app/_services/library.service'; +import { SeriesService } from 'src/app/_services/series.service'; + +@Component({ + selector: 'app-edit-series-modal', + templateUrl: './edit-series-modal.component.html', + styleUrls: ['./edit-series-modal.component.scss'] +}) +export class EditSeriesModalComponent implements OnInit, OnDestroy { + + @Input() series!: Series; + seriesVolumes: any[] = []; + isLoadingVolumes = false; + + isCollapsed = true; + volumeCollapsed: any = {}; + tabs = ['General', 'Fix Match', 'Cover Image', 'Info']; + active = this.tabs[0]; + editSeriesForm!: FormGroup; + libraryName: string | undefined = undefined; + private readonly onDestroy = new Subject(); + + settings: TypeaheadSettings = new TypeaheadSettings(); + tags: CollectionTag[] = []; + metadata!: SeriesMetadata; + + constructor(public modal: NgbActiveModal, + private seriesService: SeriesService, + public utilityService: UtilityService, + private fb: FormBuilder, + public imageService: ImageService, + private libraryService: LibraryService, + private collectionService: CollectionTagService) { } + + ngOnInit(): void { + + this.libraryService.getLibraryNames().pipe(takeUntil(this.onDestroy)).subscribe(names => { + this.libraryName = names[this.series.libraryId]; + }); + + this.setupTypeaheadSettings(); + + + + this.editSeriesForm = this.fb.group({ + id: new FormControl(this.series.id, []), + summary: new FormControl(this.series.summary, []), + name: new FormControl(this.series.name, []), + localizedName: new FormControl(this.series.localizedName, []), + sortName: new FormControl(this.series.sortName, []), + rating: new FormControl(this.series.userRating, []), + + genres: new FormControl('', []), + author: new FormControl('', []), + artist: new FormControl('', []), + + coverImageIndex: new FormControl(0, []) + }); + + this.seriesService.getMetadata(this.series.id).subscribe(metadata => { + if (metadata) { + this.metadata = metadata; + this.settings.savedData = metadata.tags; + } + }); + + this.isLoadingVolumes = true; + this.seriesService.getVolumes(this.series.id).subscribe(volumes => { + this.seriesVolumes = volumes; + this.isLoadingVolumes = false; + + volumes.forEach(v => { + this.volumeCollapsed[v.name] = true; + }); + this.seriesVolumes.forEach(vol => { + vol.volumeFiles = vol.chapters?.sort(this.utilityService.sortChapters).map((c: Chapter) => c.files.map((f: any) => { + f.chapter = c.number; + return f; + })).flat(); + }); + }); + } + + ngOnDestroy() { + this.onDestroy.next(); + this.onDestroy.complete(); + } + + setupTypeaheadSettings() { + this.settings.minCharacters = 0; + this.settings.multiple = true; + this.settings.id = 'collections'; + this.settings.unique = true; + this.settings.addIfNonExisting = true; + this.settings.fetchFn = (filter: string) => this.fetchCollectionTags(filter); + this.settings.addTransformFn = ((title: string) => { + return {id: 0, title: title, promoted: false, coverImage: '', summary: '' }; + }); + this.settings.compareFn = (options: CollectionTag[], filter: string) => { + const f = filter.toLowerCase(); + return options.filter(m => m.title.toLowerCase() === f); + } + } + + close() { + this.modal.close({success: false, series: undefined}); + } + + fetchCollectionTags(filter: string = '') { + return this.collectionService.search(filter); + } + + formatChapterNumber(chapter: Chapter) { + if (chapter.number === '0') { + return '1'; + } + return chapter.number; + } + + save() { + // TODO: In future (once locking or metadata implemented), do a converstion to updateSeriesDto + + forkJoin([ + this.seriesService.updateSeries(this.editSeriesForm.value), + this.seriesService.updateMetadata(this.metadata, this.tags) + ]).subscribe(results => { + this.modal.close({success: true, series: this.editSeriesForm.value}); + }); + } + + updateCollections(tags: CollectionTag[]) { + this.tags = tags; + } + +} diff --git a/UI/Web/src/app/_modals/review-series-modal/review-series-modal.component.html b/UI/Web/src/app/_modals/review-series-modal/review-series-modal.component.html new file mode 100644 index 000000000..b6fbedd6c --- /dev/null +++ b/UI/Web/src/app/_modals/review-series-modal/review-series-modal.component.html @@ -0,0 +1,32 @@ +
+ + + +
+ + diff --git a/UI/Web/src/app/_modals/review-series-modal/review-series-modal.component.scss b/UI/Web/src/app/_modals/review-series-modal/review-series-modal.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/UI/Web/src/app/_modals/review-series-modal/review-series-modal.component.ts b/UI/Web/src/app/_modals/review-series-modal/review-series-modal.component.ts new file mode 100644 index 000000000..c50db026b --- /dev/null +++ b/UI/Web/src/app/_modals/review-series-modal/review-series-modal.component.ts @@ -0,0 +1,41 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { FormControl, FormGroup } from '@angular/forms'; +import { NgbModal, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { Series } from 'src/app/_models/series'; +import { SeriesService } from 'src/app/_services/series.service'; + +@Component({ + selector: 'app-review-series-modal', + templateUrl: './review-series-modal.component.html', + styleUrls: ['./review-series-modal.component.scss'] +}) +export class ReviewSeriesModalComponent implements OnInit { + + @Input() series!: Series; + reviewGroup!: FormGroup; + + constructor(public modal: NgbActiveModal, private seriesService: SeriesService) {} + + ngOnInit(): void { + this.reviewGroup = new FormGroup({ + review: new FormControl(this.series.userReview, []), + rating: new FormControl(this.series.userRating, []) + }); + } + + close() { + this.modal.close({success: false, review: null}); + } + + clearRating() { + this.reviewGroup.get('rating')?.setValue(0); + } + + save() { + const model = this.reviewGroup.value; + this.seriesService.updateRating(this.series?.id, model.rating, model.review).subscribe(() => { + this.modal.close({success: true, review: model.review, rating: model.rating}); + }); + } + +} diff --git a/UI/Web/src/app/_models/bookmark.ts b/UI/Web/src/app/_models/bookmark.ts new file mode 100644 index 000000000..801cc399a --- /dev/null +++ b/UI/Web/src/app/_models/bookmark.ts @@ -0,0 +1,5 @@ +export interface Bookmark { + pageNum: number; + chapterId: number; + bookScrollId?: string; +} \ No newline at end of file diff --git a/UI/Web/src/app/_models/chapter.ts b/UI/Web/src/app/_models/chapter.ts new file mode 100644 index 000000000..d3971b320 --- /dev/null +++ b/UI/Web/src/app/_models/chapter.ts @@ -0,0 +1,14 @@ +import { MangaFile } from './manga-file'; + +export interface Chapter { + id: number; + range: string; + number: string; + files: Array; + coverImage: string; + pages: number; + volumeId: number; + pagesRead: number; // Attached for the given user when requesting from API + isSpecial: boolean; + title: string; +} diff --git a/UI/Web/src/app/_models/client-info.ts b/UI/Web/src/app/_models/client-info.ts new file mode 100644 index 000000000..c4a5cd6b1 --- /dev/null +++ b/UI/Web/src/app/_models/client-info.ts @@ -0,0 +1,12 @@ +import { DetailsVersion } from "./details-version"; + + +export interface ClientInfo { + os: DetailsVersion, + browser: DetailsVersion, + platformType: string, + kavitaUiVersion: string, + screenResolution: string; + + collectedAt?: Date; +} diff --git a/UI/Web/src/app/_models/collection-tag.ts b/UI/Web/src/app/_models/collection-tag.ts new file mode 100644 index 000000000..564aa9e1e --- /dev/null +++ b/UI/Web/src/app/_models/collection-tag.ts @@ -0,0 +1,7 @@ +export interface CollectionTag { + id: number; + title: string; + promoted: boolean; + coverImage: string; + summary: string; +} \ No newline at end of file diff --git a/UI/Web/src/app/_models/details-version.ts b/UI/Web/src/app/_models/details-version.ts new file mode 100644 index 000000000..10ce38263 --- /dev/null +++ b/UI/Web/src/app/_models/details-version.ts @@ -0,0 +1,4 @@ +export interface DetailsVersion { + name: string; + version: string; +} \ No newline at end of file diff --git a/UI/Web/src/app/_models/in-progress-chapter.ts b/UI/Web/src/app/_models/in-progress-chapter.ts new file mode 100644 index 000000000..1fd6133d2 --- /dev/null +++ b/UI/Web/src/app/_models/in-progress-chapter.ts @@ -0,0 +1,14 @@ +//TODO: Refactor this name to something better +export interface InProgressChapter { + id: number; + range: string; + number: string; + pages: number; + volumeId: number; + pagesRead: number; + seriesId: number; + seriesName: string; + coverImage: string; + libraryId: number; + libraryName: string; +} diff --git a/UI/Web/src/app/_models/library.ts b/UI/Web/src/app/_models/library.ts new file mode 100644 index 000000000..f4998747a --- /dev/null +++ b/UI/Web/src/app/_models/library.ts @@ -0,0 +1,15 @@ +export enum LibraryType { + Manga = 0, + Comic = 1, + Book = 2, + MangaImages = 3, + ComicImages = 4 +} + +export interface Library { + id: number; + name: string; + coverImage: string; + type: LibraryType; + folders: string[]; +} \ No newline at end of file diff --git a/UI/Web/src/app/_models/manga-file.ts b/UI/Web/src/app/_models/manga-file.ts new file mode 100644 index 000000000..159656807 --- /dev/null +++ b/UI/Web/src/app/_models/manga-file.ts @@ -0,0 +1,7 @@ +import { MangaFormat } from './manga-format'; + +export interface MangaFile { + filePath: string; + pages: number; + format: MangaFormat; +} diff --git a/UI/Web/src/app/_models/manga-format.ts b/UI/Web/src/app/_models/manga-format.ts new file mode 100644 index 000000000..21fd7d450 --- /dev/null +++ b/UI/Web/src/app/_models/manga-format.ts @@ -0,0 +1,6 @@ +export enum MangaFormat { + IMAGE = 0, + ARCHIVE = 1, + UNKNOWN = 2, + BOOK = 3 +} \ No newline at end of file diff --git a/UI/Web/src/app/_models/member.ts b/UI/Web/src/app/_models/member.ts new file mode 100644 index 000000000..0b8f17423 --- /dev/null +++ b/UI/Web/src/app/_models/member.ts @@ -0,0 +1,10 @@ +import { Library } from './library'; + +export interface Member { + username: string; + lastActive: string; // datetime + created: string; // datetime + isAdmin: boolean; + roles: string[]; + libraries: Library[]; +} \ No newline at end of file diff --git a/UI/Web/src/app/_models/pagination.ts b/UI/Web/src/app/_models/pagination.ts new file mode 100644 index 000000000..c007c528a --- /dev/null +++ b/UI/Web/src/app/_models/pagination.ts @@ -0,0 +1,11 @@ +export interface Pagination { + currentPage: number; + itemsPerPage: number; + totalItems: number; + totalPages: number; +} + +export class PaginatedResult { + result!: T; + pagination!: Pagination; +} diff --git a/UI/Web/src/app/_models/person.ts b/UI/Web/src/app/_models/person.ts new file mode 100644 index 000000000..a8a60436d --- /dev/null +++ b/UI/Web/src/app/_models/person.ts @@ -0,0 +1,10 @@ +export enum PersonRole { + Other = 0, + Author = 1, + Artist = 2 +} + +export interface Person { + name: string; + role: PersonRole; +} \ No newline at end of file diff --git a/UI/Web/src/app/_models/preferences/page-split-option.ts b/UI/Web/src/app/_models/preferences/page-split-option.ts new file mode 100644 index 000000000..ed977a7bf --- /dev/null +++ b/UI/Web/src/app/_models/preferences/page-split-option.ts @@ -0,0 +1,5 @@ +export enum PageSplitOption { + SplitLeftToRight = 0, + SplitRightToLeft = 1, + NoSplit = 2 +} diff --git a/UI/Web/src/app/_models/preferences/preferences.ts b/UI/Web/src/app/_models/preferences/preferences.ts new file mode 100644 index 000000000..b36160b9c --- /dev/null +++ b/UI/Web/src/app/_models/preferences/preferences.ts @@ -0,0 +1,30 @@ +import { PageSplitOption } from './page-split-option'; +import { READER_MODE } from './reader-mode'; +import { ReadingDirection } from './reading-direction'; +import { ScalingOption } from './scaling-option'; + +export interface Preferences { + // Manga Reader + readingDirection: ReadingDirection; + scalingOption: ScalingOption; + pageSplitOption: PageSplitOption; + readerMode: READER_MODE; + autoCloseMenu: boolean; + + // Book Reader + bookReaderDarkMode: boolean; + bookReaderMargin: number; + bookReaderLineSpacing: number; + bookReaderFontSize: number; + bookReaderFontFamily: string; + bookReaderTapToPaginate: boolean; + bookReaderReadingDirection: ReadingDirection; + + // Global + siteDarkMode: boolean; +} + +export const readingDirections = [{text: 'Left to Right', value: ReadingDirection.LeftToRight}, {text: 'Right to Left', value: ReadingDirection.RightToLeft}]; +export const scalingOptions = [{text: 'Automatic', value: ScalingOption.Automatic}, {text: 'Fit to Height', value: ScalingOption.FitToHeight}, {text: 'Fit to Width', value: ScalingOption.FitToWidth}, {text: 'Original', value: ScalingOption.Original}]; +export const pageSplitOptions = [{text: 'Right to Left', value: PageSplitOption.SplitRightToLeft}, {text: 'Left to Right', value: PageSplitOption.SplitLeftToRight}, {text: 'No Split', value: PageSplitOption.NoSplit}]; +export const readingModes = [{text: 'Left to Right', value: READER_MODE.MANGA_LR}, {text: 'Up to Down', value: READER_MODE.MANGA_UD}/*, {text: 'Webtoon', value: READER_MODE.WEBTOON}*/]; diff --git a/UI/Web/src/app/_models/preferences/reader-mode.ts b/UI/Web/src/app/_models/preferences/reader-mode.ts new file mode 100644 index 000000000..3e3e16c96 --- /dev/null +++ b/UI/Web/src/app/_models/preferences/reader-mode.ts @@ -0,0 +1,14 @@ +export enum READER_MODE { + /** + * Manga default left/right to page + */ + MANGA_LR = 0, + /** + * Manga up and down to page + */ + MANGA_UD = 1, + /** + * Webtoon reading (scroll) with optional areas to tap + */ + WEBTOON = 2 +} \ No newline at end of file diff --git a/UI/Web/src/app/_models/preferences/reading-direction.ts b/UI/Web/src/app/_models/preferences/reading-direction.ts new file mode 100644 index 000000000..48fab8ee1 --- /dev/null +++ b/UI/Web/src/app/_models/preferences/reading-direction.ts @@ -0,0 +1,4 @@ +export enum ReadingDirection { + LeftToRight = 0, + RightToLeft = 1 +} diff --git a/UI/Web/src/app/_models/preferences/scaling-option.ts b/UI/Web/src/app/_models/preferences/scaling-option.ts new file mode 100644 index 000000000..60d7d4e68 --- /dev/null +++ b/UI/Web/src/app/_models/preferences/scaling-option.ts @@ -0,0 +1,6 @@ +export enum ScalingOption { + FitToHeight = 0, + FitToWidth = 1, + Original = 2, + Automatic = 3 +} diff --git a/UI/Web/src/app/_models/search-result.ts b/UI/Web/src/app/_models/search-result.ts new file mode 100644 index 000000000..1a1fe9aa6 --- /dev/null +++ b/UI/Web/src/app/_models/search-result.ts @@ -0,0 +1,9 @@ +export interface SearchResult { + seriesId: number; + libraryId: number; + libraryName: string; + name: string; + originalName: string; + sortName: string; + coverImage: string; // byte64 encoded +} diff --git a/UI/Web/src/app/_models/series-metadata.ts b/UI/Web/src/app/_models/series-metadata.ts new file mode 100644 index 000000000..4cba7848f --- /dev/null +++ b/UI/Web/src/app/_models/series-metadata.ts @@ -0,0 +1,10 @@ +import { CollectionTag } from "./collection-tag"; +import { Person } from "./person"; + +export interface SeriesMetadata { + publisher: string; + genres: Array; + tags: Array; + persons: Array; + seriesId: number; +} \ No newline at end of file diff --git a/UI/Web/src/app/_models/series.ts b/UI/Web/src/app/_models/series.ts new file mode 100644 index 000000000..73b843bfe --- /dev/null +++ b/UI/Web/src/app/_models/series.ts @@ -0,0 +1,18 @@ +import { Volume } from './volume'; + +export interface Series { + id: number; + name: string; + originalName: string; // This is not shown to user + localizedName: string; + sortName: string; + summary: string; + coverImage: string; + volumes: Volume[]; + pages: number; // Total pages in series + pagesRead: number; // Total pages the logged in user has read + userRating: number; // User rating + userReview: string; // User review + libraryId: number; + created: string; // DateTime when entity was created +} diff --git a/UI/Web/src/app/_models/user.ts b/UI/Web/src/app/_models/user.ts new file mode 100644 index 000000000..56caf5c33 --- /dev/null +++ b/UI/Web/src/app/_models/user.ts @@ -0,0 +1,9 @@ +import { Preferences } from './preferences/preferences'; + +// This interface is only used for login and storing/retreiving JWT from local storage +export interface User { + username: string; + token: string; + roles: string[]; + preferences: Preferences; +} \ No newline at end of file diff --git a/UI/Web/src/app/_models/volume.ts b/UI/Web/src/app/_models/volume.ts new file mode 100644 index 000000000..c318f56ac --- /dev/null +++ b/UI/Web/src/app/_models/volume.ts @@ -0,0 +1,13 @@ +import { Chapter } from './chapter'; + +export interface Volume { + id: number; + number: number; + name: string; + coverImage: string; + created: string; + lastModified: string; + pages: number; + pagesRead: number; + chapters?: Array; +} diff --git a/UI/Web/src/app/_services/account.service.ts b/UI/Web/src/app/_services/account.service.ts new file mode 100644 index 000000000..f3847a524 --- /dev/null +++ b/UI/Web/src/app/_services/account.service.ts @@ -0,0 +1,126 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable, OnDestroy } from '@angular/core'; +import { Observable, ReplaySubject, Subject } from 'rxjs'; +import { map, takeUntil } from 'rxjs/operators'; +import { environment } from 'src/environments/environment'; +import { Preferences } from '../_models/preferences/preferences'; +import { User } from '../_models/user'; +import * as Sentry from "@sentry/angular"; +import { Router } from '@angular/router'; + +@Injectable({ + providedIn: 'root' +}) +export class AccountService implements OnDestroy { + + baseUrl = environment.apiUrl; + userKey = 'kavita-user'; + currentUser: User | undefined; + + // Stores values, when someone subscribes gives (1) of last values seen. + private currentUserSource = new ReplaySubject(1); + currentUser$ = this.currentUserSource.asObservable(); + + private readonly onDestroy = new Subject(); + + constructor(private httpClient: HttpClient, private router: Router) {} + + ngOnDestroy(): void { + this.onDestroy.next(); + this.onDestroy.complete(); + } + + hasAdminRole(user: User) { + return user && user.roles.includes('Admin'); + } + + hasDownloadRole(user: User) { + return user && user.roles.includes('Download'); + } + + getRoles() { + return this.httpClient.get(this.baseUrl + 'account/roles'); + } + + login(model: any): Observable { + return this.httpClient.post(this.baseUrl + 'account/login', model).pipe( + map((response: User) => { + const user = response; + if (user) { + this.setCurrentUser(user); + } + }), + takeUntil(this.onDestroy) + ); + } + + setCurrentUser(user?: User) { + if (user) { + user.roles = []; + const roles = this.getDecodedToken(user.token).role; + Array.isArray(roles) ? user.roles = roles : user.roles.push(roles); + Sentry.setContext('admin', {'admin': this.hasAdminRole(user)}); + Sentry.configureScope(scope => { + scope.setUser({ + username: user.username + }); + }); + + localStorage.setItem(this.userKey, JSON.stringify(user)); + } + + this.currentUserSource.next(user); + this.currentUser = user; + } + + logout() { + localStorage.removeItem(this.userKey); + this.currentUserSource.next(undefined); + this.currentUser = undefined; + // Upon logout, perform redirection + this.router.navigateByUrl('/login'); + } + + register(model: {username: string, password: string, isAdmin?: boolean}) { + if (!model.hasOwnProperty('isAdmin')) { + model.isAdmin = false; + } + + return this.httpClient.post(this.baseUrl + 'account/register', model).pipe( + map((user: User) => { + return user; + }), + takeUntil(this.onDestroy) + ); + } + + getDecodedToken(token: string) { + return JSON.parse(atob(token.split('.')[1])); + } + + resetPassword(username: string, password: string) { + return this.httpClient.post(this.baseUrl + 'account/reset-password', {username, password}, {responseType: 'json' as 'text'}); + } + + updatePreferences(userPreferences: Preferences) { + return this.httpClient.post(this.baseUrl + 'users/update-preferences', userPreferences).pipe(map(settings => { + if (this.currentUser !== undefined || this.currentUser != null) { + this.currentUser.preferences = settings; + this.setCurrentUser(this.currentUser); + } + return settings; + }), takeUntil(this.onDestroy)); + } + + getUserFromLocalStorage(): User | undefined { + + const userString = localStorage.getItem(this.userKey); + + if (userString) { + return JSON.parse(userString) + }; + + return undefined; + } + +} diff --git a/UI/Web/src/app/_services/action-factory.service.ts b/UI/Web/src/app/_services/action-factory.service.ts new file mode 100644 index 000000000..2e0db2452 --- /dev/null +++ b/UI/Web/src/app/_services/action-factory.service.ts @@ -0,0 +1,202 @@ +import { Injectable } from '@angular/core'; +import { Chapter } from '../_models/chapter'; +import { CollectionTag } from '../_models/collection-tag'; +import { Library } from '../_models/library'; +import { Series } from '../_models/series'; +import { Volume } from '../_models/volume'; +import { AccountService } from './account.service'; + +export enum Action { + MarkAsRead = 0, + MarkAsUnread = 1, + ScanLibrary = 2, + Delete = 3, + Edit = 4, + Info = 5, + RefreshMetadata = 6, + Download = 7 +} + +export interface ActionItem { + title: string; + action: Action; + callback: (action: Action, data: T) => void; + +} + +@Injectable({ + providedIn: 'root' +}) +export class ActionFactoryService { + + libraryActions: Array> = []; + + seriesActions: Array> = []; + + volumeActions: Array> = []; + + chapterActions: Array> = []; + + collectionTagActions: Array> = []; + + isAdmin = false; + hasDownloadRole = false; + + constructor(private accountService: AccountService) { + this.accountService.currentUser$.subscribe(user => { + if (user) { + this.isAdmin = this.accountService.hasAdminRole(user); + this.hasDownloadRole = this.accountService.hasDownloadRole(user); + } else { + this._resetActions(); + return; // If user is logged out, we don't need to do anything + } + + this._resetActions(); + + if (this.isAdmin) { + this.collectionTagActions.push({ + action: Action.Edit, + title: 'Edit', + callback: this.dummyCallback + }); + + this.seriesActions.push({ + action: Action.ScanLibrary, + title: 'Scan Series', + callback: this.dummyCallback + }); + + this.seriesActions.push({ + action: Action.RefreshMetadata, + title: 'Refresh Metadata', + callback: this.dummyCallback + }); + + this.seriesActions.push({ + action: Action.Delete, + title: 'Delete', + callback: this.dummyCallback + }); + + this.seriesActions.push({ + action: Action.Edit, + title: 'Edit', + callback: this.dummyCallback + }); + + this.libraryActions.push({ + action: Action.ScanLibrary, + title: 'Scan Library', + callback: this.dummyCallback + }); + + this.libraryActions.push({ + action: Action.RefreshMetadata, + title: 'Refresh Metadata', + callback: this.dummyCallback + }); + } + + if (this.hasDownloadRole || this.isAdmin) { + this.volumeActions.push({ + action: Action.Download, + title: 'Download', + callback: this.dummyCallback + }); + + this.chapterActions.push({ + action: Action.Download, + title: 'Download', + callback: this.dummyCallback + }); + } + }); + } + + getLibraryActions(callback: (action: Action, library: Library) => void) { + this.libraryActions.forEach(action => action.callback = callback); + return this.libraryActions; + } + + getSeriesActions(callback: (action: Action, series: Series) => void) { + this.seriesActions.forEach(action => action.callback = callback); + return this.seriesActions; + } + + getVolumeActions(callback: (action: Action, volume: Volume) => void) { + this.volumeActions.forEach(action => action.callback = callback); + return this.volumeActions; + } + + getChapterActions(callback: (action: Action, chapter: Chapter) => void) { + this.chapterActions.forEach(action => action.callback = callback); + return this.chapterActions; + } + + getCollectionTagActions(callback: (action: Action, collectionTag: CollectionTag) => void) { + this.collectionTagActions.forEach(action => action.callback = callback); + return this.collectionTagActions; + } + + dummyCallback(action: Action, data: any) {} + + _resetActions() { + this.libraryActions = []; + + this.collectionTagActions = []; + + this.seriesActions = [ + { + action: Action.MarkAsRead, + title: 'Mark as Read', + callback: this.dummyCallback + }, + { + action: Action.MarkAsUnread, + title: 'Mark as Unread', + callback: this.dummyCallback + } + ]; + + this.volumeActions = [ + { + action: Action.MarkAsRead, + title: 'Mark as Read', + callback: this.dummyCallback + }, + { + action: Action.MarkAsUnread, + title: 'Mark as Unread', + callback: this.dummyCallback + } + ]; + + this.chapterActions = [ + { + action: Action.MarkAsRead, + title: 'Mark as Read', + callback: this.dummyCallback + }, + { + action: Action.MarkAsUnread, + title: 'Mark as Unread', + callback: this.dummyCallback + } + ]; + + this.volumeActions.push({ + action: Action.Info, + title: 'Info', + callback: this.dummyCallback + }); + + this.chapterActions.push({ + action: Action.Info, + title: 'Info', + callback: this.dummyCallback + }); + + + } +} diff --git a/UI/Web/src/app/_services/action.service.ts b/UI/Web/src/app/_services/action.service.ts new file mode 100644 index 000000000..78e5d9f83 --- /dev/null +++ b/UI/Web/src/app/_services/action.service.ts @@ -0,0 +1,199 @@ +import { Injectable, OnDestroy } from '@angular/core'; +import { ToastrService } from 'ngx-toastr'; +import { forkJoin, Subject } from 'rxjs'; +import { take, takeUntil } from 'rxjs/operators'; +import { Chapter } from '../_models/chapter'; +import { Library } from '../_models/library'; +import { Series } from '../_models/series'; +import { Volume } from '../_models/volume'; +import { LibraryService } from './library.service'; +import { ReaderService } from './reader.service'; +import { SeriesService } from './series.service'; + +export type LibraryActionCallback = (library: Partial) => void; +export type SeriesActionCallback = (series: Series) => void; +export type VolumeActionCallback = (volume: Volume) => void; +export type ChapterActionCallback = (chapter: Chapter) => void; + +/** + * Responsible for executing actions + */ +@Injectable({ + providedIn: 'root' +}) +export class ActionService implements OnDestroy { + + private readonly onDestroy = new Subject(); + + constructor(private libraryService: LibraryService, private seriesService: SeriesService, + private readerService: ReaderService, private toastr: ToastrService) { } + + ngOnDestroy() { + this.onDestroy.next(); + this.onDestroy.complete(); + } + + /** + * Request a file scan for a given Library + * @param library Partial Library, must have id and name populated + * @param callback Optional callback to perform actions after API completes + * @returns + */ + scanLibrary(library: Partial, callback?: LibraryActionCallback) { + if (!library.hasOwnProperty('id') || library.id === undefined) { + return; + } + this.libraryService.scan(library?.id).pipe(take(1)).subscribe((res: any) => { + this.toastr.success('Scan started for ' + library.name); + if (callback) { + callback(library); + } + }); + } + + /** + * Request a refresh of Metadata for a given Library + * @param library Partial Library, must have id and name populated + * @param callback Optional callback to perform actions after API completes + * @returns + */ + refreshMetadata(library: Partial, callback?: LibraryActionCallback) { + if (!library.hasOwnProperty('id') || library.id === undefined) { + return; + } + + this.libraryService.refreshMetadata(library?.id).pipe(take(1)).subscribe((res: any) => { + this.toastr.success('Scan started for ' + library.name); + if (callback) { + callback(library); + } + }); + } + + /** + * Mark a series as read; updates the series pagesRead + * @param series Series, must have id and name populated + * @param callback Optional callback to perform actions after API completes + */ + markSeriesAsRead(series: Series, callback?: SeriesActionCallback) { + this.seriesService.markRead(series.id).pipe(take(1)).subscribe(res => { + series.pagesRead = series.pages; + this.toastr.success(series.name + ' is now read'); + if (callback) { + callback(series); + } + }); + } + + /** + * Mark a series as unread; updates the series pagesRead + * @param series Series, must have id and name populated + * @param callback Optional callback to perform actions after API completes + */ + markSeriesAsUnread(series: Series, callback?: SeriesActionCallback) { + this.seriesService.markUnread(series.id).pipe(take(1)).subscribe(res => { + series.pagesRead = 0; + this.toastr.success(series.name + ' is now unread'); + if (callback) { + callback(series); + } + }); + } + + /** + * Start a file scan for a Series (currently just does the library not the series directly) + * @param series Series, must have libraryId and name populated + * @param callback Optional callback to perform actions after API completes + */ + scanSeries(series: Series, callback?: SeriesActionCallback) { + this.seriesService.scan(series.libraryId, series.id).pipe(take(1)).subscribe((res: any) => { + this.toastr.success('Scan started for ' + series.name); + if (callback) { + callback(series); + } + }); + } + + /** + * Start a metadata refresh for a Series + * @param series Series, must have libraryId, id and name populated + * @param callback Optional callback to perform actions after API completes + */ + refreshMetdata(series: Series, callback?: SeriesActionCallback) { + this.seriesService.refreshMetadata(series).pipe(take(1)).subscribe((res: any) => { + this.toastr.success('Refresh started for ' + series.name); + if (callback) { + callback(series); + } + }); + } + + /** + * Mark all chapters and the volume as Read + * @param seriesId Series Id + * @param volume Volume, should have id, chapters and pagesRead populated + * @param callback Optional callback to perform actions after API completes + */ + markVolumeAsRead(seriesId: number, volume: Volume, callback?: VolumeActionCallback) { + this.readerService.markVolumeRead(seriesId, volume.id).pipe(take(1)).subscribe(() => { + volume.pagesRead = volume.pages; + volume.chapters?.forEach(c => c.pagesRead = c.pages); + this.toastr.success('Marked as Read'); + + if (callback) { + callback(volume); + } + }); + } + + /** + * Mark all chapters and the volume as unread + * @param seriesId Series Id + * @param volume Volume, should have id, chapters and pagesRead populated + * @param callback Optional callback to perform actions after API completes + */ + markVolumeAsUnread(seriesId: number, volume: Volume, callback?: VolumeActionCallback) { + forkJoin(volume.chapters?.map(chapter => this.readerService.bookmark(seriesId, volume.id, chapter.id, 0))).pipe(takeUntil(this.onDestroy)).subscribe(results => { + volume.pagesRead = 0; + volume.chapters?.forEach(c => c.pagesRead = 0); + this.toastr.success('Marked as Unread'); + if (callback) { + callback(volume); + } + }); + } + + /** + * Mark a chapter as read + * @param seriesId Series Id + * @param chapter Chapter, should have id, pages, volumeId populated + * @param callback Optional callback to perform actions after API completes + */ + markChapterAsRead(seriesId: number, chapter: Chapter, callback?: ChapterActionCallback) { + this.readerService.bookmark(seriesId, chapter.volumeId, chapter.id, chapter.pages).pipe(take(1)).subscribe(results => { + chapter.pagesRead = chapter.pages; + this.toastr.success('Marked as Read'); + if (callback) { + callback(chapter); + } + }); + } + + /** + * Mark a chapter as unread + * @param seriesId Series Id + * @param chapter Chapter, should have id, pages, volumeId populated + * @param callback Optional callback to perform actions after API completes + */ + markChapterAsUnread(seriesId: number, chapter: Chapter, callback?: ChapterActionCallback) { + this.readerService.bookmark(seriesId, chapter.volumeId, chapter.id, chapter.pages).pipe(take(1)).subscribe(results => { + chapter.pagesRead = 0; + this.toastr.success('Marked as unread'); + if (callback) { + callback(chapter); + } + }); + } + + +} diff --git a/UI/Web/src/app/_services/collection-tag.service.ts b/UI/Web/src/app/_services/collection-tag.service.ts new file mode 100644 index 000000000..92590df4d --- /dev/null +++ b/UI/Web/src/app/_services/collection-tag.service.ts @@ -0,0 +1,38 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { map } from 'rxjs/operators'; +import { environment } from 'src/environments/environment'; +import { CollectionTag } from '../_models/collection-tag'; +import { ImageService } from './image.service'; + +@Injectable({ + providedIn: 'root' +}) +export class CollectionTagService { + + baseUrl = environment.apiUrl; + + constructor(private httpClient: HttpClient, private imageService: ImageService) { } + + allTags() { + return this.httpClient.get(this.baseUrl + 'collection/').pipe(map(tags => { + tags.forEach(s => s.coverImage = this.imageService.getCollectionCoverImage(s.id)); + return tags; + })); + } + + search(query: string) { + return this.httpClient.get(this.baseUrl + 'collection/search?queryString=' + encodeURIComponent(query)).pipe(map(tags => { + tags.forEach(s => s.coverImage = this.imageService.getCollectionCoverImage(s.id)); + return tags; + })); + } + + updateTag(tag: CollectionTag) { + return this.httpClient.post(this.baseUrl + 'collection/update', tag, {responseType: 'text' as 'json'}); + } + + updateSeriesForTag(tag: CollectionTag, seriesIdsToRemove: Array) { + return this.httpClient.post(this.baseUrl + 'collection/update-series', {tag, seriesIdsToRemove}, {responseType: 'text' as 'json'}); + } +} diff --git a/UI/Web/src/app/_services/image.service.ts b/UI/Web/src/app/_services/image.service.ts new file mode 100644 index 000000000..4135b34b9 --- /dev/null +++ b/UI/Web/src/app/_services/image.service.ts @@ -0,0 +1,41 @@ +import { Injectable } from '@angular/core'; +import { environment } from 'src/environments/environment'; +import { NavService } from './nav.service'; + +@Injectable({ + providedIn: 'root' +}) +export class ImageService { + + baseUrl = environment.apiUrl; + public placeholderImage = 'assets/images/image-placeholder-min.png'; + public errorImage = 'assets/images/error-placeholder2-min.png'; + + constructor(private navSerivce: NavService) { + this.navSerivce.darkMode$.subscribe(res => { + if (res) { + this.placeholderImage = 'assets/images/image-placeholder.dark-min.png'; + this.errorImage = 'assets/images/error-placeholder2.dark-min.png'; + } else { + this.placeholderImage = 'assets/images/image-placeholder-min.png'; + this.errorImage = 'assets/images/error-placeholder2-min.png'; + } + }); + } + + getVolumeCoverImage(volumeId: number) { + return this.baseUrl + 'image/volume-cover?volumeId=' + volumeId; + } + + getSeriesCoverImage(seriesId: number) { + return this.baseUrl + 'image/series-cover?seriesId=' + seriesId; + } + + getCollectionCoverImage(collectionTagId: number) { + return this.baseUrl + 'image/collection-cover?collectionTagId=' + collectionTagId; + } + + getChapterCoverImage(chapterId: number) { + return this.baseUrl + 'image/chapter-cover?chapterId=' + chapterId; + } +} diff --git a/UI/Web/src/app/_services/library.service.ts b/UI/Web/src/app/_services/library.service.ts new file mode 100644 index 000000000..cfba02d99 --- /dev/null +++ b/UI/Web/src/app/_services/library.service.ts @@ -0,0 +1,89 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { of } from 'rxjs'; +import { map } from 'rxjs/operators'; +import { environment } from 'src/environments/environment'; +import { Library, LibraryType } from '../_models/library'; +import { SearchResult } from '../_models/search-result'; + + +@Injectable({ + providedIn: 'root' +}) +export class LibraryService { + + baseUrl = environment.apiUrl; + + libraryNames: {[key:number]: string} | undefined = undefined; + + constructor(private httpClient: HttpClient) {} + + getLibraryNames() { + if (this.libraryNames != undefined) { + return of(this.libraryNames); + } + return this.httpClient.get(this.baseUrl + 'library').pipe(map(l => { + this.libraryNames = {}; + l.forEach(lib => { + if (this.libraryNames !== undefined) { + this.libraryNames[lib.id] = lib.name; + } + }); + return this.libraryNames; + })); + } + + listDirectories(rootPath: string) { + let query = ''; + if (rootPath !== undefined && rootPath.length > 0) { + query = '?path=' + rootPath; + } + + return this.httpClient.get(this.baseUrl + 'library/list' + query); + } + + getLibraries() { + return this.httpClient.get(this.baseUrl + 'library'); + } + + getLibrariesForMember() { + return this.httpClient.get(this.baseUrl + 'library/libraries'); + } + + updateLibrariesForMember(username: string, selectedLibraries: Library[]) { + return this.httpClient.post(this.baseUrl + 'library/grant-access', {username, selectedLibraries}); + } + + scan(libraryId: number) { + return this.httpClient.post(this.baseUrl + 'library/scan?libraryId=' + libraryId, {}); + } + + refreshMetadata(libraryId: number) { + return this.httpClient.post(this.baseUrl + 'library/refresh-metadata?libraryId=' + libraryId, {}); + } + + create(model: {name: string, type: number, folders: string[]}) { + return this.httpClient.post(this.baseUrl + 'library/create', model); + } + + delete(libraryId: number) { + return this.httpClient.delete(this.baseUrl + 'library/delete?libraryId=' + libraryId, {}); + } + + update(model: {name: string, folders: string[], id: number}) { + return this.httpClient.post(this.baseUrl + 'library/update', model); + } + + getLibraryType(libraryId: number) { + // TODO: Cache this in browser + return this.httpClient.get(this.baseUrl + 'library/type?libraryId=' + libraryId); + } + + search(term: string) { + if (term === '') { + return of([]); + } + return this.httpClient.get(this.baseUrl + 'library/search?queryString=' + encodeURIComponent(term)); + } + +} diff --git a/UI/Web/src/app/_services/member.service.ts b/UI/Web/src/app/_services/member.service.ts new file mode 100644 index 000000000..519807bb9 --- /dev/null +++ b/UI/Web/src/app/_services/member.service.ts @@ -0,0 +1,38 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { environment } from 'src/environments/environment'; +import { Member } from '../_models/member'; + +@Injectable({ + providedIn: 'root' +}) +export class MemberService { + + baseUrl = environment.apiUrl; + + constructor(private httpClient: HttpClient) { } + + getMembers() { + return this.httpClient.get(this.baseUrl + 'users'); + } + + adminExists() { + return this.httpClient.get(this.baseUrl + 'admin/exists'); + } + + deleteMember(username: string) { + return this.httpClient.delete(this.baseUrl + 'users/delete-user?username=' + username); + } + + hasLibraryAccess(libraryId: number) { + return this.httpClient.get(this.baseUrl + 'users/has-library-access?libraryId=' + libraryId); + } + + hasReadingProgress(librayId: number) { + return this.httpClient.get(this.baseUrl + 'users/has-reading-progress?libraryId=' + librayId); + } + + updateMemberRoles(username: string, roles: string[]) { + return this.httpClient.post(this.baseUrl + 'account/update-rbs', {username, roles}); + } +} diff --git a/UI/Web/src/app/_services/nav.service.ts b/UI/Web/src/app/_services/nav.service.ts new file mode 100644 index 000000000..2412c794a --- /dev/null +++ b/UI/Web/src/app/_services/nav.service.ts @@ -0,0 +1,39 @@ +import { Injectable } from '@angular/core'; +import { ReplaySubject } from 'rxjs'; + +@Injectable({ + providedIn: 'root' +}) +export class NavService { + + private navbarVisibleSource = new ReplaySubject(1); + navbarVisible$ = this.navbarVisibleSource.asObservable(); + + private darkMode: boolean = true; + private darkModeSource = new ReplaySubject(1); + darkMode$ = this.darkModeSource.asObservable(); + + constructor() { + this.showNavBar(); + } + + showNavBar() { + this.navbarVisibleSource.next(true); + } + + hideNavBar() { + this.navbarVisibleSource.next(false); + } + + toggleDarkMode() { + this.darkMode = !this.darkMode; + this.darkModeSource.next(this.darkMode); + } + + setDarkMode(mode: boolean) { + this.darkMode = mode; + this.darkModeSource.next(this.darkMode); + } + + +} diff --git a/UI/Web/src/app/_services/reader.service.ts b/UI/Web/src/app/_services/reader.service.ts new file mode 100644 index 000000000..056169644 --- /dev/null +++ b/UI/Web/src/app/_services/reader.service.ts @@ -0,0 +1,107 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +//import * as console.log from 'console.log'; +import { environment } from 'src/environments/environment'; +import { ChapterInfo } from '../manga-reader/_models/chapter-info'; +import { UtilityService } from '../shared/_services/utility.service'; +import { Bookmark } from '../_models/bookmark'; +import { Chapter } from '../_models/chapter'; +import { Volume } from '../_models/volume'; + +@Injectable({ + providedIn: 'root' +}) +export class ReaderService { + + baseUrl = environment.apiUrl; + + // Override background color for reader and restore it onDestroy + private originalBodyColor!: string; + + constructor(private httpClient: HttpClient, private utilityService: UtilityService) { } + + getBookmark(chapterId: number) { + return this.httpClient.get(this.baseUrl + 'reader/get-bookmark?chapterId=' + chapterId); + } + + getPageUrl(chapterId: number, page: number) { + return this.baseUrl + 'reader/image?chapterId=' + chapterId + '&page=' + page; + } + + getChapterInfo(chapterId: number) { + return this.httpClient.get(this.baseUrl + 'reader/chapter-info?chapterId=' + chapterId); + } + + bookmark(seriesId: number, volumeId: number, chapterId: number, page: number, bookScrollId: string | null = null) { + return this.httpClient.post(this.baseUrl + 'reader/bookmark', {seriesId, volumeId, chapterId, pageNum: page, bookScrollId}); + } + + markVolumeRead(seriesId: number, volumeId: number) { + return this.httpClient.post(this.baseUrl + 'reader/mark-volume-read', {seriesId, volumeId}); + } + + getNextChapter(seriesId: number, volumeId: number, currentChapterId: number) { + return this.httpClient.get(this.baseUrl + 'reader/next-chapter?seriesId=' + seriesId + '&volumeId=' + volumeId + '¤tChapterId=' + currentChapterId); + } + + getPrevChapter(seriesId: number, volumeId: number, currentChapterId: number) { + return this.httpClient.get(this.baseUrl + 'reader/prev-chapter?seriesId=' + seriesId + '&volumeId=' + volumeId + '¤tChapterId=' + currentChapterId); + } + + getCurrentChapter(volumes: Array): Chapter { + let currentlyReadingChapter: Chapter | undefined = undefined; + const chapters = volumes.filter(v => v.number !== 0).map(v => v.chapters || []).flat().sort(this.utilityService.sortChapters); // changed from === 0 to != 0 + + for (const c of chapters) { + if (c.pagesRead < c.pages) { + currentlyReadingChapter = c; + break; + } + } + + if (currentlyReadingChapter === undefined) { + // Check if there are specials we can load: + const specials = volumes.filter(v => v.number === 0).map(v => v.chapters || []).flat().sort(this.utilityService.sortChapters); + for (const c of specials) { + if (c.pagesRead < c.pages) { + currentlyReadingChapter = c; + break; + } + } + if (currentlyReadingChapter === undefined) { + // Default to first chapter + currentlyReadingChapter = chapters[0]; + } + } + + return currentlyReadingChapter; + } + + /** + * Captures current body color and forces background color to be black. Call @see resetOverrideStyles() on destroy of component to revert changes + */ + setOverrideStyles() { + const bodyNode = document.querySelector('body'); + if (bodyNode !== undefined && bodyNode !== null) { + this.originalBodyColor = bodyNode.style.background; + bodyNode.setAttribute('style', 'background-color: black !important'); + } + } + + resetOverrideStyles() { + const bodyNode = document.querySelector('body'); + if (bodyNode !== undefined && bodyNode !== null && this.originalBodyColor !== undefined) { + bodyNode.style.background = this.originalBodyColor; + } + } + + /** + * Parses out the page number from a Image src url + * @param imageSrc Src attribute of Image + * @returns + */ + imageUrlToPageNum(imageSrc: string) { + if (imageSrc === undefined || imageSrc === '') { return -1; } + return parseInt(imageSrc.split('&page=')[1], 10); + } +} diff --git a/UI/Web/src/app/_services/series.service.ts b/UI/Web/src/app/_services/series.service.ts new file mode 100644 index 000000000..033c34b35 --- /dev/null +++ b/UI/Web/src/app/_services/series.service.ts @@ -0,0 +1,163 @@ +import { HttpClient, HttpParams } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { of } from 'rxjs'; +import { map } from 'rxjs/operators'; +import { environment } from 'src/environments/environment'; +import { Chapter } from '../_models/chapter'; +import { CollectionTag } from '../_models/collection-tag'; +import { InProgressChapter } from '../_models/in-progress-chapter'; +import { PaginatedResult } from '../_models/pagination'; +import { Series } from '../_models/series'; +import { SeriesMetadata } from '../_models/series-metadata'; +import { Volume } from '../_models/volume'; +import { ImageService } from './image.service'; + +@Injectable({ + providedIn: 'root' +}) +export class SeriesService { + + baseUrl = environment.apiUrl; + paginatedResults: PaginatedResult = new PaginatedResult(); + paginatedSeriesForTagsResults: PaginatedResult = new PaginatedResult(); + + constructor(private httpClient: HttpClient, private imageService: ImageService) { } + + _cachePaginatedResults(response: any, paginatedVariable: PaginatedResult) { + if (response.body === null) { + paginatedVariable.result = []; + } else { + paginatedVariable.result = response.body; + } + + const pageHeader = response.headers.get('Pagination'); + if (pageHeader !== null) { + paginatedVariable.pagination = JSON.parse(pageHeader); + } + + return paginatedVariable; + } + + getSeriesForLibrary(libraryId: number, pageNum?: number, itemsPerPage?: number) { + let params = new HttpParams(); + + params = this._addPaginationIfExists(params, pageNum, itemsPerPage); + + return this.httpClient.get>(this.baseUrl + 'series?libraryId=' + libraryId, {observe: 'response', params}).pipe( + map((response: any) => { + return this._cachePaginatedResults(response, this.paginatedResults); + }) + ); + } + + getSeries(seriesId: number) { + return this.httpClient.get(this.baseUrl + 'series/' + seriesId); + } + + getVolumes(seriesId: number) { + return this.httpClient.get(this.baseUrl + 'series/volumes?seriesId=' + seriesId); + } + + getVolume(volumeId: number) { + return this.httpClient.get(this.baseUrl + 'series/volume?volumeId=' + volumeId); + } + + getChapter(chapterId: number) { + return this.httpClient.get(this.baseUrl + 'series/chapter?chapterId=' + chapterId); + } + + getData(id: number) { + return of(id); + } + + delete(seriesId: number) { + return this.httpClient.delete(this.baseUrl + 'series/' + seriesId); + } + + updateRating(seriesId: number, userRating: number, userReview: string) { + return this.httpClient.post(this.baseUrl + 'series/update-rating', {seriesId, userRating, userReview}); + } + + updateSeries(model: any) { + return this.httpClient.post(this.baseUrl + 'series/', model); + } + + markRead(seriesId: number) { + return this.httpClient.post(this.baseUrl + 'reader/mark-read', {seriesId}); + } + + markUnread(seriesId: number) { + return this.httpClient.post(this.baseUrl + 'reader/mark-unread', {seriesId}); + } + + getRecentlyAdded(libraryId: number = 0, pageNum?: number, itemsPerPage?: number) { + let params = new HttpParams(); + + params = this._addPaginationIfExists(params, pageNum, itemsPerPage); + + return this.httpClient.get(this.baseUrl + 'series/recently-added', {observe: 'response', params}).pipe( + map((response: any) => { + return this._cachePaginatedResults(response, this.paginatedSeriesForTagsResults); + }) + ); + } + + getInProgress(libraryId: number = 0) { + return this.httpClient.get(this.baseUrl + 'series/in-progress?libraryId=' + libraryId).pipe(map(series => { + series.forEach(s => s.coverImage = this.imageService.getSeriesCoverImage(s.id)); + return series; + })); + } + + getContinueReading(libraryId: number = 0) { + return this.httpClient.get(this.baseUrl + 'series/continue-reading?libraryId=' + libraryId); + } + + refreshMetadata(series: Series) { + return this.httpClient.post(this.baseUrl + 'series/refresh-metadata', {libraryId: series.libraryId, seriesId: series.id}); + } + + scan(libraryId: number, seriesId: number) { + return this.httpClient.post(this.baseUrl + 'series/scan', {libraryId: libraryId, seriesId: seriesId}); + } + + getMetadata(seriesId: number) { + return this.httpClient.get(this.baseUrl + 'series/metadata?seriesId=' + seriesId).pipe(map(items => { + items?.tags.forEach(tag => tag.coverImage = this.imageService.getCollectionCoverImage(tag.id)); + return items; + })); + } + + updateMetadata(seriesMetadata: SeriesMetadata, tags: CollectionTag[]) { + const data = { + seriesMetadata, + tags + }; + return this.httpClient.post(this.baseUrl + 'series/metadata', data, {responseType: 'text' as 'json'}); + } + + getSeriesForTag(collectionTagId: number, pageNum?: number, itemsPerPage?: number) { + let params = new HttpParams(); + + params = this._addPaginationIfExists(params, pageNum, itemsPerPage); + + // NOTE: I'm not sure the paginated result is doing anything + // if (this.paginatedSeriesForTagsResults?.pagination !== undefined && this.paginatedSeriesForTagsResults?.pagination?.currentPage === pageNum) { + // return of(this.paginatedSeriesForTagsResults); + // } + + return this.httpClient.get>(this.baseUrl + 'series/series-by-collection?collectionId=' + collectionTagId, {observe: 'response', params}).pipe( + map((response: any) => { + return this._cachePaginatedResults(response, this.paginatedSeriesForTagsResults); + }) + ); + } + + _addPaginationIfExists(params: HttpParams, pageNum?: number, itemsPerPage?: number) { + if (pageNum !== null && pageNum !== undefined && itemsPerPage !== null && itemsPerPage !== undefined) { + params = params.append('pageNumber', pageNum + ''); + params = params.append('pageSize', itemsPerPage + ''); + } + return params; + } +} diff --git a/UI/Web/src/app/_services/server.service.ts b/UI/Web/src/app/_services/server.service.ts new file mode 100644 index 000000000..9d4e9e848 --- /dev/null +++ b/UI/Web/src/app/_services/server.service.ts @@ -0,0 +1,26 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { environment } from 'src/environments/environment'; +import { ServerInfo } from '../admin/_models/server-info'; + +@Injectable({ + providedIn: 'root' +}) +export class ServerService { + + baseUrl = environment.apiUrl; + + constructor(private httpClient: HttpClient) { } + + restart() { + return this.httpClient.post(this.baseUrl + 'server/restart', {}); + } + + fetchLogs() { + return this.httpClient.get(this.baseUrl + 'server/logs', {responseType: 'blob' as 'text'}); + } + + getServerInfo() { + return this.httpClient.get(this.baseUrl + 'server/server-info'); + } +} diff --git a/UI/Web/src/app/_services/stats.service.ts b/UI/Web/src/app/_services/stats.service.ts new file mode 100644 index 000000000..56d56d633 --- /dev/null +++ b/UI/Web/src/app/_services/stats.service.ts @@ -0,0 +1,18 @@ +import { HttpClient } from "@angular/common/http"; +import { Injectable } from "@angular/core"; +import { environment } from "src/environments/environment"; +import { ClientInfo } from "../_models/client-info"; + +@Injectable({ + providedIn: 'root' +}) +export class StatsService { + + baseUrl = environment.apiUrl; + + constructor(private httpClient: HttpClient) { } + + public sendClientInfo(clientInfo: ClientInfo) { + return this.httpClient.post(this.baseUrl + 'stats/client-info', clientInfo); + } +} \ No newline at end of file diff --git a/UI/Web/src/app/admin/_modals/directory-picker/directory-picker.component.html b/UI/Web/src/app/admin/_modals/directory-picker/directory-picker.component.html new file mode 100644 index 000000000..78440a06b --- /dev/null +++ b/UI/Web/src/app/admin/_modals/directory-picker/directory-picker.component.html @@ -0,0 +1,54 @@ + + + + diff --git a/UI/Web/src/app/admin/_modals/directory-picker/directory-picker.component.scss b/UI/Web/src/app/admin/_modals/directory-picker/directory-picker.component.scss new file mode 100644 index 000000000..eb27b2165 --- /dev/null +++ b/UI/Web/src/app/admin/_modals/directory-picker/directory-picker.component.scss @@ -0,0 +1,15 @@ + +$breadcrumb-divider: quote(">"); + +.breadcrumb-item + .breadcrumb-item::before { + content: $breadcrumb-divider; +} + +.scrollable { + overflow-y: auto; + max-height: 400px; +} + +.btn-outline-secondary { + border: 1px solid #ced4da; +} \ No newline at end of file diff --git a/UI/Web/src/app/admin/_modals/directory-picker/directory-picker.component.ts b/UI/Web/src/app/admin/_modals/directory-picker/directory-picker.component.ts new file mode 100644 index 000000000..fc5a5d2ee --- /dev/null +++ b/UI/Web/src/app/admin/_modals/directory-picker/directory-picker.component.ts @@ -0,0 +1,110 @@ +import { Component, OnInit } from '@angular/core'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { Stack } from 'src/app/shared/data-structures/stack'; +import { LibraryService } from '../../../_services/library.service'; + + +export interface DirectoryPickerResult { + success: boolean; + folderPath: string; +} + + +@Component({ + selector: 'app-directory-picker', + templateUrl: './directory-picker.component.html', + styleUrls: ['./directory-picker.component.scss'] +}) +export class DirectoryPickerComponent implements OnInit { + + currentRoot = ''; + folders: string[] = []; + routeStack: Stack = new Stack(); + filterQuery: string = ''; + + constructor(public modal: NgbActiveModal, private libraryService: LibraryService) { + + } + + ngOnInit(): void { + this.loadChildren(this.currentRoot); + } + + filterFolder = (folder: string) => { + return folder.toLowerCase().indexOf((this.filterQuery || '').toLowerCase()) >= 0; + } + + selectNode(folderName: string) { + this.currentRoot = folderName; + this.routeStack.push(folderName); + const fullPath = this.routeStack.items.join('/'); + this.loadChildren(fullPath); + } + + goBack() { + // BUG: When Going back to initial listing, this code gets stuck on first drive + this.routeStack.pop(); + const stackPeek = this.routeStack.peek(); + if (stackPeek !== undefined) { + this.currentRoot = stackPeek; + const fullPath = this.routeStack.items.join('/'); + this.loadChildren(fullPath); + } else { + this.currentRoot = ''; + this.loadChildren(this.currentRoot); + } + + } + + loadChildren(path: string) { + this.libraryService.listDirectories(path).subscribe(folders => { + this.folders = folders; + }, err => { + // If there was an error, pop off last directory added to stack + this.routeStack.pop(); + }); + } + + shareFolder(folderName: string, event: any) { + event.preventDefault(); + event.stopPropagation(); + + let fullPath = folderName; + if (this.routeStack.items.length > 0) { + const pathJoin = this.routeStack.items.join('/'); + fullPath = pathJoin + ((pathJoin.endsWith('/') || pathJoin.endsWith('\\')) ? '' : '/') + folderName; + } + + this.modal.close({success: true, folderPath: fullPath}); + } + + close() { + this.modal.close({success: false, folderPath: undefined}); + } + + getStem(path: string): string { + + const lastPath = this.routeStack.peek(); + if (lastPath && lastPath != path) { + let replaced = path.replace(lastPath, ''); + if (replaced.startsWith('/') || replaced.startsWith('\\')) { + replaced = replaced.substr(1, replaced.length); + } + return replaced; + } + + return path; + } + + navigateTo(index: number) { + const numberOfPops = this.routeStack.items.length - index; + if (this.routeStack.items.length - numberOfPops > this.routeStack.items.length) { + this.routeStack.items = []; + } + for (let i = 0; i < numberOfPops; i++) { + this.routeStack.pop(); + } + + this.loadChildren(this.routeStack.peek() || ''); + } +} diff --git a/UI/Web/src/app/admin/_modals/edit-rbs-modal/edit-rbs-modal.component.html b/UI/Web/src/app/admin/_modals/edit-rbs-modal/edit-rbs-modal.component.html new file mode 100644 index 000000000..205195384 --- /dev/null +++ b/UI/Web/src/app/admin/_modals/edit-rbs-modal/edit-rbs-modal.component.html @@ -0,0 +1,23 @@ + + + + diff --git a/UI/Web/src/app/admin/_modals/edit-rbs-modal/edit-rbs-modal.component.scss b/UI/Web/src/app/admin/_modals/edit-rbs-modal/edit-rbs-modal.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/UI/Web/src/app/admin/_modals/edit-rbs-modal/edit-rbs-modal.component.ts b/UI/Web/src/app/admin/_modals/edit-rbs-modal/edit-rbs-modal.component.ts new file mode 100644 index 000000000..ee659adf6 --- /dev/null +++ b/UI/Web/src/app/admin/_modals/edit-rbs-modal/edit-rbs-modal.component.ts @@ -0,0 +1,70 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { Member } from 'src/app/_models/member'; +import { AccountService } from 'src/app/_services/account.service'; +import { MemberService } from 'src/app/_services/member.service'; + +@Component({ + selector: 'app-edit-rbs-modal', + templateUrl: './edit-rbs-modal.component.html', + styleUrls: ['./edit-rbs-modal.component.scss'] +}) +export class EditRbsModalComponent implements OnInit { + + @Input() member: Member | undefined; + allRoles: string[] = []; + selectedRoles: Array<{selected: boolean, data: string}> = []; + + constructor(public modal: NgbActiveModal, private accountService: AccountService, private memberService: MemberService) { } + + ngOnInit(): void { + this.accountService.getRoles().subscribe(roles => { + roles = roles.filter(item => item != 'Admin' && item != 'Pleb'); // Do not allow the user to modify Account RBS + this.allRoles = roles; + this.selectedRoles = roles.map(item => { + return {selected: false, data: item}; + }); + + this.preselect(); + }); + } + + close() { + this.modal.close(false); + } + + save() { + if (this.member?.username === undefined) { + return; + } + + const selectedRoles = this.selectedRoles.filter(item => item.selected).map(item => item.data); + this.memberService.updateMemberRoles(this.member?.username, selectedRoles).subscribe(() => { + if (this.member) { + this.member.roles = selectedRoles; + } + this.modal.close(true); + }); + } + + reset() { + this.selectedRoles = this.allRoles.map(item => { + return {selected: false, data: item}; + }); + + + this.preselect(); + } + + preselect() { + if (this.member !== undefined) { + this.member.roles.forEach(role => { + const foundRole = this.selectedRoles.filter(item => item.data === role); + if (foundRole.length > 0) { + foundRole[0].selected = true; + } + }); + } + } + +} diff --git a/UI/Web/src/app/admin/_modals/library-access-modal/library-access-modal.component.html b/UI/Web/src/app/admin/_modals/library-access-modal/library-access-modal.component.html new file mode 100644 index 000000000..458880b5e --- /dev/null +++ b/UI/Web/src/app/admin/_modals/library-access-modal/library-access-modal.component.html @@ -0,0 +1,23 @@ + + + + diff --git a/UI/Web/src/app/admin/_modals/library-access-modal/library-access-modal.component.scss b/UI/Web/src/app/admin/_modals/library-access-modal/library-access-modal.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/UI/Web/src/app/admin/_modals/library-access-modal/library-access-modal.component.ts b/UI/Web/src/app/admin/_modals/library-access-modal/library-access-modal.component.ts new file mode 100644 index 000000000..5ebcdaebc --- /dev/null +++ b/UI/Web/src/app/admin/_modals/library-access-modal/library-access-modal.component.ts @@ -0,0 +1,70 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { FormBuilder } from '@angular/forms'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { Library } from 'src/app/_models/library'; +import { Member } from 'src/app/_models/member'; +import { LibraryService } from 'src/app/_services/library.service'; + +@Component({ + selector: 'app-library-access-modal', + templateUrl: './library-access-modal.component.html', + styleUrls: ['./library-access-modal.component.scss'] +}) +export class LibraryAccessModalComponent implements OnInit { + + @Input() member: Member | undefined; + allLibraries: Library[] = []; + selectedLibraries: Array<{selected: boolean, data: Library}> = []; + + constructor(public modal: NgbActiveModal, private libraryService: LibraryService, private fb: FormBuilder) { } + + ngOnInit(): void { + this.libraryService.getLibraries().subscribe(libs => { + this.allLibraries = libs; + this.selectedLibraries = libs.map(item => { + return {selected: false, data: item}; + }); + + if (this.member !== undefined) { + this.member.libraries.forEach(lib => { + const foundLibrary = this.selectedLibraries.filter(item => item.data.name === lib.name); + if (foundLibrary.length > 0) { + foundLibrary[0].selected = true; + } + }); + } + }); + } + + close() { + this.modal.close(false); + } + + save() { + if (this.member?.username === undefined) { + return; + } + + const selectedLibraries = this.selectedLibraries.filter(item => item.selected).map(item => item.data); + this.libraryService.updateLibrariesForMember(this.member?.username, selectedLibraries).subscribe(() => { + this.modal.close(true); + }); + } + + reset() { + this.selectedLibraries = this.allLibraries.map(item => { + return {selected: false, data: item}; + }); + + + if (this.member !== undefined) { + this.member.libraries.forEach(lib => { + const foundLibrary = this.selectedLibraries.filter(item => item.data.name === lib.name); + if (foundLibrary.length > 0) { + foundLibrary[0].selected = true; + } + }); + } + } + +} diff --git a/UI/Web/src/app/admin/_modals/library-editor-modal/library-editor-modal.component.html b/UI/Web/src/app/admin/_modals/library-editor-modal/library-editor-modal.component.html new file mode 100644 index 000000000..867be0a4a --- /dev/null +++ b/UI/Web/src/app/admin/_modals/library-editor-modal/library-editor-modal.component.html @@ -0,0 +1,40 @@ + +
+ + + +
\ No newline at end of file diff --git a/UI/Web/src/app/admin/_modals/library-editor-modal/library-editor-modal.component.scss b/UI/Web/src/app/admin/_modals/library-editor-modal/library-editor-modal.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/UI/Web/src/app/admin/_modals/library-editor-modal/library-editor-modal.component.ts b/UI/Web/src/app/admin/_modals/library-editor-modal/library-editor-modal.component.ts new file mode 100644 index 000000000..f1257aa8d --- /dev/null +++ b/UI/Web/src/app/admin/_modals/library-editor-modal/library-editor-modal.component.ts @@ -0,0 +1,104 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { FormControl, FormGroup, Validators } from '@angular/forms'; +import { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { Library } from 'src/app/_models/library'; +import { LibraryService } from 'src/app/_services/library.service'; +import { SettingsService } from '../../settings.service'; +import { DirectoryPickerComponent, DirectoryPickerResult } from '../directory-picker/directory-picker.component'; + +@Component({ + selector: 'app-library-editor-modal', + templateUrl: './library-editor-modal.component.html', + styleUrls: ['./library-editor-modal.component.scss'] +}) +export class LibraryEditorModalComponent implements OnInit { + + @Input() library: Library | undefined = undefined; + + libraryForm: FormGroup = new FormGroup({ + name: new FormControl('', [Validators.required]), + type: new FormControl(0, [Validators.required]) + }); + + selectedFolders: string[] = []; + errorMessage = ''; + madeChanges = false; + libraryTypes: string[] = [] + + + constructor(private modalService: NgbModal, private libraryService: LibraryService, public modal: NgbActiveModal, private settingService: SettingsService) { } + + ngOnInit(): void { + + this.settingService.getLibraryTypes().subscribe((types) => { + this.libraryTypes = types; + }); + this.setValues(); + + } + + + removeFolder(folder: string) { + this.selectedFolders = this.selectedFolders.filter(item => item !== folder); + this.madeChanges = true; + } + + submitLibrary() { + const model = this.libraryForm.value; + model.folders = this.selectedFolders; + + if (this.libraryForm.errors) { + return; + } + + if (this.library !== undefined) { + model.id = this.library.id; + model.folders = model.folders.map((item: string) => item.startsWith('\\') ? item.substr(1, item.length) : item); + model.type = parseInt(model.type, 10); + this.libraryService.update(model).subscribe(() => { + this.close(true); + }, err => { + this.errorMessage = err; + }); + } else { + model.folders = model.folders.map((item: string) => item.startsWith('\\') ? item.substr(1, item.length) : item); + model.type = parseInt(model.type, 10); + this.libraryService.create(model).subscribe(() => { + this.close(true); + }, err => { + this.errorMessage = err; + }); + } + } + + close(returnVal= false) { + const model = this.libraryForm.value; + this.modal.close(returnVal); + } + + reset() { + this.setValues(); + } + + setValues() { + if (this.library !== undefined) { + this.libraryForm.get('name')?.setValue(this.library.name); + this.libraryForm.get('type')?.setValue(this.library.type); + this.selectedFolders = this.library.folders; + this.madeChanges = false; + } + } + + openDirectoryPicker() { + const modalRef = this.modalService.open(DirectoryPickerComponent, { scrollable: true, size: 'lg' }); + modalRef.closed.subscribe((closeResult: DirectoryPickerResult) => { + if (closeResult.success) { + if (!this.selectedFolders.includes(closeResult.folderPath)) { + this.selectedFolders.push(closeResult.folderPath); + this.madeChanges = true; + } + } + }); + } + +} diff --git a/UI/Web/src/app/admin/_modals/reset-password-modal/reset-password-modal.component.html b/UI/Web/src/app/admin/_modals/reset-password-modal/reset-password-modal.component.html new file mode 100644 index 000000000..c7f16ebef --- /dev/null +++ b/UI/Web/src/app/admin/_modals/reset-password-modal/reset-password-modal.component.html @@ -0,0 +1,21 @@ +
+ + + +
\ No newline at end of file diff --git a/UI/Web/src/app/admin/_modals/reset-password-modal/reset-password-modal.component.scss b/UI/Web/src/app/admin/_modals/reset-password-modal/reset-password-modal.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/UI/Web/src/app/admin/_modals/reset-password-modal/reset-password-modal.component.ts b/UI/Web/src/app/admin/_modals/reset-password-modal/reset-password-modal.component.ts new file mode 100644 index 000000000..5cee429c1 --- /dev/null +++ b/UI/Web/src/app/admin/_modals/reset-password-modal/reset-password-modal.component.ts @@ -0,0 +1,36 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { FormGroup, FormControl, Validators } from '@angular/forms'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { Member } from 'src/app/_models/member'; +import { AccountService } from 'src/app/_services/account.service'; +import { MemberService } from 'src/app/_services/member.service'; + +@Component({ + selector: 'app-reset-password-modal', + templateUrl: './reset-password-modal.component.html', + styleUrls: ['./reset-password-modal.component.scss'] +}) +export class ResetPasswordModalComponent implements OnInit { + + @Input() member!: Member; + errorMessage = ''; + resetPasswordForm: FormGroup = new FormGroup({ + password: new FormControl('', [Validators.required]), + }); + + constructor(public modal: NgbActiveModal, private accountService: AccountService) { } + + ngOnInit(): void { + } + + save() { + this.accountService.resetPassword(this.member.username, this.resetPasswordForm.value.password).subscribe(() => { + this.modal.close(); + }); + } + + close() { + this.modal.close(); + } + +} diff --git a/UI/Web/src/app/admin/_models/server-info.ts b/UI/Web/src/app/admin/_models/server-info.ts new file mode 100644 index 000000000..5fc3150f9 --- /dev/null +++ b/UI/Web/src/app/admin/_models/server-info.ts @@ -0,0 +1,8 @@ +export interface ServerInfo { + os: string; + dotNetVersion: string; + runTimeVersion: string; + kavitaVersion: string; + buildBranch: string; + culture: string; +} \ No newline at end of file diff --git a/UI/Web/src/app/admin/_models/server-settings.ts b/UI/Web/src/app/admin/_models/server-settings.ts new file mode 100644 index 000000000..6d4150899 --- /dev/null +++ b/UI/Web/src/app/admin/_models/server-settings.ts @@ -0,0 +1,8 @@ +export interface ServerSettings { + cacheDirectory: string; + taskScan: string; + taskBackup: string; + loggingLevel: string; + port: number; + allowStatCollection: boolean; +} diff --git a/UI/Web/src/app/admin/admin-routing.module.ts b/UI/Web/src/app/admin/admin-routing.module.ts new file mode 100644 index 000000000..166b8706a --- /dev/null +++ b/UI/Web/src/app/admin/admin-routing.module.ts @@ -0,0 +1,22 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { AdminGuard } from '../_guards/admin.guard'; +import { DashboardComponent } from './dashboard/dashboard.component'; + +const routes: Routes = [ + {path: '**', component: DashboardComponent, pathMatch: 'full'}, + { + runGuardsAndResolvers: 'always', + canActivate: [AdminGuard], + children: [ + {path: '/dashboard', component: DashboardComponent}, + ] + } +]; + + +@NgModule({ + imports: [RouterModule.forChild(routes), ], + exports: [RouterModule] +}) +export class AdminRoutingModule { } diff --git a/UI/Web/src/app/admin/admin.module.ts b/UI/Web/src/app/admin/admin.module.ts new file mode 100644 index 000000000..fe9125b5c --- /dev/null +++ b/UI/Web/src/app/admin/admin.module.ts @@ -0,0 +1,47 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { AdminRoutingModule } from './admin-routing.module'; +import { DashboardComponent } from './dashboard/dashboard.component'; +import { NgbNavModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; +import { ManageLibraryComponent } from './manage-library/manage-library.component'; +import { ManageUsersComponent } from './manage-users/manage-users.component'; +import { LibraryEditorModalComponent } from './_modals/library-editor-modal/library-editor-modal.component'; +import { SharedModule } from '../shared/shared.module'; +import { LibraryAccessModalComponent } from './_modals/library-access-modal/library-access-modal.component'; +import { DirectoryPickerComponent } from './_modals/directory-picker/directory-picker.component'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { ResetPasswordModalComponent } from './_modals/reset-password-modal/reset-password-modal.component'; +import { ManageSettingsComponent } from './manage-settings/manage-settings.component'; +import { FilterPipe } from './filter.pipe'; +import { EditRbsModalComponent } from './_modals/edit-rbs-modal/edit-rbs-modal.component'; +import { ManageSystemComponent } from './manage-system/manage-system.component'; + + + + +@NgModule({ + declarations: [ + ManageUsersComponent, + DashboardComponent, + ManageLibraryComponent, + LibraryEditorModalComponent, + LibraryAccessModalComponent, + DirectoryPickerComponent, + ResetPasswordModalComponent, + ManageSettingsComponent, + FilterPipe, + EditRbsModalComponent, + ManageSystemComponent + ], + imports: [ + CommonModule, + AdminRoutingModule, + ReactiveFormsModule, + FormsModule, + NgbNavModule, + NgbTooltipModule, + SharedModule, + ], + providers: [] +}) +export class AdminModule { } diff --git a/UI/Web/src/app/admin/dashboard/dashboard.component.html b/UI/Web/src/app/admin/dashboard/dashboard.component.html new file mode 100644 index 000000000..c206f7c34 --- /dev/null +++ b/UI/Web/src/app/admin/dashboard/dashboard.component.html @@ -0,0 +1,29 @@ +
+

Admin Dashboard

+ +
+ +
+ + +
+ +
\ No newline at end of file diff --git a/UI/Web/src/app/admin/dashboard/dashboard.component.scss b/UI/Web/src/app/admin/dashboard/dashboard.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/UI/Web/src/app/admin/dashboard/dashboard.component.ts b/UI/Web/src/app/admin/dashboard/dashboard.component.ts new file mode 100644 index 000000000..48bced7d2 --- /dev/null +++ b/UI/Web/src/app/admin/dashboard/dashboard.component.ts @@ -0,0 +1,52 @@ +import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; +import { ToastrService } from 'ngx-toastr'; +import { ServerService } from 'src/app/_services/server.service'; +import { saveAs } from 'file-saver'; + + + +@Component({ + selector: 'app-dashboard', + templateUrl: './dashboard.component.html', + styleUrls: ['./dashboard.component.scss'] +}) +export class DashboardComponent implements OnInit { + + tabs: Array<{title: string, fragment: string}> = [ + {title: 'General', fragment: ''}, + {title: 'Users', fragment: 'users'}, + {title: 'Libraries', fragment: 'libraries'}, + {title: 'System', fragment: 'system'} + ]; + counter = this.tabs.length + 1; + active = this.tabs[0]; + + constructor(public route: ActivatedRoute, private serverService: ServerService, private toastr: ToastrService) { + this.route.fragment.subscribe(frag => { + const tab = this.tabs.filter(item => item.fragment === frag); + if (tab.length > 0) { + this.active = tab[0]; + } else { + this.active = this.tabs[0]; // Default to first tab + } + }); + + } + + ngOnInit() {} + + restartServer() { + this.serverService.restart().subscribe(() => { + setTimeout(() => this.toastr.success('Please reload.'), 1000); + }); + } + + fetchLogs() { + this.serverService.fetchLogs().subscribe(res => { + const blob = new Blob([res], {type: 'text/plain;charset=utf-8'}); + saveAs(blob, 'kavita.zip'); + }); + } + +} diff --git a/UI/Web/src/app/admin/filter.pipe.ts b/UI/Web/src/app/admin/filter.pipe.ts new file mode 100644 index 000000000..749425a27 --- /dev/null +++ b/UI/Web/src/app/admin/filter.pipe.ts @@ -0,0 +1,16 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'filter', + pure: false +}) +export class FilterPipe implements PipeTransform { + + transform(items: any[], callback: (item: any) => boolean): any { + if (!items || !callback) { + return items; + } + return items.filter(item => callback(item)); +} + +} diff --git a/UI/Web/src/app/admin/manage-library/manage-library.component.html b/UI/Web/src/app/admin/manage-library/manage-library.component.html new file mode 100644 index 000000000..44cf374e6 --- /dev/null +++ b/UI/Web/src/app/admin/manage-library/manage-library.component.html @@ -0,0 +1,33 @@ +
+
+

Libraries

+
+
+
    +
  • +
    +

    + {{library.name | titlecase}} +
    + + + +
    +

    +
    +
    Type: {{libraryType(library.type)}}
    +
    Shared Folders: {{library.folders.length + ' folders'}}
    +
  • +
  • +
    + +
    +
  • +
  • + There are no libraries. Try creating one. +
  • +
+ + + +
\ No newline at end of file diff --git a/UI/Web/src/app/admin/manage-library/manage-library.component.scss b/UI/Web/src/app/admin/manage-library/manage-library.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/UI/Web/src/app/admin/manage-library/manage-library.component.ts b/UI/Web/src/app/admin/manage-library/manage-library.component.ts new file mode 100644 index 000000000..f0aae12e9 --- /dev/null +++ b/UI/Web/src/app/admin/manage-library/manage-library.component.ts @@ -0,0 +1,98 @@ +import { Component, OnDestroy, OnInit } from '@angular/core'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { ToastrService } from 'ngx-toastr'; +import { Subject } from 'rxjs'; +import { take, takeUntil } from 'rxjs/operators'; +import { ConfirmService } from 'src/app/shared/confirm.service'; +import { Library, LibraryType } from 'src/app/_models/library'; +import { LibraryService } from 'src/app/_services/library.service'; +import { LibraryEditorModalComponent } from '../_modals/library-editor-modal/library-editor-modal.component'; + +@Component({ + selector: 'app-manage-library', + templateUrl: './manage-library.component.html', + styleUrls: ['./manage-library.component.scss'] +}) +export class ManageLibraryComponent implements OnInit, OnDestroy { + + libraries: Library[] = []; + createLibraryToggle = false; + loading = false; + /** + * If a deletion is in progress for a library + */ + deletionInProgress: boolean = false; + + private readonly onDestroy = new Subject(); + + constructor(private modalService: NgbModal, private libraryService: LibraryService, private toastr: ToastrService, private confirmService: ConfirmService) { } + + ngOnInit(): void { + this.getLibraries(); + } + + ngOnDestroy() { + this.onDestroy.next(); + this.onDestroy.complete(); + } + + getLibraries() { + this.loading = true; + this.libraryService.getLibraries().pipe(take(1)).subscribe(libraries => { + this.libraries = libraries; + this.loading = false; + }); + } + + editLibrary(library: Library) { + const modalRef = this.modalService.open(LibraryEditorModalComponent); + modalRef.componentInstance.library = library; + modalRef.closed.pipe(takeUntil(this.onDestroy)).subscribe(refresh => { + if (refresh) { + this.getLibraries(); + } + }); + } + + addLibrary() { + const modalRef = this.modalService.open(LibraryEditorModalComponent); + modalRef.closed.pipe(takeUntil(this.onDestroy)).subscribe(refresh => { + if (refresh) { + this.getLibraries(); + } + }); + } + + async deleteLibrary(library: Library) { + if (await this.confirmService.confirm('Are you sure you want to delete this library? You cannot undo this action.')) { + this.deletionInProgress = true; + this.libraryService.delete(library.id).pipe(take(1)).subscribe(() => { + this.deletionInProgress = false; + this.getLibraries(); + this.toastr.success('Library has been removed'); // BUG: This is not causing a refresh + }); + } + } + + scanLibrary(library: Library) { + this.libraryService.scan(library.id).pipe(take(1)).subscribe(() => { + this.toastr.success('A scan has been queued for ' + library.name); + }); + } + + libraryType(libraryType: LibraryType) { + switch(libraryType) { + case LibraryType.Book: + return 'Book'; + case LibraryType.Comic: + return 'Comic'; + case LibraryType.Manga: + return 'Manga'; + case LibraryType.MangaImages: + return 'Images (Manga)'; + case LibraryType.ComicImages: + return 'Images (Comic)'; + } + } + +} diff --git a/UI/Web/src/app/admin/manage-settings/manage-settings.component.html b/UI/Web/src/app/admin/manage-settings/manage-settings.component.html new file mode 100644 index 000000000..c3a94bd0e --- /dev/null +++ b/UI/Web/src/app/admin/manage-settings/manage-settings.component.html @@ -0,0 +1,64 @@ +
+
+

Port and Logging Level require a manual restart of Kavita to take effect.

+
+   + Where the server place temporary files when reading. This will be cleaned up on a regular basis. + Where the server place temporary files when reading. This will be cleaned up on a regular basis. + +
+ +
+   + Port the server listens on. This is fixed if you are running on Docker. Requires restart to take effect. + Port the server listens on. This is fixed if you are running on Docker. Requires restart to take effect. + +
+ +
+   + Use debug to help identify issues. Debug can eat up a lot of disk space. Requires restart to take effect. + Port the server listens on. Requires restart to take effect. + +
+ +
+   + Send anonymous usage and error information to Kavita's servers. This includes information on your browser, error reporting as well as OS and runtime version. We will use this information to prioritize features and bug fixes. Requires restart to take effect. + Send anonymous usage and error information to Kavita's servers. This includes information on your browser, error reporting as well as OS and runtime version. We will use this information to prioritize features and bug fixes. Requires restart to take effect. +

Send anonymous usage and error information to Kavita's servers. This includes information on your browser, error reporting as well as OS and runtime version. We will use this information to prioritize features and bug fixes. Requires restart to take effect

+
+ + +
+
+ + + +

Reoccuring Tasks

+
+   + How often Kavita will scan and refresh metatdata around manga files. + How often Kavita will scan and refresh metatdata around manga files. + +
+ +
+   + How often Kavita will backup the database. + How often Kavita will backup the database. + +
+ +
+ + +
+
+
\ No newline at end of file diff --git a/UI/Web/src/app/admin/manage-settings/manage-settings.component.scss b/UI/Web/src/app/admin/manage-settings/manage-settings.component.scss new file mode 100644 index 000000000..52237a3ea --- /dev/null +++ b/UI/Web/src/app/admin/manage-settings/manage-settings.component.scss @@ -0,0 +1,11 @@ +@import '../../../assets/themes/dark.scss'; + +.accent { + font-style: italic; + font-size: 0.7rem; + background-color: $dark-form-background; + padding: 10px; + color: lightgray; + border-radius: 6px; + box-shadow: inset 0px 0px 8px 1px $dark-form-background +} \ No newline at end of file diff --git a/UI/Web/src/app/admin/manage-settings/manage-settings.component.ts b/UI/Web/src/app/admin/manage-settings/manage-settings.component.ts new file mode 100644 index 000000000..4f070d62b --- /dev/null +++ b/UI/Web/src/app/admin/manage-settings/manage-settings.component.ts @@ -0,0 +1,61 @@ +import { Component, OnInit } from '@angular/core'; +import { FormGroup, FormControl, Validators } from '@angular/forms'; +import { ToastrService } from 'ngx-toastr'; +import { take } from 'rxjs/operators'; +import { SettingsService } from '../settings.service'; +import { ServerSettings } from '../_models/server-settings'; + +@Component({ + selector: 'app-manage-settings', + templateUrl: './manage-settings.component.html', + styleUrls: ['./manage-settings.component.scss'] +}) +export class ManageSettingsComponent implements OnInit { + + serverSettings!: ServerSettings; + settingsForm: FormGroup = new FormGroup({}); + taskFrequencies: Array = []; + logLevels: Array = []; + + constructor(private settingsService: SettingsService, private toastr: ToastrService) { } + + ngOnInit(): void { + this.settingsService.getTaskFrequencies().pipe(take(1)).subscribe(frequencies => { + this.taskFrequencies = frequencies; + }); + this.settingsService.getLoggingLevels().pipe(take(1)).subscribe(levels => { + this.logLevels = levels; + }); + this.settingsService.getServerSettings().pipe(take(1)).subscribe((settings: ServerSettings) => { + this.serverSettings = settings; + this.settingsForm.addControl('cacheDirectory', new FormControl(this.serverSettings.cacheDirectory, [Validators.required])); + this.settingsForm.addControl('taskScan', new FormControl(this.serverSettings.taskScan, [Validators.required])); + this.settingsForm.addControl('taskBackup', new FormControl(this.serverSettings.taskBackup, [Validators.required])); + this.settingsForm.addControl('port', new FormControl(this.serverSettings.port, [Validators.required])); + this.settingsForm.addControl('loggingLevel', new FormControl(this.serverSettings.loggingLevel, [Validators.required])); + this.settingsForm.addControl('allowStatCollection', new FormControl(this.serverSettings.allowStatCollection, [Validators.required])); + }); + } + + resetForm() { + this.settingsForm.get('cacheDirectory')?.setValue(this.serverSettings.cacheDirectory); + this.settingsForm.get('scanTask')?.setValue(this.serverSettings.taskScan); + this.settingsForm.get('taskBackup')?.setValue(this.serverSettings.taskBackup); + this.settingsForm.get('port')?.setValue(this.serverSettings.port); + this.settingsForm.get('loggingLevel')?.setValue(this.serverSettings.loggingLevel); + this.settingsForm.get('allowStatCollection')?.setValue(this.serverSettings.allowStatCollection); + } + + saveSettings() { + const modelSettings = this.settingsForm.value; + + this.settingsService.updateServerSettings(modelSettings).pipe(take(1)).subscribe((settings: ServerSettings) => { + this.serverSettings = settings; + this.resetForm(); + this.toastr.success('Server settings updated'); + }, (err: any) => { + console.error('error: ', err); + }); + } + +} diff --git a/UI/Web/src/app/admin/manage-system/manage-system.component.html b/UI/Web/src/app/admin/manage-system/manage-system.component.html new file mode 100644 index 000000000..440192f4c --- /dev/null +++ b/UI/Web/src/app/admin/manage-system/manage-system.component.html @@ -0,0 +1,43 @@ +
+ +

About System

+
+
+
+
Version
+
{{serverInfo.kavitaVersion}}
+ +
.NET Version
+
{{serverInfo.dotNetVersion}}
+
+
+ +

More Info

+
+
+
+
Home page:
+ +
+
+
Wiki:
+ +
+
+
Discord:
+ +
+
+
Donations:
+ +
+ +
+
Feature Requests:
+ +
+
\ No newline at end of file diff --git a/UI/Web/src/app/admin/manage-system/manage-system.component.scss b/UI/Web/src/app/admin/manage-system/manage-system.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/UI/Web/src/app/admin/manage-system/manage-system.component.ts b/UI/Web/src/app/admin/manage-system/manage-system.component.ts new file mode 100644 index 000000000..30481a5d0 --- /dev/null +++ b/UI/Web/src/app/admin/manage-system/manage-system.component.ts @@ -0,0 +1,61 @@ +import { Component, OnInit } from '@angular/core'; +import { FormControl, FormGroup, Validators } from '@angular/forms'; +import { ToastrService } from 'ngx-toastr'; +import { take } from 'rxjs/operators'; +import { ServerService } from 'src/app/_services/server.service'; +import { SettingsService } from '../settings.service'; +import { ServerInfo } from '../_models/server-info'; +import { ServerSettings } from '../_models/server-settings'; + +@Component({ + selector: 'app-manage-system', + templateUrl: './manage-system.component.html', + styleUrls: ['./manage-system.component.scss'] +}) +export class ManageSystemComponent implements OnInit { + + settingsForm: FormGroup = new FormGroup({}); + serverSettings!: ServerSettings; + serverInfo!: ServerInfo; + + constructor(private settingsService: SettingsService, private toastr: ToastrService, private serverService: ServerService) { } + + ngOnInit(): void { + + this.serverService.getServerInfo().pipe(take(1)).subscribe(info => { + this.serverInfo = info; + }); + + this.settingsService.getServerSettings().pipe(take(1)).subscribe((settings: ServerSettings) => { + this.serverSettings = settings; + this.settingsForm.addControl('cacheDirectory', new FormControl(this.serverSettings.cacheDirectory, [Validators.required])); + this.settingsForm.addControl('taskScan', new FormControl(this.serverSettings.taskScan, [Validators.required])); + this.settingsForm.addControl('taskBackup', new FormControl(this.serverSettings.taskBackup, [Validators.required])); + this.settingsForm.addControl('port', new FormControl(this.serverSettings.port, [Validators.required])); + this.settingsForm.addControl('loggingLevel', new FormControl(this.serverSettings.loggingLevel, [Validators.required])); + this.settingsForm.addControl('allowStatCollection', new FormControl(this.serverSettings.allowStatCollection, [Validators.required])); + }); + } + + resetForm() { + this.settingsForm.get('cacheDirectory')?.setValue(this.serverSettings.cacheDirectory); + this.settingsForm.get('scanTask')?.setValue(this.serverSettings.taskScan); + this.settingsForm.get('taskBackup')?.setValue(this.serverSettings.taskBackup); + this.settingsForm.get('port')?.setValue(this.serverSettings.port); + this.settingsForm.get('loggingLevel')?.setValue(this.serverSettings.loggingLevel); + this.settingsForm.get('allowStatCollection')?.setValue(this.serverSettings.allowStatCollection); + } + + saveSettings() { + const modelSettings = this.settingsForm.value; + + this.settingsService.updateServerSettings(modelSettings).pipe(take(1)).subscribe((settings: ServerSettings) => { + this.serverSettings = settings; + this.resetForm(); + this.toastr.success('Server settings updated'); + }, (err: any) => { + console.error('error: ', err); + }); + } + +} diff --git a/UI/Web/src/app/admin/manage-users/manage-users.component.html b/UI/Web/src/app/admin/manage-users/manage-users.component.html new file mode 100644 index 000000000..6d4f93352 --- /dev/null +++ b/UI/Web/src/app/admin/manage-users/manage-users.component.html @@ -0,0 +1,50 @@ + + +
+
+

Users

+
+
+
    +
  • +
    +

    + {{member.username | titlecase}} Admin +
    + + + +
    +

    +
    Last Active: + Never + + {{member.lastActive | date: 'MM/dd/yyyy'}} + +
    +
    Sharing: {{formatLibraries(member)}}
    +
    + Roles: None + + {{role}} + + +
    +
    +
  • +
  • +
    + +
    +
  • +
  • + There are no other users. +
  • +
+ + + +
\ No newline at end of file diff --git a/UI/Web/src/app/admin/manage-users/manage-users.component.scss b/UI/Web/src/app/admin/manage-users/manage-users.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/UI/Web/src/app/admin/manage-users/manage-users.component.ts b/UI/Web/src/app/admin/manage-users/manage-users.component.ts new file mode 100644 index 000000000..402cde3f2 --- /dev/null +++ b/UI/Web/src/app/admin/manage-users/manage-users.component.ts @@ -0,0 +1,107 @@ +import { Component, OnInit } from '@angular/core'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { take } from 'rxjs/operators'; +import { MemberService } from 'src/app/_services/member.service'; +import { Member } from 'src/app/_models/member'; +import { User } from 'src/app/_models/user'; +import { AccountService } from 'src/app/_services/account.service'; +import { LibraryAccessModalComponent } from '../_modals/library-access-modal/library-access-modal.component'; +import { ToastrService } from 'ngx-toastr'; +import { ResetPasswordModalComponent } from '../_modals/reset-password-modal/reset-password-modal.component'; +import { ConfirmService } from 'src/app/shared/confirm.service'; +import { EditRbsModalComponent } from '../_modals/edit-rbs-modal/edit-rbs-modal.component'; + +@Component({ + selector: 'app-manage-users', + templateUrl: './manage-users.component.html', + styleUrls: ['./manage-users.component.scss'] +}) +export class ManageUsersComponent implements OnInit { + + members: Member[] = []; + loggedInUsername = ''; + + // Create User functionality + createMemberToggle = false; + loadingMembers = false; + + constructor(private memberService: MemberService, + private accountService: AccountService, + private modalService: NgbModal, + private toastr: ToastrService, + private confirmService: ConfirmService) { + this.accountService.currentUser$.pipe(take(1)).subscribe((user: User) => { + this.loggedInUsername = user.username; + }); + } + + ngOnInit(): void { + this.loadMembers(); + } + + loadMembers() { + this.loadingMembers = true; + this.memberService.getMembers().subscribe(members => { + this.members = members.filter(member => member.username !== this.loggedInUsername); + this.loadingMembers = false; + }); + } + + canEditMember(member: Member): boolean { + return this.loggedInUsername !== member.username; + } + + createMember() { + this.createMemberToggle = true; + } + + onMemberCreated(success: boolean) { + this.createMemberToggle = false; + this.loadMembers(); + } + + openEditLibraryAccess(member: Member) { + const modalRef = this.modalService.open(LibraryAccessModalComponent); + modalRef.componentInstance.member = member; + modalRef.closed.subscribe(result => { + if (result) { + this.loadMembers(); + } + }); + } + + async deleteUser(member: Member) { + if (await this.confirmService.confirm('Are you sure you want to delete this user?')) { + this.memberService.deleteMember(member.username).subscribe(() => { + this.loadMembers(); + this.toastr.success(member.username + ' has been deleted.'); + }); + } + } + + openEditRole(member: Member) { + const modalRef = this.modalService.open(EditRbsModalComponent); + modalRef.componentInstance.member = member; + } + + updatePassword(member: Member) { + const modalRef = this.modalService.open(ResetPasswordModalComponent); + modalRef.componentInstance.member = member; + } + + formatLibraries(member: Member) { + if (member.libraries.length === 0) { + return 'None'; + } + + return member.libraries.map(item => item.name).join(', '); + } + + hasAdminRole(member: Member) { + return member.roles.indexOf('Admin') >= 0; + } + + getRoles(member: Member) { + return member.roles.filter(item => item != 'Pleb'); + } +} diff --git a/UI/Web/src/app/admin/settings.service.ts b/UI/Web/src/app/admin/settings.service.ts new file mode 100644 index 000000000..c791d9abf --- /dev/null +++ b/UI/Web/src/app/admin/settings.service.ts @@ -0,0 +1,34 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { environment } from 'src/environments/environment'; +import { ServerSettings } from './_models/server-settings'; + +@Injectable({ + providedIn: 'root' +}) +export class SettingsService { + + baseUrl = environment.apiUrl; + + constructor(private http: HttpClient) { } + + getServerSettings() { + return this.http.get(this.baseUrl + 'settings'); + } + + updateServerSettings(model: ServerSettings) { + return this.http.post(this.baseUrl + 'settings', model); + } + + getTaskFrequencies() { + return this.http.get(this.baseUrl + 'settings/task-frequencies'); + } + + getLoggingLevels() { + return this.http.get(this.baseUrl + 'settings/log-levels'); + } + + getLibraryTypes() { + return this.http.get(this.baseUrl + 'settings/library-types'); + } +} diff --git a/UI/Web/src/app/all-collections/all-collections.component.html b/UI/Web/src/app/all-collections/all-collections.component.html new file mode 100644 index 000000000..38b7195f3 --- /dev/null +++ b/UI/Web/src/app/all-collections/all-collections.component.html @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/UI/Web/src/app/all-collections/all-collections.component.scss b/UI/Web/src/app/all-collections/all-collections.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/UI/Web/src/app/all-collections/all-collections.component.ts b/UI/Web/src/app/all-collections/all-collections.component.ts new file mode 100644 index 000000000..6a37eb3d3 --- /dev/null +++ b/UI/Web/src/app/all-collections/all-collections.component.ts @@ -0,0 +1,108 @@ +import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { ToastrService } from 'ngx-toastr'; +import { EditCollectionTagsComponent } from '../_modals/edit-collection-tags/edit-collection-tags.component'; +import { CollectionTag } from '../_models/collection-tag'; +import { Pagination } from '../_models/pagination'; +import { Series } from '../_models/series'; +import { Action, ActionFactoryService, ActionItem } from '../_services/action-factory.service'; +import { CollectionTagService } from '../_services/collection-tag.service'; +import { SeriesService } from '../_services/series.service'; + +/** + * This component is used as a standard layout for any card detail. ie) series, in-progress, collections, etc. + */ +@Component({ + selector: 'app-all-collections', + templateUrl: './all-collections.component.html', + styleUrls: ['./all-collections.component.scss'] +}) +export class AllCollectionsComponent implements OnInit { + + isLoading: boolean = true; + collections: CollectionTag[] = []; + collectionTagId: number = 0; // 0 is not a valid id, if 0, we will load all tags + collectionTagName: string = ''; + series: Array = []; + seriesPagination!: Pagination; + collectionTagActions: ActionItem[] = []; + + constructor(private collectionService: CollectionTagService, private router: Router, private route: ActivatedRoute, private seriesService: SeriesService, private toastr: ToastrService, private actionFactoryService: ActionFactoryService, private modalService: NgbModal) { + this.router.routeReuseStrategy.shouldReuseRoute = () => false; + + const routeId = this.route.snapshot.paramMap.get('id'); + if (routeId != null) { + this.collectionTagId = parseInt(routeId, 10); + this.collectionService.allTags().subscribe(tags => { + this.collections = tags; + const matchingTags = this.collections.filter(t => t.id === this.collectionTagId); + if (matchingTags.length === 0) { + this.toastr.error('You don\'t have access to any libraries this tag belongs to or this tag is invalid'); + this.router.navigate(['collections']); + return; + } + this.collectionTagName = tags.filter(item => item.id === this.collectionTagId)[0].title; + }); + } + } + + ngOnInit() { + this.loadPage(); + this.collectionTagActions = this.actionFactoryService.getCollectionTagActions(this.handleCollectionActionCallback.bind(this)); + } + + + loadCollection(item: CollectionTag) { + this.collectionTagId = item.id; + this.collectionTagName = item.title; + this.router.navigate(['collections', this.collectionTagId]); + this.loadPage(); + } + + onPageChange(pagination: Pagination) { + this.router.navigate(['collections', this.collectionTagId], {replaceUrl: true, queryParamsHandling: 'merge', queryParams: {page: this.seriesPagination.currentPage} }); + } + + loadPage() { + // TODO: See if we can move this pagination code into layout code + const page = this.route.snapshot.queryParamMap.get('page'); + if (page != null) { + if (this.seriesPagination === undefined || this.seriesPagination === null) { + this.seriesPagination = {currentPage: 0, itemsPerPage: 30, totalItems: 0, totalPages: 1}; + } + this.seriesPagination.currentPage = parseInt(page, 10); + } + // Reload page after a series is updated or first load + if (this.collectionTagId === 0) { + this.collectionService.allTags().subscribe(tags => { + this.collections = tags; + this.isLoading = false; + }); + } else { + this.seriesService.getSeriesForTag(this.collectionTagId, this.seriesPagination?.currentPage, this.seriesPagination?.itemsPerPage).subscribe(tags => { + this.series = tags.result; + this.seriesPagination = tags.pagination; + this.isLoading = false; + window.scrollTo(0, 0); + }); + } + } + + handleCollectionActionCallback(action: Action, collectionTag: CollectionTag) { + switch (action) { + case(Action.Edit): + const modalRef = this.modalService.open(EditCollectionTagsComponent, { size: 'lg', scrollable: true }); + modalRef.componentInstance.tag = collectionTag; + modalRef.closed.subscribe((reloadNeeded: boolean) => { + if (reloadNeeded) { + this.loadPage(); + } + }); + break; + default: + break; + } + } + +} diff --git a/UI/Web/src/app/app-routing.module.ts b/UI/Web/src/app/app-routing.module.ts new file mode 100644 index 000000000..691410f7c --- /dev/null +++ b/UI/Web/src/app/app-routing.module.ts @@ -0,0 +1,61 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { AllCollectionsComponent } from './all-collections/all-collections.component'; +import { HomeComponent } from './home/home.component'; +import { LibraryDetailComponent } from './library-detail/library-detail.component'; +import { LibraryComponent } from './library/library.component'; +import { NotConnectedComponent } from './not-connected/not-connected.component'; +import { SeriesDetailComponent } from './series-detail/series-detail.component'; +import { RecentlyAddedComponent } from './recently-added/recently-added.component'; +import { UserLoginComponent } from './user-login/user-login.component'; +import { UserPreferencesComponent } from './user-preferences/user-preferences.component'; +import { AuthGuard } from './_guards/auth.guard'; +import { LibraryAccessGuard } from './_guards/library-access.guard'; + +// TODO: Once we modularize the components, use this and measure performance impact: https://angular.io/guide/lazy-loading-ngmodules#preloading-modules + +const routes: Routes = [ + {path: '', component: HomeComponent}, + { + path: 'admin', + loadChildren: () => import('./admin/admin.module').then(m => m.AdminModule) + }, + {path: 'library', component: LibraryComponent}, + { + path: '', + runGuardsAndResolvers: 'always', + canActivate: [AuthGuard, LibraryAccessGuard], + children: [ + {path: 'library/:id', component: LibraryDetailComponent}, + {path: 'library/:libraryId/series/:seriesId', component: SeriesDetailComponent}, + { + path: 'library/:libraryId/series/:seriesId/manga', + loadChildren: () => import('../app/manga-reader/manga-reader.module').then(m => m.MangaReaderModule) + }, + { + path: 'library/:libraryId/series/:seriesId/book', + loadChildren: () => import('../app/book-reader/book-reader.module').then(m => m.BookReaderModule) + } + ] + }, + { + path: '', + runGuardsAndResolvers: 'always', + canActivate: [AuthGuard], + children: [ + {path: 'recently-added', component: RecentlyAddedComponent}, + {path: 'collections', component: AllCollectionsComponent}, + {path: 'collections/:id', component: AllCollectionsComponent}, + ] + }, + {path: 'login', component: UserLoginComponent}, + {path: 'preferences', component: UserPreferencesComponent}, + {path: 'no-connection', component: NotConnectedComponent}, + {path: '**', component: HomeComponent, pathMatch: 'full'} +]; + +@NgModule({ + imports: [RouterModule.forRoot(routes, {scrollPositionRestoration: 'enabled'})], + exports: [RouterModule] +}) +export class AppRoutingModule { } diff --git a/UI/Web/src/app/app.component.html b/UI/Web/src/app/app.component.html new file mode 100644 index 000000000..5b37261b3 --- /dev/null +++ b/UI/Web/src/app/app.component.html @@ -0,0 +1,5 @@ + +
+ + +
diff --git a/UI/Web/src/app/app.component.scss b/UI/Web/src/app/app.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/UI/Web/src/app/app.component.ts b/UI/Web/src/app/app.component.ts new file mode 100644 index 000000000..3e9952e6e --- /dev/null +++ b/UI/Web/src/app/app.component.ts @@ -0,0 +1,30 @@ +import { Component, OnInit } from '@angular/core'; +import { AccountService } from './_services/account.service'; +import { NavService } from './_services/nav.service'; + +@Component({ + selector: 'app-root', + templateUrl: './app.component.html', + styleUrls: ['./app.component.scss'] +}) +export class AppComponent implements OnInit { + + constructor(private accountService: AccountService, public navService: NavService) { } + + ngOnInit(): void { + this.setCurrentUser(); + } + + + setCurrentUser() { + const user = this.accountService.getUserFromLocalStorage(); + + this.accountService.setCurrentUser(user); + + if (user) { + this.navService.setDarkMode(user.preferences.siteDarkMode); + } else { + this.navService.setDarkMode(true); + } + } +} diff --git a/UI/Web/src/app/app.module.ts b/UI/Web/src/app/app.module.ts new file mode 100644 index 000000000..cfb9f8084 --- /dev/null +++ b/UI/Web/src/app/app.module.ts @@ -0,0 +1,142 @@ +import { BrowserModule, Title } from '@angular/platform-browser'; +import { APP_INITIALIZER, ErrorHandler, NgModule } from '@angular/core'; + +import { AppRoutingModule } from './app-routing.module'; +import { AppComponent } from './app.component'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { HomeComponent } from './home/home.component'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http'; +import { NgbAccordionModule, NgbCollapseModule, NgbDropdownModule, NgbNavModule, NgbPaginationModule, NgbRatingModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; +import { NavHeaderComponent } from './nav-header/nav-header.component'; +import { JwtInterceptor } from './_interceptors/jwt.interceptor'; +import { UserLoginComponent } from './user-login/user-login.component'; +import { ToastrModule } from 'ngx-toastr'; +import { ErrorInterceptor } from './_interceptors/error.interceptor'; +import { LibraryComponent } from './library/library.component'; +import { SharedModule } from './shared/shared.module'; +import { LibraryDetailComponent } from './library-detail/library-detail.component'; +import { SeriesDetailComponent } from './series-detail/series-detail.component'; +import { NotConnectedComponent } from './not-connected/not-connected.component'; +import { UserPreferencesComponent } from './user-preferences/user-preferences.component'; +import { AutocompleteLibModule } from 'angular-ng-autocomplete'; +import { EditSeriesModalComponent } from './_modals/edit-series-modal/edit-series-modal.component'; +import { ReviewSeriesModalComponent } from './_modals/review-series-modal/review-series-modal.component'; +import { LazyLoadImageModule} from 'ng-lazyload-image'; +import { CarouselModule } from './carousel/carousel.module'; +import { NgxSliderModule } from '@angular-slider/ngx-slider'; + +import * as Sentry from '@sentry/angular'; +import { environment } from 'src/environments/environment'; +import { version } from 'package.json'; +import { Router } from '@angular/router'; +import { RewriteFrames as RewriteFramesIntegration } from '@sentry/integrations'; +import { Dedupe as DedupeIntegration } from '@sentry/integrations'; +import { PersonBadgeComponent } from './person-badge/person-badge.component'; +import { TypeaheadModule } from './typeahead/typeahead.module'; +import { AllCollectionsComponent } from './all-collections/all-collections.component'; +import { EditCollectionTagsComponent } from './_modals/edit-collection-tags/edit-collection-tags.component'; +import { RecentlyAddedComponent } from './recently-added/recently-added.component'; + +let sentryProviders: any[] = []; + +if (environment.production) { + Sentry.init({ + dsn: 'https://db1a1f6445994b13a6f479512aecdd48@o641015.ingest.sentry.io/5757426', + environment: environment.production ? 'prod' : 'dev', + release: version, + integrations: [ + new Sentry.Integrations.GlobalHandlers({ + onunhandledrejection: true, + onerror: true + }), + new DedupeIntegration(), + new RewriteFramesIntegration(), + ], + ignoreErrors: [new RegExp(/\/api\/admin/)], + tracesSampleRate: 0, + }); + + Sentry.configureScope(scope => { + scope.setUser({ + username: 'Not authorized' + }); + scope.setTag('production', environment.production); + scope.setTag('version', version); + }); + + sentryProviders = [{ + provide: ErrorHandler, + useValue: Sentry.createErrorHandler({ + showDialog: false, + }), + }, + { + provide: Sentry.TraceService, + deps: [Router], + }, + { + provide: APP_INITIALIZER, + useFactory: () => () => {}, + deps: [Sentry.TraceService], + multi: true, + }]; +} + +@NgModule({ + declarations: [ + AppComponent, + HomeComponent, + NavHeaderComponent, + UserLoginComponent, + LibraryComponent, + LibraryDetailComponent, + SeriesDetailComponent, + NotConnectedComponent, // Move into ExtrasModule + UserPreferencesComponent, // Move into SettingsModule + EditSeriesModalComponent, + ReviewSeriesModalComponent, + PersonBadgeComponent, + AllCollectionsComponent, + EditCollectionTagsComponent, + RecentlyAddedComponent, + ], + imports: [ + HttpClientModule, + BrowserModule, + AppRoutingModule, + BrowserAnimationsModule, + ReactiveFormsModule, + NgbDropdownModule, // Nav + AutocompleteLibModule, // Nav + NgbTooltipModule, // Shared & SettingsModule + NgbRatingModule, // Series Detail + NgbCollapseModule, // Series Edit Modal + NgbNavModule, // Series Edit Modal + NgbAccordionModule, // User Preferences + NgxSliderModule, // User Preference + NgbPaginationModule, + LazyLoadImageModule, + SharedModule, + CarouselModule, + TypeaheadModule, + FormsModule, // EditCollection Modal + ToastrModule.forRoot({ + positionClass: 'toast-bottom-right', + preventDuplicates: true, + timeOut: 6000, + countDuplicates: true, + autoDismiss: true + }), + ], + providers: [ + {provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true}, + {provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true}, + //{ provide: LAZYLOAD_IMAGE_HOOKS, useClass: ScrollHooks } // Great, but causes flashing after modals close + Title, + ...sentryProviders, + ], + entryComponents: [], + bootstrap: [AppComponent] +}) +export class AppModule { } diff --git a/UI/Web/src/app/book-reader/_models/book-chapter-item.ts b/UI/Web/src/app/book-reader/_models/book-chapter-item.ts new file mode 100644 index 000000000..75a58d3d5 --- /dev/null +++ b/UI/Web/src/app/book-reader/_models/book-chapter-item.ts @@ -0,0 +1,6 @@ +export interface BookChapterItem { + title: string; + page: number; + part: string; + children: Array; +} diff --git a/UI/Web/src/app/book-reader/book-reader.module.ts b/UI/Web/src/app/book-reader/book-reader.module.ts new file mode 100644 index 000000000..a327128e5 --- /dev/null +++ b/UI/Web/src/app/book-reader/book-reader.module.ts @@ -0,0 +1,25 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { BookReaderComponent } from './book-reader/book-reader.component'; +import { BookReaderRoutingModule } from './book-reader.router.module'; +import { SharedModule } from '../shared/shared.module'; +import { SafeStylePipe } from './safe-style.pipe'; +import { ReactiveFormsModule } from '@angular/forms'; +import { NgbProgressbarModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; + + +@NgModule({ + declarations: [BookReaderComponent, SafeStylePipe], + imports: [ + CommonModule, + BookReaderRoutingModule, + ReactiveFormsModule, + SharedModule, + NgbProgressbarModule, + NgbTooltipModule + ], exports: [ + BookReaderComponent, + SafeStylePipe + ] +}) +export class BookReaderModule { } diff --git a/UI/Web/src/app/book-reader/book-reader.router.module.ts b/UI/Web/src/app/book-reader/book-reader.router.module.ts new file mode 100644 index 000000000..a82163c83 --- /dev/null +++ b/UI/Web/src/app/book-reader/book-reader.router.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { BookReaderComponent } from './book-reader/book-reader.component'; + +const routes: Routes = [ + { + path: ':chapterId', + component: BookReaderComponent, + } +]; + + +@NgModule({ + imports: [RouterModule.forChild(routes), ], + exports: [RouterModule] +}) +export class BookReaderRoutingModule { } diff --git a/UI/Web/src/app/book-reader/book-reader/book-reader.component.html b/UI/Web/src/app/book-reader/book-reader/book-reader.component.html new file mode 100644 index 000000000..fb727f93f --- /dev/null +++ b/UI/Web/src/app/book-reader/book-reader/book-reader.component.html @@ -0,0 +1,134 @@ +
+
+ Skip to main content + + +
+

Book Settings + +

+ +
+
+
+
+ +
+
+ + +
+
+
+
+ + + {{pageStyles['font-size']}} + +
+
+ + + {{pageStyles['line-height']}} + +
+
+ + + {{pageStyles['margin-right']}} + +
+
+ + +
+
+ + + +
+
+ + The ability to click the sides of the page to page left and right + The ability to click the sides of the page to page left and right + +
+
+ + +
+
+
+
{{pageNum}}
+
+ +
+
{{maxPages - 1}}
+
+
+

Table of Contents

+
+ This book does not have Table of Contents set in the metadata or a toc file +
+
+ +
+ + + +
+
+
+
+ + + +
+
+ +
+
+
+
+ +
+ +
+
+ + +
+ + + +
{{bookTitle}}
+ + +
+
+ +
\ No newline at end of file diff --git a/UI/Web/src/app/book-reader/book-reader/book-reader.component.scss b/UI/Web/src/app/book-reader/book-reader/book-reader.component.scss new file mode 100644 index 000000000..042274399 --- /dev/null +++ b/UI/Web/src/app/book-reader/book-reader/book-reader.component.scss @@ -0,0 +1,203 @@ +@font-face { + font-family: "Fira_Sans"; + src: url(../../../assets/fonts/Fira_Sans/FiraSans-Regular.ttf) format("truetype"); +} + +@font-face { + font-family: "Lato"; + src: url(../../../assets/fonts/Lato/Lato-Regular.ttf) format("truetype"); +} + +@font-face { + font-family: "Libre_Baskerville"; + src: url(../../../assets/fonts/Libre_Baskerville/LibreBaskerville-Regular.ttf) format("truetype"); +} + +@font-face { + font-family: "Merriweather"; + src: url(../../../assets/fonts/Merriweather/Merriweather-Regular.ttf) format("truetype"); +} + +@font-face { + font-family: "Nanum_Gothic"; + src: url(../../../assets/fonts/Nanum_Gothic/NanumGothic-Regular.ttf) format("truetype"); +} + +@font-face { + font-family: "RocknRoll_One"; + src: url(../../../assets/fonts/RocknRoll_One/RocknRollOne-Regular.ttf) format("truetype"); +} + +$primary-color: #0062cc; + +.control-container { + padding-bottom: 5px; +} + +.table-of-contents li { + cursor: pointer; + + &.active { + font-weight: bold; + } +} + + +.dark-mode { + + color: #dcdcdc !important; + background-image: none !important; + background-color: #292929 !important; + + *:not(code), *:not(a) { + background-color: #292929; + box-shadow: none; + text-shadow: none; + border-radius: unset; + color: #dcdcdc !important; + } + + *:not(input), *:not(code), *:not(:link) { + color: #dcdcdc !important; + } + + code { + color: #e83e8c !important; + } + + .btn-icon { + background-color: transparent; + } + + :link, a { + color: #8db2e5 !important; + } + + // Coppied + // html, body { + // color: #dcdcdc !important; + // background-image: none !important; + // background-color: #292929 !important; + // } + + // html::before, body::before { + // background-image: none !important; + // } + + // html *:not(input) {color: #dcdcdc !important} + // html * {background-color: rgb(41, 41, 41, 0.90) !important} + + // html *, html *[id], html *[class] { + // box-shadow: none !important; + // text-shadow: none !important; + // border-radius: unset !important; + // border-color: #555555 !important; + // outline-color: #555555 !important; + // } + + img, img[src] { + z-index: 1; + filter: brightness(0.85) !important; + background-color: initial !important; + } + + // video, video[src] { + // z-index: 1; + // background-color: transparent !important; + // } + + // input:not([type='button']):not([type='submit']) { + // color: #dcdcdc !important; + // background-image: none !important; + // background-color: #333333 !important; + // } + + // textarea, textarea[class], input[type='text'], input[type='text'][class] { + // color: #dcdcdc !important; + // background-color: #555555 !important; + // } + + // svg:not([fill]) {fill: #7d7d7d !important} + // li, select {background-image: none !important} + // input[type='text'], input[type='search'] {text-indent: 10px} + // a {background-color: rgba(255, 255, 255, 0.01) !important} + // html cite, html cite *, html cite *[class] {color: #029833 !important} + // svg[fill], button, input[type='button'], input[type='submit'] {opacity: 0.85 !important} + + // :before {color: #dcdcdc !important} + // :link:not(cite), :link *:not(cite) {color: #8db2e5 !important} + // :visited, :visited *, :visited *[class] {color: rgb(211, 138, 138) !important} + :visited, :visited *, :visited *[class] {color: rgb(211, 138, 138) !important} + :link:not(cite), :link *:not(cite) {color: #8db2e5 !important} +} + +.reading-bar { + background-color: white; + overflow: hidden; +} + +@media(max-width: 875px) { + .book-title { + display: none; + } + +} + +.book-title { + margin-top: 10px; + text-align: center; + text-transform: capitalize; +} + +.reading-section { + height: 100vh; +} + +.drawer-body { + padding-bottom: 20px; +} + + + +// Click to Paginate styles +.icon-primary-color { + color: $primary-color; +} + +.dark-mode .overlay { + opacity: 0; +} + + +.right { + position: fixed; + right: 0px; + top: 0px; + width: 20%; + height: 100%; + z-index: 2; + cursor: pointer; + opacity: 0; + background: transparent; +} + +.left { + position: fixed; + left: 0px; + top: 0px; + width: 20%; + height: 100%; + z-index: 2; + cursor: pointer; + opacity: 0; + background: transparent; +} + +.highlight { + background-color: rgba(65, 225, 100, 0.5) !important; + animation: fadein .5s both; +} +.highlight-2 { + background-color: rgba(65, 105, 225, 0.5) !important; + animation: fadein .5s both; +} \ No newline at end of file diff --git a/UI/Web/src/app/book-reader/book-reader/book-reader.component.ts b/UI/Web/src/app/book-reader/book-reader/book-reader.component.ts new file mode 100644 index 000000000..8f6d6c8ca --- /dev/null +++ b/UI/Web/src/app/book-reader/book-reader/book-reader.component.ts @@ -0,0 +1,811 @@ +import { AfterViewInit, Component, ElementRef, HostListener, OnDestroy, OnInit, Renderer2, RendererStyleFlags2, ViewChild } from '@angular/core'; +import {Location} from '@angular/common'; +import { FormControl, FormGroup } from '@angular/forms'; +import { ActivatedRoute, Router } from '@angular/router'; +import { ToastrService } from 'ngx-toastr'; +import { forkJoin, fromEvent, Subject } from 'rxjs'; +import { debounceTime, take, takeUntil } from 'rxjs/operators'; +import { Chapter } from 'src/app/_models/chapter'; +import { User } from 'src/app/_models/user'; +import { AccountService } from 'src/app/_services/account.service'; +import { NavService } from 'src/app/_services/nav.service'; +import { ReaderService } from 'src/app/_services/reader.service'; +import { SeriesService } from 'src/app/_services/series.service'; +import { DomSanitizer, SafeHtml } from '@angular/platform-browser'; + +import { BookService } from '../book.service'; +import { KEY_CODES } from 'src/app/shared/_services/utility.service'; +import { BookChapterItem } from '../_models/book-chapter-item'; +import { animate, state, style, transition, trigger } from '@angular/animations'; +import { Stack } from 'src/app/shared/data-structures/stack'; +import { Preferences } from 'src/app/_models/preferences/preferences'; +import { MemberService } from 'src/app/_services/member.service'; +import { ReadingDirection } from 'src/app/_models/preferences/reading-direction'; + + +interface PageStyle { + 'font-family': string; + 'font-size': string; + 'line-height': string; + 'margin-left': string; + 'margin-right': string; +} + +interface HistoryPoint { + page: number; + scrollOffset: number; +} + +const TOP_OFFSET = -50 * 1.5; // px the sticky header takes up +const SCROLL_PART_TIMEOUT = 5000; + +@Component({ + selector: 'app-book-reader', + templateUrl: './book-reader.component.html', + styleUrls: ['./book-reader.component.scss'], + animations: [ + trigger('isLoading', [ + state('false', style({opacity: 1})), + state('true', style({opacity: 0})), + transition('false <=> true', animate('200ms')) + ]), + trigger('fade', [ + state('true', style({opacity: 0})), + state('false', style({opacity: 0.5})), + transition('false <=> true', animate('4000ms')) + ]) + ] +}) +export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { + + libraryId!: number; + seriesId!: number; + volumeId!: number; + chapterId!: number; + chapter!: Chapter; + + chapters: Array = []; + + pageNum = 0; + maxPages = 1; + adhocPageHistory: Stack = new Stack(); + + user!: User; + + drawerOpen = false; + isLoading = true; + bookTitle: string = ''; + settingsForm: FormGroup = new FormGroup({}); + clickToPaginate = false; + + clickToPaginateVisualOverlay = false; + clickToPaginateVisualOverlayTimeout: any = undefined; // For animation + clickToPaginateVisualOverlayTimeout2: any = undefined; // For kicking off animation, giving enough time to render html + + page: SafeHtml | undefined = undefined; // This is the html we get from the server + styles: SafeHtml | undefined = undefined; // This is the css we get from the server + + @ViewChild('readingHtml', {static: false}) readingHtml!: ElementRef; + @ViewChild('readingSection', {static: false}) readingSectionElemRef!: ElementRef; + @ViewChild('stickyTop', {static: false}) stickyTopElemRef!: ElementRef; + + + /** + * Internal property used to capture all the different css properties to render on all elements + */ + pageStyles!: PageStyle; + /** + * List of all font families user can select from + */ + fontFamilies: Array = []; + + + darkMode = false; + backgroundColor: string = 'white'; + readerStyles: string = ''; + darkModeStyleElem!: HTMLElement; + topOffset: number = 0; // Offset for drawer and rendering canvas + scrollbarNeeded = false; // Used for showing/hiding bottom action bar + readingDirection: ReadingDirection = ReadingDirection.LeftToRight; + + private readonly onDestroy = new Subject(); + + pageAnchors: {[n: string]: number } = {}; + currentPageAnchor: string = ''; + intersectionObserver: IntersectionObserver = new IntersectionObserver((entries) => this.handleIntersection(entries), { threshold: [1] }); + /** + * Last seen bookmark part path + */ + lastSeenScrollPartPath: string = ''; + + // Temp hack: Override background color for reader and restore it onDestroy + originalBodyColor: string | undefined; + + + + darkModeStyles = ` + *:not(input), *:not(select), *:not(code), *:not(:link), *:not(.ngx-toastr) { + color: #dcdcdc !important; + } + + code { + color: #e83e8c !important; + } + + // .btn-icon { + // background-color: transparent; + // } + + :link, a { + color: #8db2e5 !important; + } + + img, img[src] { + z-index: 1; + filter: brightness(0.85) !important; + background-color: initial !important; + } + `; + + constructor(private route: ActivatedRoute, private router: Router, private accountService: AccountService, + private seriesService: SeriesService, private readerService: ReaderService, private location: Location, + private renderer: Renderer2, private navService: NavService, private toastr: ToastrService, + private domSanitizer: DomSanitizer, private bookService: BookService, private memberService: MemberService) { + this.navService.hideNavBar(); + + this.darkModeStyleElem = this.renderer.createElement('style'); + this.darkModeStyleElem.innerHTML = this.darkModeStyles; + this.fontFamilies = this.bookService.getFontFamilies(); + + this.accountService.currentUser$.pipe(take(1)).subscribe(user => { + if (user) { + this.user = user; + + if (this.user.preferences.bookReaderFontFamily === undefined) { + this.user.preferences.bookReaderFontFamily = 'default'; + } + if (this.user.preferences.bookReaderFontSize === undefined) { + this.user.preferences.bookReaderFontSize = 100; + } + if (this.user.preferences.bookReaderLineSpacing === undefined) { + this.user.preferences.bookReaderLineSpacing = 100; + } + if (this.user.preferences.bookReaderMargin === undefined) { + this.user.preferences.bookReaderMargin = 0; + } + if (this.user.preferences.bookReaderReadingDirection === undefined) { + this.user.preferences.bookReaderReadingDirection = ReadingDirection.LeftToRight; + } + + this.readingDirection = this.user.preferences.bookReaderReadingDirection; + + this.clickToPaginate = this.user.preferences.bookReaderTapToPaginate; + + this.settingsForm.addControl('bookReaderFontFamily', new FormControl(user.preferences.bookReaderFontFamily, [])); + + this.settingsForm.get('bookReaderFontFamily')!.valueChanges.pipe(takeUntil(this.onDestroy)).subscribe(changes => { + this.updateFontFamily(changes); + }); + } + + const bodyNode = document.querySelector('body'); + if (bodyNode !== undefined && bodyNode !== null) { + this.originalBodyColor = bodyNode.style.background; + } + this.resetSettings(); + }); + } + + ngAfterViewInit() { + // check scroll offset and if offset is after any of the "id" markers, bookmark it + fromEvent(window, 'scroll') + .pipe(debounceTime(200), takeUntil(this.onDestroy)).subscribe((event) => { + if (this.isLoading) return; + if (Object.keys(this.pageAnchors).length === 0) return; + // get the height of the document so we can capture markers that are halfway on the document viewport + const verticalOffset = (window.pageYOffset + || document.documentElement.scrollTop + || document.body.scrollTop || 0) + (document.body.offsetHeight / 2); + + const alreadyReached = Object.values(this.pageAnchors).filter((i: number) => i <= verticalOffset); + if (alreadyReached.length > 0) { + this.currentPageAnchor = Object.keys(this.pageAnchors)[alreadyReached.length - 1]; + } else { + this.currentPageAnchor = ''; + } + + if (this.lastSeenScrollPartPath !== '') { + this.readerService.bookmark(this.seriesId, this.volumeId, this.chapterId, this.pageNum, this.lastSeenScrollPartPath).pipe(take(1)).subscribe(() => {/* No operation */}); + } + }); + } + + ngOnDestroy(): void { + const bodyNode = document.querySelector('body'); + if (bodyNode !== undefined && bodyNode !== null && this.originalBodyColor !== undefined) { + bodyNode.style.background = this.originalBodyColor; + if (this.user.preferences.siteDarkMode) { + bodyNode.classList.add('bg-dark'); + } + } + this.navService.showNavBar(); + + const head = document.querySelector('head'); + this.renderer.removeChild(head, this.darkModeStyleElem); + + if (this.clickToPaginateVisualOverlayTimeout !== undefined) { + clearTimeout(this.clickToPaginateVisualOverlayTimeout); + this.clickToPaginateVisualOverlayTimeout = undefined; + } + if (this.clickToPaginateVisualOverlayTimeout2 !== undefined) { + clearTimeout(this.clickToPaginateVisualOverlayTimeout2); + this.clickToPaginateVisualOverlayTimeout2 = undefined; + } + + this.onDestroy.next(); + this.onDestroy.complete(); + this.intersectionObserver.disconnect(); + } + + ngOnInit(): void { + const libraryId = this.route.snapshot.paramMap.get('libraryId'); + const seriesId = this.route.snapshot.paramMap.get('seriesId'); + const chapterId = this.route.snapshot.paramMap.get('chapterId'); + + if (libraryId === null || seriesId === null || chapterId === null) { + this.router.navigateByUrl('/home'); + return; + } + + + this.libraryId = parseInt(libraryId, 10); + this.seriesId = parseInt(seriesId, 10); + this.chapterId = parseInt(chapterId, 10); + + this.memberService.hasReadingProgress(this.libraryId).pipe(take(1)).subscribe(hasProgress => { + if (!hasProgress) { + this.toggleDrawer(); + this.toastr.info('You can modify book settings, save those settings for all books, and view table of contents from the drawer.'); + } + }); + + forkJoin({ + chapter: this.seriesService.getChapter(this.chapterId), + bookmark: this.readerService.getBookmark(this.chapterId), + chapters: this.bookService.getBookChapters(this.chapterId), + info: this.bookService.getBookInfo(this.chapterId) + }).pipe(take(1)).subscribe(results => { + this.chapter = results.chapter; + this.volumeId = results.chapter.volumeId; + this.maxPages = results.chapter.pages; + this.chapters = results.chapters; + this.pageNum = results.bookmark.pageNum; + this.bookTitle = results.info; + + + if (this.pageNum >= this.maxPages) { + this.pageNum = this.maxPages - 1; + this.readerService.bookmark(this.seriesId, this.volumeId, this.chapterId, this.pageNum).pipe(take(1)).subscribe(() => {/* No operation */}); + } + + // Check if user bookmark has part, if so load it so we scroll to it + this.loadPage(results.bookmark.bookScrollId || undefined); + }, () => { + setTimeout(() => { + this.closeReader(); + }, 200); + }); + } + + @HostListener('window:keydown', ['$event']) + handleKeyPress(event: KeyboardEvent) { + if (event.key === KEY_CODES.RIGHT_ARROW) { + this.nextPage(); + } else if (event.key === KEY_CODES.LEFT_ARROW) { + this.prevPage(); + } else if (event.key === KEY_CODES.ESC_KEY) { + this.closeReader(); + } else if (event.key === KEY_CODES.SPACE) { + this.toggleDrawer(); + event.stopPropagation(); + event.preventDefault(); + } else if (event.key === KEY_CODES.G) { + this.goToPage(); + } + } + + handleIntersection(entries: IntersectionObserverEntry[]) { + const intersectingEntries = Array.from(entries).filter(entry => entry.isIntersecting).map(entry => entry.target); + intersectingEntries.sort((a: Element, b: Element) => { + const aTop = a.getBoundingClientRect().top; + const bTop = b.getBoundingClientRect().top; + if (aTop < bTop) { + return -1; + } + if (aTop > bTop) { + return 1; + } + + return 0; + }); + + if (intersectingEntries.length > 0) { + let path = this.getXPathTo(intersectingEntries[0]); + if (path === '') { return; } + if (!path.startsWith('id')) { + path = '//html[1]/' + path; + } + this.lastSeenScrollPartPath = path; + } + } + + loadChapter(pageNum: number, part: string) { + this.setPageNum(pageNum); + this.loadPage('id("' + part + '")'); + } + + closeReader() { + this.location.back(); + } + + resetSettings() { + const windowWidth = window.innerWidth + || document.documentElement.clientWidth + || document.body.clientWidth; + + let margin = '15%'; + if (windowWidth <= 700) { + margin = '0%'; + } + if (this.user) { + if (windowWidth > 700) { + margin = this.user.preferences.bookReaderMargin + '%'; + } + this.pageStyles = {'font-family': this.user.preferences.bookReaderFontFamily, 'font-size': this.user.preferences.bookReaderFontSize + '%', 'margin-left': margin, 'margin-right': margin, 'line-height': this.user.preferences.bookReaderLineSpacing + '%'}; + if (this.user.preferences.siteDarkMode && !this.user.preferences.bookReaderDarkMode) { + this.user.preferences.bookReaderDarkMode = true; + } + this.toggleDarkMode(this.user.preferences.bookReaderDarkMode); + } else { + this.pageStyles = {'font-family': 'default', 'font-size': '100%', 'margin-left': margin, 'margin-right': margin, 'line-height': '100%'}; + this.toggleDarkMode(false); + } + + this.settingsForm.get('bookReaderFontFamily')?.setValue(this.user.preferences.bookReaderFontFamily); + this.updateReaderStyles(); + } + + /** + * Adds a click handler for any anchors that have 'kavita-page'. If 'kavita-page' present, changes page to kavita-page and optionally passes a part value + * from 'kavita-part', which will cause the reader to scroll to the marker. + */ + addLinkClickHandlers() { + var links = this.readingSectionElemRef.nativeElement.querySelectorAll('a'); + links.forEach((link: any) => { + link.addEventListener('click', (e: any) => { + if (!e.target.attributes.hasOwnProperty('kavita-page')) { return; } + var page = parseInt(e.target.attributes['kavita-page'].value, 10); + if (this.adhocPageHistory.peek()?.page !== this.pageNum) { + this.adhocPageHistory.push({page: this.pageNum, scrollOffset: window.pageYOffset}); + } + + var partValue = e.target.attributes.hasOwnProperty('kavita-part') ? e.target.attributes['kavita-part'].value : undefined; + if (partValue && page === this.pageNum) { + this.scrollTo(e.target.attributes['kavita-part'].value); + return; + } + + this.setPageNum(page); + this.loadPage(partValue); + }); + }); + } + + moveFocus() { + const elems = document.getElementsByClassName('reading-section'); + if (elems.length > 0) { + (elems[0] as HTMLDivElement).focus(); + } + } + + promptForPage() { + const question = 'There are ' + (this.maxPages - 1) + ' pages. What page do you want to go to?'; + const goToPageNum = window.prompt(question, ''); + if (goToPageNum === null || goToPageNum.trim().length === 0) { return null; } + return goToPageNum; + } + + goToPage(pageNum?: number) { + let page = pageNum; + if (pageNum === null || pageNum === undefined) { + const goToPageNum = this.promptForPage(); + if (goToPageNum === null) { return; } + page = parseInt(goToPageNum.trim(), 10); + } + + if (page === undefined || this.pageNum === page) { return; } + + if (page > this.maxPages) { + page = this.maxPages; + } else if (page < 0) { + page = 0; + } + + if (!(page === 0 || page === this.maxPages - 1)) { + page -= 1; + } + + this.pageNum = page; + this.loadPage(); + + } + + cleanIdSelector(id: string) { + const tokens = id.split('/'); + if (tokens.length > 0) { + return tokens[0]; + } + return id; + } + + getPageMarkers(ids: Array) { + try { + return document.querySelectorAll(ids.map(id => '#' + this.cleanIdSelector(id)).join(', ')); + } catch (Exception) { + // Fallback to anchors instead. Some books have ids that are not valid for querySelectors, so anchors should be used instead + return document.querySelectorAll(ids.map(id => '[href="#' + id + '"]').join(', ')); + } + } + + setupPageAnchors() { + this.readingSectionElemRef.nativeElement.querySelectorAll('div,o,p,ul,li,a,img,h1,h2,h3,h4,h5,h6,span').forEach(elem => { + this.intersectionObserver.observe(elem); + }); + + this.pageAnchors = {}; + this.currentPageAnchor = ''; + const ids = this.chapters.map(item => item.children).flat().filter(item => item.page === this.pageNum).map(item => item.part).filter(item => item.length > 0); + if (ids.length > 0) { + const elems = this.getPageMarkers(ids); + elems.forEach(elem => { + this.pageAnchors[elem.id] = elem.getBoundingClientRect().top; + }); + } + } + + loadPage(part?: string | undefined, scrollTop?: number | undefined) { + this.isLoading = true; + + this.readerService.bookmark(this.seriesId, this.volumeId, this.chapterId, this.pageNum).pipe(take(1)).subscribe(() => {/* No operation */}); + + this.bookService.getBookPage(this.chapterId, this.pageNum).pipe(take(1)).subscribe(content => { + this.page = this.domSanitizer.bypassSecurityTrustHtml(content); + setTimeout(() => { + this.addLinkClickHandlers(); + this.updateReaderStyles(); + this.topOffset = this.stickyTopElemRef.nativeElement?.offsetHeight; + + const imgs = this.readingSectionElemRef.nativeElement.querySelectorAll('img'); + if (imgs === null || imgs.length === 0) { + this.setupPage(part, scrollTop); + return; + } + Promise.all(Array.from(imgs) + .filter(img => !img.complete) + .map(img => new Promise(resolve => { img.onload = img.onerror = resolve; }))) + .then(() => { + this.setupPage(part, scrollTop); + }); + }, 10); + }); + } + + setupPage(part?: string | undefined, scrollTop?: number | undefined) { + this.isLoading = false; + this.scrollbarNeeded = this.readingSectionElemRef.nativeElement.scrollHeight > this.readingSectionElemRef.nativeElement.clientHeight; + + // Find all the part ids and their top offset + this.setupPageAnchors(); + + + if (part !== undefined && part !== '') { + this.scrollTo(part); + } else if (scrollTop !== undefined && scrollTop !== 0) { + window.scroll({ + top: scrollTop, + behavior: 'smooth' + }); + } else { + window.scroll({ + top: 0, + behavior: 'smooth' + }); + } + } + + setPageNum(pageNum: number) { + if (pageNum < 0) { + this.pageNum = 0; + } else if (pageNum >= this.maxPages - 1) { + this.pageNum = this.maxPages - 1; + } else { + this.pageNum = pageNum; + } + } + + goBack() { + if (!this.adhocPageHistory.isEmpty()) { + const page = this.adhocPageHistory.pop(); + if (page !== undefined) { + this.setPageNum(page.page); + this.loadPage(undefined, page.scrollOffset); + } + } + } + + clickOverlayClass(side: 'right' | 'left') { + if (!this.clickToPaginateVisualOverlay) { + return ''; + } + + if (this.readingDirection === ReadingDirection.LeftToRight) { + return side === 'right' ? 'highlight' : 'highlight-2'; + } + return side === 'right' ? 'highlight-2' : 'highlight'; + } + + prevPage() { + const oldPageNum = this.pageNum; + if (this.readingDirection === ReadingDirection.LeftToRight) { + this.setPageNum(this.pageNum - 1); + } else { + this.setPageNum(this.pageNum + 1); + } + + if (oldPageNum === this.pageNum) { return; } + this.loadPage(); + } + + nextPage(event?: any) { + if (event) { + event.stopPropagation(); + event.preventDefault(); + } + + const oldPageNum = this.pageNum; + if (this.readingDirection === ReadingDirection.LeftToRight) { + this.setPageNum(this.pageNum + 1); + } else { + this.setPageNum(this.pageNum - 1); + } + + if (oldPageNum === this.pageNum) { return; } + + this.loadPage(); + } + + updateFontSize(amount: number) { + let val = parseInt(this.pageStyles['font-size'].substr(0, this.pageStyles['font-size'].length - 1), 10); + + if (val + amount > 300 || val + amount < 50) { + return; + } + + this.pageStyles['font-size'] = val + amount + '%'; + this.updateReaderStyles(); + } + + updateFontFamily(familyName: string) { + if (familyName === null) familyName = ''; + let cleanedName = familyName.replace(' ', '_').replace('!important', '').trim(); + if (cleanedName === 'default') { + this.pageStyles['font-family'] = 'inherit'; + } else { + this.pageStyles['font-family'] = "'" + cleanedName + "'"; + } + + this.updateReaderStyles(); + } + + updateMargin(amount: number) { + let cleanedValue = this.pageStyles['margin-left'].replace('%', '').replace('!important', '').trim(); + let val = parseInt(cleanedValue, 10); + + if (val + amount > 30 || val + amount < 0) { + return; + } + + this.pageStyles['margin-left'] = (val + amount) + '%'; + this.pageStyles['margin-right'] = (val + amount) + '%'; + + this.updateReaderStyles(); + } + + updateLineSpacing(amount: number) { + const cleanedValue = parseInt(this.pageStyles['line-height'].replace('%', '').replace('!important', '').trim(), 10); + + if (cleanedValue + amount > 250 || cleanedValue + amount < 100) { + return; + } + + this.pageStyles['line-height'] = (cleanedValue + amount) + '%'; + + this.updateReaderStyles(); + } + + updateReaderStyles() { + if (this.readingHtml != undefined && this.readingHtml.nativeElement) { + for(let i = 0; i < this.readingHtml.nativeElement.children.length; i++) { + const elem = this.readingHtml.nativeElement.children.item(i); + if (elem?.tagName != 'STYLE') { + Object.entries(this.pageStyles).forEach(item => { + this.renderer.setStyle(elem, item[0], item[1], RendererStyleFlags2.Important); + }); + } + } + } + } + + + toggleDarkMode(force?: boolean) { + if (force !== undefined) { + this.darkMode = force; + } else { + this.darkMode = !this.darkMode; + } + + this.setOverrideStyles(); + } + + toggleReadingDirection() { + if (this.readingDirection === ReadingDirection.LeftToRight) { + this.readingDirection = ReadingDirection.RightToLeft; + } else { + this.readingDirection = ReadingDirection.LeftToRight; + } + } + + getDarkModeBackgroundColor() { + return this.darkMode ? '#292929' : '#fff'; + } + + setOverrideStyles() { + const bodyNode = document.querySelector('body'); + if (bodyNode !== undefined && bodyNode !== null) { + if (this.user.preferences.siteDarkMode) { + bodyNode.classList.remove('bg-dark'); + } + + bodyNode.style.background = this.getDarkModeBackgroundColor(); + } + this.backgroundColor = this.getDarkModeBackgroundColor(); + const head = document.querySelector('head'); + if (this.darkMode) { + this.renderer.appendChild(head, this.darkModeStyleElem) + } else { + this.renderer.removeChild(head, this.darkModeStyleElem); + } + } + + saveSettings() { + if (this.user === undefined) return; + const modelSettings = this.settingsForm.value; + const data: Preferences = { + readingDirection: this.user.preferences.readingDirection, + scalingOption: this.user.preferences.scalingOption, + pageSplitOption: this.user.preferences.pageSplitOption, + autoCloseMenu: this.user.preferences.autoCloseMenu, + readerMode: this.user.preferences.readerMode, + bookReaderDarkMode: this.darkMode, + bookReaderFontFamily: modelSettings.bookReaderFontFamily, + bookReaderFontSize: parseInt(this.pageStyles['font-size'].substr(0, this.pageStyles['font-size'].length - 1), 10), + bookReaderLineSpacing: parseInt(this.pageStyles['line-height'].replace('!important', '').trim(), 10), + bookReaderMargin: parseInt(this.pageStyles['margin-left'].replace('%', '').replace('!important', '').trim(), 10), + bookReaderTapToPaginate: this.clickToPaginate, + bookReaderReadingDirection: this.readingDirection, + siteDarkMode: this.user.preferences.siteDarkMode, + }; + this.accountService.updatePreferences(data).pipe(take(1)).subscribe((updatedPrefs) => { + this.toastr.success('User settings updated'); + if (this.user) { + this.user.preferences = updatedPrefs; + } + this.resetSettings(); + }); + } + + toggleDrawer() { + this.topOffset = this.stickyTopElemRef.nativeElement?.offsetHeight; + this.drawerOpen = !this.drawerOpen; + } + + closeDrawer() { + this.drawerOpen = false; + } + + handleReaderClick(event: MouseEvent) { + if (this.drawerOpen) { + this.closeDrawer(); + event.stopPropagation(); + event.preventDefault(); + } + } + + + scrollTo(partSelector: string) { + if (partSelector.startsWith('#')) { + partSelector = partSelector.substr(1, partSelector.length); + } + + let element = null; + if (partSelector.startsWith('//') || partSelector.startsWith('id(')) { + // Part selector is a XPATH + element = this.getElementFromXPath(partSelector); + } else { + element = document.querySelector('*[id="' + partSelector + '"]'); + } + + if (element === null) return; + + window.scroll({ + top: element.getBoundingClientRect().top + window.pageYOffset + TOP_OFFSET, + behavior: 'smooth' + }); + } + + toggleClickToPaginate() { + this.clickToPaginate = !this.clickToPaginate; + + if (this.clickToPaginateVisualOverlayTimeout2 !== undefined) { + clearTimeout(this.clickToPaginateVisualOverlayTimeout2); + this.clickToPaginateVisualOverlayTimeout2 = undefined; + } + if (!this.clickToPaginate) { return; } + + this.clickToPaginateVisualOverlayTimeout2 = setTimeout(() => { + this.showClickToPaginateVisualOverlay(); + }, 200); + } + + showClickToPaginateVisualOverlay() { + this.clickToPaginateVisualOverlay = true; + + if (this.clickToPaginateVisualOverlay && this.clickToPaginateVisualOverlayTimeout !== undefined) { + clearTimeout(this.clickToPaginateVisualOverlayTimeout); + this.clickToPaginateVisualOverlayTimeout = undefined; + } + this.clickToPaginateVisualOverlayTimeout = setTimeout(() => { + this.clickToPaginateVisualOverlay = false; + }, 1000); + + } + + getElementFromXPath(path: string) { + const node = document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; + if (node?.nodeType === Node.ELEMENT_NODE) { + return node as Element; + } + return null; + } + + getXPathTo(element: any): string { + if (element === null) return ''; + if (element.id !== '') { return 'id("' + element.id + '")'; } + if (element === document.body) { return element.tagName; } + + + let ix = 0; + const siblings = element.parentNode?.childNodes || []; + for (let sibling of siblings) { + if (sibling === element) { + return this.getXPathTo(element.parentNode) + '/' + element.tagName + '[' + (ix + 1) + ']'; + } + if (sibling.nodeType === 1 && sibling.tagName === element.tagName) { + ix++; + } + + } + return ''; + } + +} diff --git a/UI/Web/src/app/book-reader/book.service.ts b/UI/Web/src/app/book-reader/book.service.ts new file mode 100644 index 000000000..d3d650600 --- /dev/null +++ b/UI/Web/src/app/book-reader/book.service.ts @@ -0,0 +1,41 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { environment } from 'src/environments/environment'; +import { BookChapterItem } from './_models/book-chapter-item'; + +export interface BookPage { + bookTitle: string; + styles: string; + html: string; +} + + +@Injectable({ + providedIn: 'root' +}) +export class BookService { + + baseUrl = environment.apiUrl; + + constructor(private http: HttpClient) { } + + getFontFamilies() { + return ['default', 'EBGaramond', 'Fira Sans', 'Lato', 'Libre Baskerville', 'Merriweather', 'Nanum Gothic', 'RocknRoll One']; + } + + getBookChapters(chapterId: number) { + return this.http.get>(this.baseUrl + 'book/' + chapterId + '/chapters'); + } + + getBookPage(chapterId: number, page: number) { + return this.http.get(this.baseUrl + 'book/' + chapterId + '/book-page?page=' + page, {responseType: 'text' as 'json'}); + } + + getBookInfo(chapterId: number) { + return this.http.get(this.baseUrl + 'book/' + chapterId + '/book-info', {responseType: 'text' as 'json'}); + } + + getBookPageUrl(chapterId: number, page: number) { + return this.baseUrl + 'book/' + chapterId + '/book-page?page=' + page; + } +} diff --git a/UI/Web/src/app/book-reader/safe-style.pipe.ts b/UI/Web/src/app/book-reader/safe-style.pipe.ts new file mode 100644 index 000000000..597faf1c8 --- /dev/null +++ b/UI/Web/src/app/book-reader/safe-style.pipe.ts @@ -0,0 +1,15 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import { DomSanitizer } from '@angular/platform-browser'; + +@Pipe({ + name: 'safeStyle' +}) +export class SafeStylePipe implements PipeTransform { + + constructor(private sanitizer: DomSanitizer) {} + + transform(value: string): unknown { + return this.sanitizer.bypassSecurityTrustStyle(value); + } + +} diff --git a/UI/Web/src/app/carousel/carousel-reel/carousel-reel.component.html b/UI/Web/src/app/carousel/carousel-reel/carousel-reel.component.html new file mode 100644 index 000000000..3932dd110 --- /dev/null +++ b/UI/Web/src/app/carousel/carousel-reel/carousel-reel.component.html @@ -0,0 +1,19 @@ + \ No newline at end of file diff --git a/UI/Web/src/app/carousel/carousel-reel/carousel-reel.component.scss b/UI/Web/src/app/carousel/carousel-reel/carousel-reel.component.scss new file mode 100644 index 000000000..b16ff9de3 --- /dev/null +++ b/UI/Web/src/app/carousel/carousel-reel/carousel-reel.component.scss @@ -0,0 +1,49 @@ +.carousel-container { + overflow: hidden; + padding-top: 15px; + width: 100%; + position: relative; + display: flex; + float: left; + flex-direction: column; +} + +.section-title { + font-size: 1.6rem; + font-weight: 400; + margin-left: 10px; + color: black; + + :hover { + text-decoration: underline; + } + + :active { + text-decoration: underline; + } + + :focus { + text-decoration: underline; + } +} + +::ng-deep .bg-light { + .section-title { + color: black !important; + } + +} +// These are needed due to nested css within another component +::ng-deep .bg-dark { + .section-title { + color: #efefef !important; + } +} + +::ng-deep .swiper-slide { + width: auto !important; +} + +::ng-deep .swiper-slide { + width: auto !important; +} diff --git a/UI/Web/src/app/carousel/carousel-reel/carousel-reel.component.ts b/UI/Web/src/app/carousel/carousel-reel/carousel-reel.component.ts new file mode 100644 index 000000000..372fed44f --- /dev/null +++ b/UI/Web/src/app/carousel/carousel-reel/carousel-reel.component.ts @@ -0,0 +1,42 @@ +import { Component, ContentChild, EventEmitter, Input, OnInit, Output, TemplateRef } from '@angular/core'; +import Swiper from 'swiper'; + +@Component({ + selector: 'app-carousel-reel', + templateUrl: './carousel-reel.component.html', + styleUrls: ['./carousel-reel.component.scss'] +}) +export class CarouselReelComponent implements OnInit { + + @ContentChild('carouselItem') carouselItemTemplate!: TemplateRef; + @Input() items: any[] = []; + @Input() title = ''; + @Output() sectionClick = new EventEmitter(); + + + swiper!: Swiper; + + constructor() { } + + ngOnInit(): void {} + + nextPage() { + if (this.swiper) { + this.swiper.setProgress(this.swiper.progress + 0.25, 600); + } + } + + prevPage() { + if (this.swiper) { + this.swiper.setProgress(this.swiper.progress - 0.25, 600); + } + } + + sectionClicked(event: any) { + this.sectionClick.emit(this.title); + } + + onSwiper(swiper: any) { + this.swiper = swiper; + } +} diff --git a/UI/Web/src/app/carousel/carousel.module.ts b/UI/Web/src/app/carousel/carousel.module.ts new file mode 100644 index 000000000..98017f81f --- /dev/null +++ b/UI/Web/src/app/carousel/carousel.module.ts @@ -0,0 +1,18 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { CarouselReelComponent } from './carousel-reel/carousel-reel.component'; +import { SwiperModule } from 'swiper/angular'; + + + +@NgModule({ + declarations: [CarouselReelComponent], + imports: [ + CommonModule, + SwiperModule + ], + exports: [ + CarouselReelComponent + ] +}) +export class CarouselModule { } diff --git a/UI/Web/src/app/home/home.component.html b/UI/Web/src/app/home/home.component.html new file mode 100644 index 000000000..9b23d9c1b --- /dev/null +++ b/UI/Web/src/app/home/home.component.html @@ -0,0 +1,11 @@ +
+ +

Please create an admin account for yourself to start your reading journey.

+ +
+
+ + + + + diff --git a/UI/Web/src/app/home/home.component.scss b/UI/Web/src/app/home/home.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/UI/Web/src/app/home/home.component.ts b/UI/Web/src/app/home/home.component.ts new file mode 100644 index 000000000..0ee803e1e --- /dev/null +++ b/UI/Web/src/app/home/home.component.ts @@ -0,0 +1,58 @@ +import { Component, OnInit } from '@angular/core'; +import { FormControl, FormGroup, Validators } from '@angular/forms'; +import { Router } from '@angular/router'; +import { take } from 'rxjs/operators'; +import { MemberService } from '../_services/member.service'; +import { AccountService } from '../_services/account.service'; +import { StatsService } from '../_services/stats.service'; +import * as ClientUtils from "../shared/utils/clientUtils"; + +@Component({ + selector: 'app-home', + templateUrl: './home.component.html', + styleUrls: ['./home.component.scss'] +}) +export class HomeComponent implements OnInit { + + firstTimeFlow = false; + model: any = {}; + registerForm: FormGroup = new FormGroup({ + username: new FormControl('', [Validators.required]), + password: new FormControl('', [Validators.required]) + }); + + constructor(public accountService: AccountService, private memberService: MemberService, private router: Router, private statsService: StatsService) { + } + + ngOnInit(): void { + + this.memberService.adminExists().subscribe(adminExists => { + this.firstTimeFlow = !adminExists; + + if (this.firstTimeFlow) { + return; + } + + this.accountService.currentUser$.pipe(take(1)).subscribe(user => { + + this.statsService.sendClientInfo(ClientUtils.getClientInfo()) + .pipe(take(1)) + .subscribe(resp => {/* No Operation */}); + + if (user) { + // User is logged in, redirect to libraries + this.router.navigateByUrl('/library'); + } else { + this.router.navigateByUrl('/login'); + } + }); + }); + } + + + onAdminCreated(success: boolean) { + if (success) { + this.router.navigateByUrl('/login'); + } + } +} diff --git a/UI/Web/src/app/library-detail/library-detail.component.html b/UI/Web/src/app/library-detail/library-detail.component.html new file mode 100644 index 000000000..df19322f7 --- /dev/null +++ b/UI/Web/src/app/library-detail/library-detail.component.html @@ -0,0 +1,11 @@ + + + + + diff --git a/UI/Web/src/app/library-detail/library-detail.component.scss b/UI/Web/src/app/library-detail/library-detail.component.scss new file mode 100644 index 000000000..9863b1284 --- /dev/null +++ b/UI/Web/src/app/library-detail/library-detail.component.scss @@ -0,0 +1,11 @@ +.card { + height: 400; + width: 200; +} + + +.viewport { + width: 600px; + height: 100%; + overflow-y: auto; + } \ No newline at end of file diff --git a/UI/Web/src/app/library-detail/library-detail.component.ts b/UI/Web/src/app/library-detail/library-detail.component.ts new file mode 100644 index 000000000..616afb110 --- /dev/null +++ b/UI/Web/src/app/library-detail/library-detail.component.ts @@ -0,0 +1,91 @@ +import { Component, OnInit } from '@angular/core'; +import { Title } from '@angular/platform-browser'; +import { ActivatedRoute, Router } from '@angular/router'; +import { take } from 'rxjs/operators'; +import { Library } from '../_models/library'; +import { Pagination } from '../_models/pagination'; +import { Series } from '../_models/series'; +import { Action, ActionFactoryService, ActionItem } from '../_services/action-factory.service'; +import { ActionService } from '../_services/action.service'; +import { LibraryService } from '../_services/library.service'; +import { SeriesService } from '../_services/series.service'; + +@Component({ + selector: 'app-library-detail', + templateUrl: './library-detail.component.html', + styleUrls: ['./library-detail.component.scss'] +}) +export class LibraryDetailComponent implements OnInit { + + libraryId!: number; + libraryName = ''; + series: Series[] = []; + loadingSeries = false; + pagination!: Pagination; + actions: ActionItem[] = []; + + constructor(private route: ActivatedRoute, private router: Router, private seriesService: SeriesService, + private libraryService: LibraryService, private titleService: Title, private actionFactoryService: ActionFactoryService, private actionService: ActionService) { + const routeId = this.route.snapshot.paramMap.get('id'); + if (routeId === null) { + this.router.navigateByUrl('/home'); + return; + } + this.router.routeReuseStrategy.shouldReuseRoute = () => false; + this.libraryId = parseInt(routeId, 10); + this.libraryService.getLibraryNames().pipe(take(1)).subscribe(names => { + this.libraryName = names[this.libraryId]; + this.titleService.setTitle('Kavita - ' + this.libraryName); + }) + this.loadPage(); + this.actions = this.actionFactoryService.getLibraryActions(this.handleAction.bind(this)); + } + + ngOnInit(): void { + } + + handleAction(action: Action, library: Library) { + let lib: Partial = library; + if (library === undefined) { + lib = {id: this.libraryId, name: this.libraryName}; + } + switch (action) { + case(Action.ScanLibrary): + this.actionService.scanLibrary(lib); + break; + case(Action.RefreshMetadata): + this.actionService.refreshMetadata(lib); + break; + default: + break; + } + } + + loadPage() { + const page = this.route.snapshot.queryParamMap.get('page'); + if (page != null) { + if (this.pagination == undefined || this.pagination == null) { + this.pagination = {currentPage: 0, itemsPerPage: 30, totalItems: 0, totalPages: 1}; + } + this.pagination.currentPage = parseInt(page, 10); + } + this.loadingSeries = true; + this.seriesService.getSeriesForLibrary(this.libraryId, this.pagination?.currentPage, this.pagination?.itemsPerPage).pipe(take(1)).subscribe(series => { + this.series = series.result; + this.pagination = series.pagination; + this.loadingSeries = false; + window.scrollTo(0, 0); + }); + } + + onPageChange(pagination: Pagination) { + this.router.navigate(['library', this.libraryId], {replaceUrl: true, queryParamsHandling: 'merge', queryParams: {page: this.pagination.currentPage} }); + } + + seriesClicked(series: Series) { + this.router.navigate(['library', this.libraryId, 'series', series.id]); + } + + trackByIdentity = (index: number, item: Series) => `${item.name}_${item.originalName}_${item.localizedName}`; + +} diff --git a/UI/Web/src/app/library/library.component.html b/UI/Web/src/app/library/library.component.html new file mode 100644 index 000000000..e8e5ba1b9 --- /dev/null +++ b/UI/Web/src/app/library/library.component.html @@ -0,0 +1,33 @@ + +
+
+

There are no libraries setup yet. Configure some in Server settings.

+
+
+

You haven't been granted access to any libraries.

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/UI/Web/src/app/library/library.component.scss b/UI/Web/src/app/library/library.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/UI/Web/src/app/library/library.component.ts b/UI/Web/src/app/library/library.component.ts new file mode 100644 index 000000000..c7f852e2f --- /dev/null +++ b/UI/Web/src/app/library/library.component.ts @@ -0,0 +1,118 @@ +import { Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { take } from 'rxjs/operators'; +import { EditCollectionTagsComponent } from '../_modals/edit-collection-tags/edit-collection-tags.component'; +import { CollectionTag } from '../_models/collection-tag'; +import { InProgressChapter } from '../_models/in-progress-chapter'; +import { Library } from '../_models/library'; +import { Series } from '../_models/series'; +import { User } from '../_models/user'; +import { AccountService } from '../_services/account.service'; +import { Action, ActionFactoryService, ActionItem } from '../_services/action-factory.service'; +import { CollectionTagService } from '../_services/collection-tag.service'; +import { LibraryService } from '../_services/library.service'; +import { SeriesService } from '../_services/series.service'; + +@Component({ + selector: 'app-library', + templateUrl: './library.component.html', + styleUrls: ['./library.component.scss'] +}) +export class LibraryComponent implements OnInit { + + user: User | undefined; + libraries: Library[] = []; + isLoading = false; + isAdmin = false; + + recentlyAdded: Series[] = []; + inProgress: Series[] = []; + continueReading: InProgressChapter[] = []; + collectionTags: CollectionTag[] = []; + collectionTagActions: ActionItem[] = []; + + seriesTrackBy = (index: number, item: any) => `${item.name}_${item.pagesRead}`; + + constructor(public accountService: AccountService, private libraryService: LibraryService, private seriesService: SeriesService, private actionFactoryService: ActionFactoryService, private collectionService: CollectionTagService, private router: Router, private modalService: NgbModal) { } + + ngOnInit(): void { + this.isLoading = true; + this.accountService.currentUser$.pipe(take(1)).subscribe(user => { + this.user = user; + this.isAdmin = this.accountService.hasAdminRole(this.user); + this.libraryService.getLibrariesForMember().subscribe(libraries => { + this.libraries = libraries; + this.isLoading = false; + }); + }); + + this.collectionTagActions = this.actionFactoryService.getCollectionTagActions(this.handleCollectionActionCallback.bind(this)); + + this.reloadSeries(); + } + + reloadSeries() { + this.seriesService.getRecentlyAdded(0, 0, 20).subscribe(updatedSeries => { + this.recentlyAdded = updatedSeries.result; + }); + + this.seriesService.getInProgress().subscribe((updatedSeries) => { + this.inProgress = updatedSeries; + }); + + this.reloadTags(); + } + + reloadInProgress(series: Series | boolean) { + if (series === true || series === false) { + if (!series) {return;} + } + + if ((series as Series).pagesRead !== (series as Series).pages && (series as Series).pagesRead !== 0) { + return; + } + + this.seriesService.getInProgress().subscribe((updatedSeries) => { + this.inProgress = updatedSeries; + }); + + this.reloadTags(); + } + + reloadTags() { + this.collectionService.allTags().subscribe(tags => { + this.collectionTags = tags; + }); + } + + handleSectionClick(sectionTitle: string) { + if (sectionTitle.toLowerCase() === 'collections') { + this.router.navigate(['collections']); + } else if (sectionTitle.toLowerCase() === 'recently added') { + this.router.navigate(['recently-added']); + } + } + + loadCollection(item: CollectionTag) { + this.router.navigate(['collections', item.id]); + } + + handleCollectionActionCallback(action: Action, collectionTag: CollectionTag) { + switch (action) { + case(Action.Edit): + const modalRef = this.modalService.open(EditCollectionTagsComponent, { size: 'lg', scrollable: true }); + modalRef.componentInstance.tag = collectionTag; + modalRef.closed.subscribe((reloadNeeded: boolean) => { + if (reloadNeeded) { + // Reload tags + this.reloadTags(); + } + }); + break; + default: + break; + } + } + +} diff --git a/UI/Web/src/app/manga-reader/_models/chapter-info.ts b/UI/Web/src/app/manga-reader/_models/chapter-info.ts new file mode 100644 index 000000000..fff07b12b --- /dev/null +++ b/UI/Web/src/app/manga-reader/_models/chapter-info.ts @@ -0,0 +1,10 @@ +export interface ChapterInfo { + chapterNumber: string; + volumeNumber: string; + chapterTitle: string; + seriesName: string; + fileName: string; + isSpecial: boolean; + volumeId: number; + pages: number; +} \ No newline at end of file diff --git a/UI/Web/src/app/manga-reader/_models/reader-enums.ts b/UI/Web/src/app/manga-reader/_models/reader-enums.ts new file mode 100644 index 000000000..0117ed5d2 --- /dev/null +++ b/UI/Web/src/app/manga-reader/_models/reader-enums.ts @@ -0,0 +1,22 @@ +export enum FITTING_OPTION { + HEIGHT = 'full-height', + WIDTH = 'full-width', + ORIGINAL = 'original' + } + +export enum SPLIT_PAGE_PART { + NO_SPLIT = 'none', + LEFT_PART = 'left', + RIGHT_PART = 'right' + } + +export enum PAGING_DIRECTION { + FORWARD = 1, + BACKWARDS = -1, + } + +export enum COLOR_FILTER { + NONE = '', + SEPIA = 'filter-sepia', + DARK = 'filter-dark' + } diff --git a/UI/Web/src/app/manga-reader/_models/webtoon-image.ts b/UI/Web/src/app/manga-reader/_models/webtoon-image.ts new file mode 100644 index 000000000..43e8730e9 --- /dev/null +++ b/UI/Web/src/app/manga-reader/_models/webtoon-image.ts @@ -0,0 +1,4 @@ +export interface WebtoonImage { + src: string; + page: number; +} \ No newline at end of file diff --git a/UI/Web/src/app/manga-reader/infinite-scroller/infinite-scroller.component.html b/UI/Web/src/app/manga-reader/infinite-scroller/infinite-scroller.component.html new file mode 100644 index 000000000..a7daf12d0 --- /dev/null +++ b/UI/Web/src/app/manga-reader/infinite-scroller/infinite-scroller.component.html @@ -0,0 +1,15 @@ + +
+ Captures Scroll Events: {{!this.isScrolling && this.allImagesLoaded}} + Is Scrolling: {{isScrollingForwards() ? 'Forwards' : 'Backwards'}} {{this.isScrolling}} + All Images Loaded: {{this.allImagesLoaded}} + Prefetched {{minPrefetchedWebtoonImage}}-{{maxPrefetchedWebtoonImage}} + Current Page:{{pageNum}} + Width: {{webtoonImageWidth}} +
+ + + + image + + diff --git a/UI/Web/src/app/manga-reader/infinite-scroller/infinite-scroller.component.scss b/UI/Web/src/app/manga-reader/infinite-scroller/infinite-scroller.component.scss new file mode 100644 index 000000000..c7308aa33 --- /dev/null +++ b/UI/Web/src/app/manga-reader/infinite-scroller/infinite-scroller.component.scss @@ -0,0 +1,7 @@ +// DEBUG Only +.overlay { + background-color: rgba(0,0,0,0.5); +} +.active { + border: 2px solid red; +} \ No newline at end of file diff --git a/UI/Web/src/app/manga-reader/infinite-scroller/infinite-scroller.component.ts b/UI/Web/src/app/manga-reader/infinite-scroller/infinite-scroller.component.ts new file mode 100644 index 000000000..c87bf8378 --- /dev/null +++ b/UI/Web/src/app/manga-reader/infinite-scroller/infinite-scroller.component.ts @@ -0,0 +1,414 @@ +import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, Renderer2, SimpleChanges } from '@angular/core'; +import { BehaviorSubject, fromEvent, Subject } from 'rxjs'; +import { debounceTime, takeUntil } from 'rxjs/operators'; +import { CircularArray } from 'src/app/shared/data-structures/circular-array'; +import { ReaderService } from 'src/app/_services/reader.service'; +import { PAGING_DIRECTION } from '../_models/reader-enums'; +import { WebtoonImage } from '../_models/webtoon-image'; + +@Component({ + selector: 'app-infinite-scroller', + templateUrl: './infinite-scroller.component.html', + styleUrls: ['./infinite-scroller.component.scss'] +}) +export class InfiniteScrollerComponent implements OnInit, OnChanges, OnDestroy { + + /** + * Current page number aka what's recorded on screen + */ + @Input() pageNum: number = 0; + /** + * Number of pages to prefetch ahead of position + */ + @Input() buffferPages: number = 5; + /** + * Total number of pages + */ + @Input() totalPages: number = 0; + /** + * Method to generate the src for Image loading + */ + @Input() urlProvider!: (page: number) => string; + @Output() pageNumberChange: EventEmitter = new EventEmitter(); + + /** + * Stores and emits all the src urls + */ + webtoonImages: BehaviorSubject = new BehaviorSubject([]); + + /** + * Responsible for calculating current page on screen and uses hooks to trigger prefetching. + * Note: threshold will fire differently due to size of images. 1 requires full image on screen. 0 means 1px on screen. + */ + intersectionObserver: IntersectionObserver = new IntersectionObserver((entries) => this.handleIntersection(entries), { threshold: [0] }); + /** + * Direction we are scrolling. Controls calculations for prefetching + */ + scrollingDirection: PAGING_DIRECTION = PAGING_DIRECTION.FORWARD; + /** + * Temp variable to keep track of scrolling position between scrolls to caclulate direction + */ + prevScrollPosition: number = 0; + /** + * Temp variable to keep track of when the scrollTo() finishes, so we can start capturing scroll events again + */ + currentPageElem: Element | null = null; + /** + * The min page number that has been prefetched + */ + minPrefetchedWebtoonImage: number = Number.MAX_SAFE_INTEGER; + /** + * The max page number that has been prefetched + */ + maxPrefetchedWebtoonImage: number = Number.MIN_SAFE_INTEGER; + /** + * The minimum width of images in webtoon. On image loading, this is checked and updated. All images will get this assigned to them for rendering. + */ + webtoonImageWidth: number = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; + + /** + * Used to tell if a scrollTo() operation is in progress + */ + isScrolling: boolean = false; + /** + * Whether all prefetched images have loaded on the screen (not neccesarily in viewport) + */ + allImagesLoaded: boolean = false; + + /** + * Debug mode. Will show extra information + */ + debug: boolean = true; + + /** + * Timer to help detect when a scroll end event has occured (not used) + */ + scrollEndTimer: any; + + + /** + * Each pages height mapped to page number as key (not used) + */ + pageHeights:{[key: number]: number} = {}; + + buffer: CircularArray = new CircularArray([], 0); + + + + private readonly onDestroy = new Subject(); + + constructor(private readerService: ReaderService, private renderer: Renderer2) { } + + ngOnChanges(changes: SimpleChanges): void { + let shouldInit = false; + console.log('Changes: ', changes); + if (changes.hasOwnProperty('totalPages') && changes['totalPages'].currentValue === 0) { + this.debugLog('Swallowing variable change due to totalPages being 0'); + return; + } + + if (changes.hasOwnProperty('totalPages') && changes['totalPages'].previousValue != changes['totalPages'].currentValue) { + this.totalPages = changes['totalPages'].currentValue; + shouldInit = true; + } + if (changes.hasOwnProperty('pageNum') && changes['pageNum'].previousValue != changes['pageNum'].currentValue) { + // Manually update pageNum as we are getting notified from a parent component, hence we shouldn't invoke update + this.setPageNum(changes['pageNum'].currentValue); + if (Math.abs(changes['pageNum'].currentValue - changes['pageNum'].previousValue) > 2) { + // Go to page has occured + shouldInit = true; + } + } + + if (shouldInit) { + this.initWebtoonReader(); + } + + // This should only execute on initial load or from a gotopage update + const currentImage = document.querySelector('img#page-' + this.pageNum); + if (currentImage !== null && this.isElementVisible(currentImage)) { + + if ((changes.hasOwnProperty('pageNum') && Math.abs(changes['pageNum'].previousValue - changes['pageNum'].currentValue) <= 0) || !shouldInit) { + return; + } + this.debugLog('Scrolling to page', this.pageNum); + this.scrollToCurrentPage(); + } + } + + ngOnDestroy(): void { + this.intersectionObserver.disconnect(); + this.onDestroy.next(); + this.onDestroy.complete(); + } + + ngOnInit(): void { + fromEvent(window, 'scroll') + .pipe(debounceTime(20), takeUntil(this.onDestroy)) + .subscribe((event) => this.handleScrollEvent(event)); + } + + handleScrollEvent(event?: any) { + const verticalOffset = (window.pageYOffset + || document.documentElement.scrollTop + || document.body.scrollTop || 0); + + + clearTimeout(this.scrollEndTimer); + this.scrollEndTimer = setTimeout(() => this.handleScrollEnd(), 150); + + if (this.debug && this.isScrolling) { + this.debugLog('verticalOffset: ', verticalOffset); + this.debugLog('scroll to element offset: ', this.currentPageElem?.getBoundingClientRect().top); + } + + if (this.currentPageElem != null && this.isElementVisible(this.currentPageElem)) { + this.debugLog('Image is visible from scroll, isScrolling is now false'); + this.isScrolling = false; + } + + if (verticalOffset > this.prevScrollPosition) { + this.scrollingDirection = PAGING_DIRECTION.FORWARD; + } else { + this.scrollingDirection = PAGING_DIRECTION.BACKWARDS; + } + this.prevScrollPosition = verticalOffset; + } + + // ! This will fire twice from an automatic scroll + handleScrollEnd() { + //console.log('!!! Scroll End Event !!!'); + } + + + /** + * Is any part of the element visible in the scrollport. Does not take into account + * style properites, just scroll port visibility. + * Note: use && to ensure the whole images is visible + * @param elem + * @returns + */ + isElementVisible(elem: Element) { + if (elem === null || elem === undefined) { return false; } + + const docViewTop = window.pageYOffset; + const docViewBottom = docViewTop + window.innerHeight; + + const elemTop = elem.getBoundingClientRect().top; + const elemBottom = elemTop + elem.getBoundingClientRect().height; + + return ((elemBottom <= docViewBottom) || (elemTop >= docViewTop)); + } + + + initWebtoonReader() { + + this.minPrefetchedWebtoonImage = this.pageNum; + this.maxPrefetchedWebtoonImage = Number.MIN_SAFE_INTEGER; + this.webtoonImages.next([]); + + + + + const prefetchStart = Math.max(this.pageNum - this.buffferPages, 0); + const prefetchMax = Math.min(this.pageNum + this.buffferPages, this.totalPages); + this.debugLog('[INIT] Prefetching pages ' + prefetchStart + ' to ' + prefetchMax + '. Current page: ', this.pageNum); + for(let i = prefetchStart; i < prefetchMax; i++) { + this.prefetchWebtoonImage(i); + } + + const images = []; + for (let i = prefetchStart; i < prefetchMax; i++) { + images.push(new Image()); + } + this.buffer = new CircularArray(images, this.buffferPages); + + this.minPrefetchedWebtoonImage = prefetchStart; + this.maxPrefetchedWebtoonImage = prefetchMax; + + this.debugLog('Buffer: ', this.buffer.arr.map(img => this.readerService.imageUrlToPageNum(img.src))); + } + + /** + * Callback for an image onLoad. At this point the image is already rendered in DOM (may not be visible) + * This will be used to scroll to current page for intial load + * @param event + */ + onImageLoad(event: any) { + const imagePage = this.readerService.imageUrlToPageNum(event.target.src); + this.debugLog('Image loaded: ', imagePage); + + + if (event.target.width < this.webtoonImageWidth) { + this.webtoonImageWidth = event.target.width; + } + + this.pageHeights[imagePage] = event.target.getBoundingClientRect().height; + + this.renderer.setAttribute(event.target, 'width', this.webtoonImageWidth + ''); + this.renderer.setAttribute(event.target, 'height', event.target.height + ''); + + this.attachIntersectionObserverElem(event.target); + + if (imagePage === this.pageNum) { + Promise.all(Array.from(document.querySelectorAll('img')) + .filter((img: any) => !img.complete) + .map((img: any) => new Promise(resolve => { img.onload = img.onerror = resolve; }))) + .then(() => { + this.debugLog('! Loaded current page !', this.pageNum); + this.allImagesLoaded = true; + }); + } + } + + handleIntersection(entries: IntersectionObserverEntry[]) { + + if (!this.allImagesLoaded || this.isScrolling) { + this.debugLog('Images are not loaded (or performing scrolling action), skipping any scroll calculations'); + return; + } + + + entries.forEach(entry => { + const imagePage = parseInt(entry.target.attributes.getNamedItem('page')?.value + '', 10); + this.debugLog('[Intersection] Page ' + imagePage + ' is visible: ', entry.isIntersecting); + if (entry.isIntersecting) { + this.debugLog('[Intersection] ! Page ' + imagePage + ' just entered screen'); + this.setPageNum(imagePage); + this.prefetchWebtoonImages(); + } + }); + } + + setPageNum(pageNum: number) { + this.pageNum = pageNum; + this.pageNumberChange.emit(this.pageNum); + + //TODO: Perform check here to see if prefetching or DOM removal is needed + } + + isScrollingForwards() { + return this.scrollingDirection === PAGING_DIRECTION.FORWARD; + } + + scrollToCurrentPage() { + this.currentPageElem = document.querySelector('img#page-' + this.pageNum); + if (!this.currentPageElem) { return; } + // Update prevScrollPosition, so the next scroll event properly calculates direction + this.prevScrollPosition = this.currentPageElem.getBoundingClientRect().top; + this.isScrolling = true; + + setTimeout(() => { + if (this.currentPageElem) { + this.currentPageElem.scrollIntoView({behavior: 'smooth'}); + } + }, 600); + } + + prefetchWebtoonImage(page: number) { + let data = this.webtoonImages.value; + + data = data.concat({src: this.urlProvider(page), page}); + + data.sort((a: WebtoonImage, b: WebtoonImage) => { + if (a.page < b.page) { return -1; } + else if (a.page > b.page) { return 1; } + else return 0; + }); + + if (page < this.minPrefetchedWebtoonImage) { + this.minPrefetchedWebtoonImage = page; + } + if (page > this.maxPrefetchedWebtoonImage) { + this.maxPrefetchedWebtoonImage = page; + } + this.allImagesLoaded = false; + + this.webtoonImages.next(data); + + let index = 1; + + this.buffer.applyFor((item, i) => { + const offsetIndex = this.pageNum + index; + const urlPageNum = this.readerService.imageUrlToPageNum(item.src); + if (urlPageNum === offsetIndex) { + index += 1; + return; + } + if (offsetIndex < this.totalPages - 1) { + item.src = this.urlProvider(offsetIndex); + index += 1; + } + }, this.buffer.size() - 3); + + + } + + attachIntersectionObserverElem(elem: HTMLImageElement) { + if (elem !== null) { + this.intersectionObserver.observe(elem); + this.debugLog('Attached Intersection Observer to page', this.readerService.imageUrlToPageNum(elem.src)); + } else { + console.error('Could not attach observer on elem'); + } + } + + prefetchWebtoonImages() { + let startingIndex = 0; + let endingIndex = 0; + if (this.isScrollingForwards()) { + startingIndex = Math.min(this.maxPrefetchedWebtoonImage + 1, this.totalPages); + endingIndex = Math.min(this.maxPrefetchedWebtoonImage + 1 + this.buffferPages, this.totalPages); + + if (startingIndex === this.totalPages) { + return; + } + } else { + startingIndex = Math.max(this.minPrefetchedWebtoonImage - 1, 0) ; + endingIndex = Math.max(this.minPrefetchedWebtoonImage - 1 - this.buffferPages, 0); + + if (startingIndex <= 0) { + return; + } + } + + + if (startingIndex > endingIndex) { + const temp = startingIndex; + startingIndex = endingIndex; + endingIndex = temp; + } + this.debugLog('[Prefetch] prefetching pages: ' + startingIndex + ' to ' + endingIndex); + this.debugLog(' [Prefetch] page num: ', this.pageNum); + // If a request comes in to prefetch over current page +/- bufferPages (+ 1 due to requesting from next/prev page), then deny it + this.debugLog(' [Prefetch] Caps: ' + (this.pageNum - (this.buffferPages + 1)) + ' - ' + (this.pageNum + (this.buffferPages + 1))); + if (this.isScrollingForwards() && startingIndex > this.pageNum + (this.buffferPages + 1)) { + this.debugLog('[Prefetch] A request that is too far outside buffer range has been declined', this.pageNum); + return; + } + if (!this.isScrollingForwards() && endingIndex < (this.pageNum - (this.buffferPages + 1))) { + this.debugLog('[Prefetch] A request that is too far outside buffer range has been declined', this.pageNum); + return; + } + for(let i = startingIndex; i < endingIndex; i++) { + this.prefetchWebtoonImage(i); + } + + Promise.all(Array.from(document.querySelectorAll('img')) + .filter((img: any) => !img.complete) + .map((img: any) => new Promise(resolve => { img.onload = img.onerror = resolve; }))) + .then(() => { + this.allImagesLoaded = true; + }); + } + + debugLog(message: string, extraData?: any) { + if (!this.debug) { return; } + + if (extraData !== undefined) { + console.log(message, extraData); + } else { + console.log(message); + } + } +} diff --git a/UI/Web/src/app/manga-reader/manga-reader.component.html b/UI/Web/src/app/manga-reader/manga-reader.component.html new file mode 100644 index 000000000..281a443b2 --- /dev/null +++ b/UI/Web/src/app/manga-reader/manga-reader.component.html @@ -0,0 +1,130 @@ +
+
+
+ + +
+
{{title}}
+
+ {{subtitle}} +
+
+
+
+ +
+ +
+
+ +
+ + +
+ +
+ +
+
+
+ +
+
+
+
+
+
+ +
+
+ +
+ + +
+ +
+ + +
+ + +
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+   +
+
+
+
+
+
+ +
+
+
+ +
+
+   +
+
+ +
+
+ +
+
+ +
+
+
+ +
+
+
+
+
+
+ +
\ No newline at end of file diff --git a/UI/Web/src/app/manga-reader/manga-reader.component.scss b/UI/Web/src/app/manga-reader/manga-reader.component.scss new file mode 100644 index 000000000..c076922bc --- /dev/null +++ b/UI/Web/src/app/manga-reader/manga-reader.component.scss @@ -0,0 +1,254 @@ +@import '../../theme/colors'; + +$center-width: 50%; +$side-width: 25%; + +$dash-width: 3px; +$pointer-offset: 5px; + +$secondary-color: #CCC; + + +@media(min-width: 600px) { + .overlay .left .i { + left: 20px; + } + .overlay .right .i { + right: 20px; + } +} + + +.btn-icon { + color: white; +} + +canvas { + position: absolute; +} + +.reader { + background-color: black; + + img { + align-items: center; + } +} + +.loading { + position: absolute; + left: 48%; + top: 20%; + z-index: 1; +} + +.title, .subtitle { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} + +.filter-dark { + filter: brightness(0.65); +} + +.filter-sepia { + filter: sepia(80%) hue-rotate(349deg) saturate(200%) brightness(0.65); +} + +.bottom-menu { + padding: 20px 20px; +} + + +.overlay { + background-color: rgba(0,0,0,0.5); + color: white; +} + +// Fitting Options +.full-height { + position: absolute; + margin: auto; + top: 0px; + left: 0; + right: 0; + bottom: 0px; + height: 100%; +} + +.original { + position: absolute; + margin-left: auto; + margin-right: auto; + top: 0px; + bottom: 0px; + left: 0; + right: 0; +} + +.full-width { + width: 100%; +} + + +.center-menu { + position: fixed; + top: 10px; + left: $side-width; + width: $center-width; + border-bottom: $dash-width dashed $secondary-color; + text-align: center; + z-index: 2; + padding-bottom: 10px; + padding-left: 10px; + padding-right: 10px; +} + + +.right { + position: fixed; + right: 0px; + top: 0px; + width: $side-width; + height: 100%; + background: rgba(0, 0, 0, 0); + z-index: 2; + cursor: pointer; +} + +.top { + position: fixed; + right: 0px; + top: 0px; + width: 100%; + height: $side-width; + background: rgba(0, 0, 0, 0); + z-index: 2; + cursor: pointer; +} + +.left { + position: fixed; + left: 0px; + top: 0px; + width: $side-width; + height: 100%; + background: rgba(0, 0, 0, 0); + z-index: 2; + cursor: pointer; +} + +.bottom { + position: fixed; + left: 0px; + bottom: 0px; + width: 100%; + height: $side-width; + background: rgba(0, 0, 0, 0); + z-index: 2; + cursor: pointer; +} + + +// Splitting Icon +.split { + height: 20px; + width: 40px; + z-index: 1; + top: 0; + overflow: hidden; + border: 2px solid #ccc; + + &::before { + margin-left: 30%; + } + + /* Control the left side */ + .left-side { + height: 20px; + width: 20px; + background-color: rgba(255, 255, 255, 0.6); + margin-top: -16px; + } + + /* Control the right side */ + .right-side { + height: 20px; + margin-left: 20px; + width: 20px; + background-color: rgba(255, 255, 255, 0.6); + margin-top: -16px; + } + + .none { + background-color: rgba(255, 255, 255, 0.5); + } + } + + ::ng-deep { + .custom-slider .ngx-slider .ngx-slider-bar { + background: #e9ffe2; + height: 2px; + } + .custom-slider .ngx-slider .ngx-slider-selection { + background: $primary-color; + } + + .custom-slider .ngx-slider .ngx-slider-pointer { + width: 8px; + height: 16px; + top: auto; /* to remove the default positioning */ + bottom: 0; + background-color: $primary-color; // #333; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + } + + .custom-slider .ngx-slider .ngx-slider-pointer:after { + display: none; + } + + .custom-slider .ngx-slider .ngx-slider-bubble { + bottom: 14px; + font-weight: bold; + } + + .custom-slider .ngx-slider .ngx-slider-limit { + font-weight: bold; + color: white !important; + + } + + + .custom-slider .ngx-slider .ngx-slider-tick { + width: 1px; + height: 10px; + margin-left: 4px; + border-radius: 0; + background: #ffe4d1; + top: -1px; + } + + .custom-slider .ngx-slider .ngx-slider-tick.ngx-slider-selected { + background: $primary-color; + } + } + + .webtoon-images { + text-align: center; + } + + .highlight { + background-color: rgba(65, 225, 100, 0.5) !important; + animation: fadein .5s both; + } + .highlight-2 { + background-color: rgba(65, 105, 225, 0.5) !important; + animation: fadein .5s both; + } + + // DEBUG + .active-image { + border: 5px solid red; + } \ No newline at end of file diff --git a/UI/Web/src/app/manga-reader/manga-reader.component.ts b/UI/Web/src/app/manga-reader/manga-reader.component.ts new file mode 100644 index 000000000..f1cacaa39 --- /dev/null +++ b/UI/Web/src/app/manga-reader/manga-reader.component.ts @@ -0,0 +1,951 @@ +import { AfterViewInit, Component, ElementRef, EventEmitter, HostListener, OnDestroy, OnInit, SimpleChanges, ViewChild } from '@angular/core'; +import { Location } from '@angular/common'; +import { ActivatedRoute, Router } from '@angular/router'; +import { take, takeUntil } from 'rxjs/operators'; +import { User } from '../_models/user'; +import { AccountService } from '../_services/account.service'; +import { ReaderService } from '../_services/reader.service'; +import { FormBuilder, FormGroup } from '@angular/forms'; +import { NavService } from '../_services/nav.service'; +import { ReadingDirection } from '../_models/preferences/reading-direction'; +import { ScalingOption } from '../_models/preferences/scaling-option'; +import { PageSplitOption } from '../_models/preferences/page-split-option'; +import { forkJoin, Subject } from 'rxjs'; +import { ToastrService } from 'ngx-toastr'; +import { KEY_CODES } from '../shared/_services/utility.service'; +import { CircularArray } from '../shared/data-structures/circular-array'; +import { MemberService } from '../_services/member.service'; +import { Stack } from '../shared/data-structures/stack'; +import { ChangeContext, LabelType, Options } from '@angular-slider/ngx-slider'; +import { trigger, state, style, transition, animate } from '@angular/animations'; +import { ChapterInfo } from './_models/chapter-info'; +import { COLOR_FILTER, FITTING_OPTION, PAGING_DIRECTION, SPLIT_PAGE_PART } from './_models/reader-enums'; +import { Preferences, scalingOptions } from '../_models/preferences/preferences'; +import { READER_MODE } from '../_models/preferences/reader-mode'; + +const PREFETCH_PAGES = 5; + +const CHAPTER_ID_NOT_FETCHED = -2; +const CHAPTER_ID_DOESNT_EXIST = -1; + +const ANIMATION_SPEED = 200; +const OVERLAY_AUTO_CLOSE_TIME = 6000; +const CLICK_OVERLAY_TIMEOUT = 3000; + + +@Component({ + selector: 'app-manga-reader', + templateUrl: './manga-reader.component.html', + styleUrls: ['./manga-reader.component.scss'], + animations: [ + trigger('slideFromTop', [ + state('in', style({ transform: 'translateY(0)'})), + transition('void => *', [ + style({ transform: 'translateY(-100%)' }), + animate(ANIMATION_SPEED) + ]), + transition('* => void', [ + animate(ANIMATION_SPEED, style({ transform: 'translateY(-100%)' })), + ]) + ]), + trigger('slideFromBottom', [ + state('in', style({ transform: 'translateY(0)'})), + transition('void => *', [ + style({ transform: 'translateY(100%)' }), + animate(ANIMATION_SPEED) + ]), + transition('* => void', [ + animate(ANIMATION_SPEED, style({ transform: 'translateY(100%)' })), + ]) + ]) + ] +}) +export class MangaReaderComponent implements OnInit, AfterViewInit, OnDestroy { + libraryId!: number; + seriesId!: number; + volumeId!: number; + chapterId!: number; + + /** + * The current page. UI will show this number + 1. + */ + pageNum = 0; + /** + * Total pages in the given Chapter + */ + maxPages = 1; + user!: User; + generalSettingsForm!: FormGroup; + + scalingOptions = scalingOptions; + readingDirection = ReadingDirection.LeftToRight; + scalingOption = ScalingOption.FitToHeight; + pageSplitOption = PageSplitOption.SplitRightToLeft; + currentImageSplitPart: SPLIT_PAGE_PART = SPLIT_PAGE_PART.NO_SPLIT; + pagingDirection: PAGING_DIRECTION = PAGING_DIRECTION.FORWARD; + colorMode: COLOR_FILTER = COLOR_FILTER.NONE; + autoCloseMenu: boolean = true; + readerMode: READER_MODE = READER_MODE.MANGA_LR; + + isLoading = true; + + @ViewChild('content') canvas: ElementRef | undefined; + private ctx!: CanvasRenderingContext2D; + private canvasImage = new Image(); + + /** + * A circular array of size PREFETCH_PAGES + 2. Maintains prefetched Images around the current page to load from to avoid loading animation. + * @see CircularArray + */ + cachedImages!: CircularArray; + /** + * A stack of the chapter ids we come across during continuous reading mode. When we traverse a boundary, we use this to avoid extra API calls. + * @see Stack + */ + continuousChaptersStack: Stack = new Stack(); + + + /** + * If the menu is open/visible. + */ + menuOpen = false; + /** + * If the prev page allows a page change to occur. + */ + prevPageDisabled = false; + /** + * If the next page allows a page change to occur. + */ + nextPageDisabled = false; + pageOptions: Options = { + floor: 0, + ceil: 0, + step: 1, + boundPointerLabels: true, + showSelectionBar: true, + translate: (value: number, label: LabelType) => { + if (label == LabelType.Floor) { + return 1 + ''; + } else if (label === LabelType.Ceil) { + return this.maxPages + ''; + } + return (this.pageNum + 1) + ''; + }, + animate: false + }; + refreshSlider: EventEmitter = new EventEmitter(); + + /** + * Used to store the Series name for UI + */ + title: string = ''; + /** + * Used to store the Volume/Chapter information + */ + subtitle: string = ''; + /** + * Timeout id for auto-closing menu overlay + */ + menuTimeout: any; + /** + * If the click overlay is rendered on screen + */ + showClickOverlay: boolean = false; + /** + * Next Chapter Id. This is not garunteed to be a valid ChapterId. Prefetched on page load (non-blocking). + */ + nextChapterId: number = CHAPTER_ID_NOT_FETCHED; + /** + * Previous Chapter Id. This is not garunteed to be a valid ChapterId. Prefetched on page load (non-blocking). + */ + prevChapterId: number = CHAPTER_ID_NOT_FETCHED; + /** + * Is there a next chapter. If not, this will disable UI controls. + */ + nextChapterDisabled: boolean = false; + /** + * Is there a previous chapter. If not, this will disable UI controls. + */ + prevChapterDisabled: boolean = false; + /** + * Has the next chapter been prefetched. Prefetched means the backend will cache the files. + */ + nextChapterPrefetched: boolean = false; + /** + * Has the previous chapter been prefetched. Prefetched means the backend will cache the files. + */ + prevChapterPrefetched: boolean = false; + /** + * If extended settings area is visible. Blocks auto-closing of menu. + */ + settingsOpen: boolean = false; + + private readonly onDestroy = new Subject(); + + + getPageUrl = (pageNum: number) => this.readerService.getPageUrl(this.chapterId, pageNum); + + + + + + get splitIconClass() { + if (this.isSplitLeftToRight()) { + return 'left-side'; + } else if (this.isNoSplit()) { + return 'none'; + } + return 'right-side'; + } + + get readerModeIcon() { + switch(this.readerMode) { + case READER_MODE.MANGA_LR: + return 'fa-exchange-alt'; + case READER_MODE.MANGA_UD: + return 'fa-exchange-alt fa-rotate-90'; + case READER_MODE.WEBTOON: + return 'fa-arrows-alt-v'; + } + } + + get colorOptionName() { + switch(this.colorMode) { + case COLOR_FILTER.NONE: + return 'None'; + case COLOR_FILTER.DARK: + return 'Dark'; + case COLOR_FILTER.SEPIA: + return 'Sepia'; + } + } + + get READER_MODE(): typeof READER_MODE { + return READER_MODE; + } + + get ReadingDirection(): typeof ReadingDirection { + return ReadingDirection; + } + + constructor(private route: ActivatedRoute, private router: Router, private accountService: AccountService, + public readerService: ReaderService, private location: Location, + private formBuilder: FormBuilder, private navService: NavService, + private toastr: ToastrService, private memberService: MemberService) { + this.navService.hideNavBar(); + } + + ngOnInit(): void { + const libraryId = this.route.snapshot.paramMap.get('libraryId'); + const seriesId = this.route.snapshot.paramMap.get('seriesId'); + const chapterId = this.route.snapshot.paramMap.get('chapterId'); + + if (libraryId === null || seriesId === null || chapterId === null) { + this.router.navigateByUrl('/home'); + return; + } + + this.libraryId = parseInt(libraryId, 10); + this.seriesId = parseInt(seriesId, 10); + this.chapterId = parseInt(chapterId, 10); + + this.continuousChaptersStack.push(this.chapterId); + + this.readerService.setOverrideStyles(); + + this.accountService.currentUser$.pipe(take(1)).subscribe(user => { + if (user) { + this.user = user; + this.readingDirection = this.user.preferences.readingDirection; + this.scalingOption = this.user.preferences.scalingOption; + this.pageSplitOption = this.user.preferences.pageSplitOption; + this.autoCloseMenu = this.user.preferences.autoCloseMenu; + this.readerMode = this.user.preferences.readerMode; + + + this.generalSettingsForm = this.formBuilder.group({ + autoCloseMenu: this.autoCloseMenu, + pageSplitOption: this.pageSplitOption + '', + fittingOption: this.translateScalingOption(this.scalingOption) + }); + + this.updateForm(); + + this.generalSettingsForm.valueChanges.pipe(takeUntil(this.onDestroy)).subscribe((changes: SimpleChanges) => { + this.autoCloseMenu = this.generalSettingsForm.get('autoCloseMenu')?.value; + // On change of splitting, re-render the page if the page is already split + const needsSplitting = this.canvasImage.width > this.canvasImage.height; + if (needsSplitting) { + this.loadPage(); + } + }); + + this.memberService.hasReadingProgress(this.libraryId).pipe(take(1)).subscribe(progress => { + if (!progress) { + this.toggleMenu(); + this.toastr.info('Tap the image at any time to open the menu. You can configure different settings or go to page by clicking progress bar. Tap sides of image move to next/prev page.'); + } + }); + } else { + // If no user, we can't render + this.router.navigateByUrl('/home'); + } + }); + + + this.init(); + } + + ngAfterViewInit() { + if (!this.canvas) { + return; + } + this.ctx = this.canvas.nativeElement.getContext('2d', { alpha: false }); + this.canvasImage.onload = () => this.renderPage(); + } + + ngOnDestroy() { + this.readerService.resetOverrideStyles(); + this.navService.showNavBar(); + this.onDestroy.next(); + } + + @HostListener('window:keyup', ['$event']) + handleKeyPress(event: KeyboardEvent) { + if (event.key === KEY_CODES.RIGHT_ARROW || event.key === KEY_CODES.DOWN_ARROW) { + this.readingDirection === ReadingDirection.LeftToRight ? this.nextPage() : this.prevPage(); + } else if (event.key === KEY_CODES.LEFT_ARROW || event.key === KEY_CODES.UP_ARROW) { + this.readingDirection === ReadingDirection.LeftToRight ? this.prevPage() : this.nextPage(); + } else if (event.key === KEY_CODES.ESC_KEY) { + if (this.menuOpen) { + this.toggleMenu(); + event.stopPropagation(); + event.preventDefault(); + return; + } + this.closeReader(); + } else if (event.key === KEY_CODES.SPACE) { + this.toggleMenu(); + } else if (event.key === KEY_CODES.G) { + const goToPageNum = this.promptForPage(); + if (goToPageNum === null) { return; } + this.goToPage(parseInt(goToPageNum.trim(), 10)); + } + } + + init() { + this.nextChapterId = CHAPTER_ID_NOT_FETCHED; + this.prevChapterId = CHAPTER_ID_NOT_FETCHED; + this.nextChapterDisabled = false; + this.prevChapterDisabled = false; + this.nextChapterPrefetched = false; + this.pageNum = 1; + + forkJoin({ + bookmark: this.readerService.getBookmark(this.chapterId), + chapterInfo: this.readerService.getChapterInfo(this.chapterId) + }).pipe(take(1)).subscribe(results => { + this.volumeId = results.chapterInfo.volumeId; + this.maxPages = results.chapterInfo.pages; + + let page = results.bookmark.pageNum; + if (page >= this.maxPages) { + page = this.maxPages - 1; + } + this.setPageNum(page); + + // Due to change detection rules in Angular, we need to re-create the options object to apply the change + const newOptions: Options = Object.assign({}, this.pageOptions); + newOptions.ceil = this.maxPages - 1; // We -1 so that the slider UI shows us hitting the end, since visually we +1 everything. + this.pageOptions = newOptions; + + this.updateTitle(results.chapterInfo); + + this.readerService.getNextChapter(this.seriesId, this.volumeId, this.chapterId).pipe(take(1)).subscribe(chapterId => { + this.nextChapterId = chapterId; + if (chapterId === CHAPTER_ID_DOESNT_EXIST || chapterId === this.chapterId) { + this.nextChapterDisabled = true; + } + }); + this.readerService.getPrevChapter(this.seriesId, this.volumeId, this.chapterId).pipe(take(1)).subscribe(chapterId => { + this.prevChapterId = chapterId; + if (chapterId === CHAPTER_ID_DOESNT_EXIST || chapterId === this.chapterId) { + this.prevChapterDisabled = true; + } + }); + + // ! Should I move the prefetching code if we start in webtoon reader mode? + const images = []; + for (let i = 0; i < PREFETCH_PAGES + 2; i++) { + images.push(new Image()); + } + + this.cachedImages = new CircularArray(images, 0); + + + this.render(); + }, () => { + setTimeout(() => { + this.closeReader(); + }, 200); + }); + } + + render() { + if (this.readerMode === READER_MODE.WEBTOON) { + this.isLoading = false; + } else { + this.loadPage(); + } + } + + closeReader() { + this.location.back(); + } + + updateTitle(chapterInfo: ChapterInfo) { + this.title = chapterInfo.seriesName; + if (chapterInfo.chapterTitle.length > 0) { + this.title += ' - ' + chapterInfo.chapterTitle; + } + + this.subtitle = ''; + if (chapterInfo.isSpecial && chapterInfo.volumeNumber === '0') { + this.subtitle = chapterInfo.fileName; + } else if (!chapterInfo.isSpecial && chapterInfo.volumeNumber === '0') { + this.subtitle = 'Chapter ' + chapterInfo.chapterNumber; + } else { + this.subtitle = 'Volume ' + chapterInfo.volumeNumber; + + if (chapterInfo.chapterNumber !== '0') { + this.subtitle += ' Chapter ' + chapterInfo.chapterNumber; + } + } + } + + translateScalingOption(option: ScalingOption) { + switch (option) { + case (ScalingOption.Automatic): + { + const windowWidth = window.innerWidth + || document.documentElement.clientWidth + || document.body.clientWidth; + const windowHeight = window.innerHeight + || document.documentElement.clientHeight + || document.body.clientHeight; + + const ratio = windowWidth / windowHeight; + if (windowHeight > windowWidth) { + return FITTING_OPTION.WIDTH; + } + + if (windowWidth >= windowHeight || ratio > 1.0) { + return FITTING_OPTION.HEIGHT; + } + return FITTING_OPTION.WIDTH; + } + case (ScalingOption.FitToHeight): + return FITTING_OPTION.HEIGHT; + case (ScalingOption.FitToWidth): + return FITTING_OPTION.WIDTH; + default: + return FITTING_OPTION.ORIGINAL; + } + } + + getFittingOptionClass() { + const formControl = this.generalSettingsForm.get('fittingOption'); + if (formControl === undefined) { + return FITTING_OPTION.HEIGHT; + } + return formControl?.value; + } + + getFittingIcon() { + let value = FITTING_OPTION.HEIGHT; + const formControl = this.generalSettingsForm.get('fittingOption'); + if (formControl !== undefined) { + value = formControl?.value; + } + + switch(value) { + case FITTING_OPTION.HEIGHT: + return 'fa-arrows-alt-v'; + case FITTING_OPTION.WIDTH: + return 'fa-arrows-alt-h'; + case FITTING_OPTION.ORIGINAL: + return 'fa-expand-arrows-alt'; + } + } + + cancelMenuCloseTimer() { + if (this.menuTimeout) { + clearTimeout(this.menuTimeout); + } + } + + /** + * Whenever the menu is interacted with, restart the timer. However if the settings menu is open, don't restart, just cancel the timeout. + */ + resetMenuCloseTimer() { + if (this.menuTimeout) { + clearTimeout(this.menuTimeout); + if (!this.settingsOpen && this.autoCloseMenu) { + this.startMenuCloseTimer(); + } + } + } + + startMenuCloseTimer() { + if (!this.autoCloseMenu) { return; } + + this.menuTimeout = setTimeout(() => { + this.toggleMenu(); + }, OVERLAY_AUTO_CLOSE_TIME); + } + + + toggleMenu() { + this.menuOpen = !this.menuOpen; + + if (this.menuTimeout) { + clearTimeout(this.menuTimeout); + } + + if (this.menuOpen && !this.settingsOpen) { + this.startMenuCloseTimer(); + } else { + this.showClickOverlay = false; + this.settingsOpen = false; + } + } + + isSplitLeftToRight() { + return (this.generalSettingsForm?.get('pageSplitOption')?.value + '') === (PageSplitOption.SplitLeftToRight + ''); + } + + isNoSplit() { + return (this.generalSettingsForm?.get('pageSplitOption')?.value + '') === (PageSplitOption.NoSplit + ''); + } + + updateSplitPage() { + const needsSplitting = this.canvasImage.width > this.canvasImage.height; + if (!needsSplitting || this.isNoSplit()) { + this.currentImageSplitPart = SPLIT_PAGE_PART.NO_SPLIT; + return; + } + + if (this.pagingDirection === PAGING_DIRECTION.FORWARD) { + switch (this.currentImageSplitPart) { + case SPLIT_PAGE_PART.NO_SPLIT: + this.currentImageSplitPart = this.isSplitLeftToRight() ? SPLIT_PAGE_PART.LEFT_PART : SPLIT_PAGE_PART.RIGHT_PART; + break; + case SPLIT_PAGE_PART.LEFT_PART: + const r2lSplittingPart = (needsSplitting ? SPLIT_PAGE_PART.RIGHT_PART : SPLIT_PAGE_PART.NO_SPLIT); + this.currentImageSplitPart = this.isSplitLeftToRight() ? SPLIT_PAGE_PART.RIGHT_PART : r2lSplittingPart; + break; + case SPLIT_PAGE_PART.RIGHT_PART: + const l2rSplittingPart = (needsSplitting ? SPLIT_PAGE_PART.LEFT_PART : SPLIT_PAGE_PART.NO_SPLIT); + this.currentImageSplitPart = this.isSplitLeftToRight() ? l2rSplittingPart : SPLIT_PAGE_PART.LEFT_PART; + break; + } + } else if (this.pagingDirection === PAGING_DIRECTION.BACKWARDS) { + switch (this.currentImageSplitPart) { + case SPLIT_PAGE_PART.NO_SPLIT: + this.currentImageSplitPart = this.isSplitLeftToRight() ? SPLIT_PAGE_PART.RIGHT_PART : SPLIT_PAGE_PART.LEFT_PART; + break; + case SPLIT_PAGE_PART.LEFT_PART: + const l2rSplittingPart = (needsSplitting ? SPLIT_PAGE_PART.RIGHT_PART : SPLIT_PAGE_PART.NO_SPLIT); + this.currentImageSplitPart = this.isSplitLeftToRight() ? l2rSplittingPart : SPLIT_PAGE_PART.RIGHT_PART; + break; + case SPLIT_PAGE_PART.RIGHT_PART: + this.currentImageSplitPart = this.isSplitLeftToRight() ? SPLIT_PAGE_PART.LEFT_PART : (needsSplitting ? SPLIT_PAGE_PART.LEFT_PART : SPLIT_PAGE_PART.NO_SPLIT); + break; + } + } + } + + handlePageChange(event: any, direction: string) { + if (this.readerMode === READER_MODE.WEBTOON) { + if (direction === 'right') { + this.nextPage(event); + } else { + this.prevPage(event); + } + return; + } + if (direction === 'right') { + this.readingDirection === ReadingDirection.LeftToRight ? this.nextPage(event) : this.prevPage(event); + } else if (direction === 'left') { + this.readingDirection === ReadingDirection.LeftToRight ? this.prevPage(event) : this.nextPage(event); + } + } + + nextPage(event?: any) { + if (event) { + event.stopPropagation(); + event.preventDefault(); + } + + const notInSplit = this.currentImageSplitPart !== (this.isSplitLeftToRight() ? SPLIT_PAGE_PART.LEFT_PART : SPLIT_PAGE_PART.RIGHT_PART); + + if ((this.pageNum + 1 >= this.maxPages && notInSplit) || this.isLoading) { + + if (this.isLoading) { return; } + + // Move to next volume/chapter automatically + this.loadNextChapter(); + return; + } + + this.pagingDirection = PAGING_DIRECTION.FORWARD; + if (this.isNoSplit() || notInSplit) { + this.setPageNum(this.pageNum + 1); + if (this.readerMode !== READER_MODE.WEBTOON) { + this.canvasImage = this.cachedImages.next(); + } + } + + if (this.readerMode !== READER_MODE.WEBTOON) { + this.loadPage(); + } + } + + prevPage(event?: any) { + if (event) { + event.stopPropagation(); + event.preventDefault(); + } + + const notInSplit = this.currentImageSplitPart !== (this.isSplitLeftToRight() ? SPLIT_PAGE_PART.RIGHT_PART : SPLIT_PAGE_PART.LEFT_PART); + + if ((this.pageNum - 1 < 0 && notInSplit) || this.isLoading) { + + if (this.isLoading) { return; } + + // Move to next volume/chapter automatically + this.loadPrevChapter(); + return; + } + + this.pagingDirection = PAGING_DIRECTION.BACKWARDS; + if (this.isNoSplit() || notInSplit) { + this.setPageNum(this.pageNum - 1); + this.canvasImage = this.cachedImages.prev(); + } + + if (this.readerMode !== READER_MODE.WEBTOON) { + this.loadPage(); + } + } + + loadNextChapter() { + if (this.nextPageDisabled) { return; } + this.isLoading = true; + if (this.nextChapterId === CHAPTER_ID_NOT_FETCHED || this.nextChapterId === this.chapterId) { + this.readerService.getNextChapter(this.seriesId, this.volumeId, this.chapterId).pipe(take(1)).subscribe(chapterId => { + this.nextChapterId = chapterId; + this.loadChapter(chapterId, 'next'); + }); + } else { + this.loadChapter(this.nextChapterId, 'next'); + } + } + + loadPrevChapter() { + if (this.prevPageDisabled) { return; } + this.isLoading = true; + this.continuousChaptersStack.pop(); + const prevChapter = this.continuousChaptersStack.peek(); + if (prevChapter != this.chapterId) { + if (prevChapter !== undefined) { + this.chapterId = prevChapter; + this.init(); + return; + } + } + + if (this.prevChapterId === CHAPTER_ID_NOT_FETCHED || this.prevChapterId === this.chapterId) { + this.readerService.getPrevChapter(this.seriesId, this.volumeId, this.chapterId).pipe(take(1)).subscribe(chapterId => { + this.prevChapterId = chapterId; + this.loadChapter(chapterId, 'prev'); + }); + } else { + this.loadChapter(this.prevChapterId, 'prev'); + } + } + + loadChapter(chapterId: number, direction: 'next' | 'prev') { + if (chapterId >= 0) { + this.chapterId = chapterId; + this.continuousChaptersStack.push(chapterId); + // Load chapter Id onto route but don't reload + const lastSlashIndex = this.router.url.lastIndexOf('/'); + const newRoute = this.router.url.substring(0, lastSlashIndex + 1) + this.chapterId + ''; + window.history.replaceState({}, '', newRoute); + this.init(); + } else { + // This will only happen if no actual chapter can be found + this.toastr.warning('Could not find ' + direction + ' chapter'); + this.isLoading = false; + if (direction === 'prev') { + this.prevPageDisabled = true; + } else { + this.nextPageDisabled = true; + } + + } + } + + renderPage() { + if (this.ctx && this.canvas) { + this.canvasImage.onload = null; + //this.ctx.imageSmoothingEnabled = true; + this.canvas.nativeElement.width = this.canvasImage.width; + this.canvas.nativeElement.height = this.canvasImage.height; + const needsSplitting = this.canvasImage.width > this.canvasImage.height; + this.updateSplitPage(); + + if (needsSplitting && this.currentImageSplitPart === SPLIT_PAGE_PART.LEFT_PART) { + this.canvas.nativeElement.width = this.canvasImage.width / 2; + this.ctx.drawImage(this.canvasImage, 0, 0, this.canvasImage.width, this.canvasImage.height, 0, 0, this.canvasImage.width, this.canvasImage.height); + } else if (needsSplitting && this.currentImageSplitPart === SPLIT_PAGE_PART.RIGHT_PART) { + this.canvas.nativeElement.width = this.canvasImage.width / 2; + this.ctx.drawImage(this.canvasImage, 0, 0, this.canvasImage.width, this.canvasImage.height, -this.canvasImage.width / 2, 0, this.canvasImage.width, this.canvasImage.height); + } else { + this.ctx.drawImage(this.canvasImage, 0, 0); + } + } + this.isLoading = false; + } + + + prefetch() { + let index = 1; + + this.cachedImages.applyFor((item, internalIndex) => { + const offsetIndex = this.pageNum + index; + const urlPageNum = this.readerService.imageUrlToPageNum(item.src); + if (urlPageNum === offsetIndex) { + index += 1; + return; + } + if (offsetIndex < this.maxPages - 1) { + item.src = this.readerService.getPageUrl(this.chapterId, offsetIndex); + index += 1; + } + }, this.cachedImages.size() - 3); + //console.log('prefetched images: ', this.cachedImages.arr.map(item => this.readerService.imageUrlToPageNum(item.src) + (item.complete ? ' (c)' : ''))); + } + + loadPage() { + if (!this.canvas || !this.ctx) { return; } + + // Due to the fact that we start at image 0, but page 1, we need the last page to be bookmarked as page + 1 to be completed + let pageNum = this.pageNum; + if (this.pageNum == this.maxPages - 1) { + pageNum = this.pageNum + 1; + } + + + this.readerService.bookmark(this.seriesId, this.volumeId, this.chapterId, pageNum).pipe(take(1)).subscribe(() => {/* No operation */}); + + this.isLoading = true; + this.canvasImage = this.cachedImages.current(); + if (this.readerService.imageUrlToPageNum(this.canvasImage.src) !== this.pageNum || this.canvasImage.src === '' || !this.canvasImage.complete) { + this.canvasImage.src = this.readerService.getPageUrl(this.chapterId, this.pageNum); + this.canvasImage.onload = () => this.renderPage(); + } else { + this.renderPage(); + } + this.prefetch(); + } + + setReadingDirection() { + if (this.readingDirection === ReadingDirection.LeftToRight) { + this.readingDirection = ReadingDirection.RightToLeft; + } else { + this.readingDirection = ReadingDirection.LeftToRight; + } + + if (this.menuOpen) { + this.showClickOverlay = true; + setTimeout(() => { + this.showClickOverlay = false; + }, CLICK_OVERLAY_TIMEOUT); + } + } + + clickOverlayClass(side: 'right' | 'left') { + if (!this.showClickOverlay) { + return ''; + } + + if (this.readingDirection === ReadingDirection.LeftToRight) { + return side === 'right' ? 'highlight' : 'highlight-2'; + } + return side === 'right' ? 'highlight-2' : 'highlight'; + } + + sliderPageUpdate(context: ChangeContext) { + const page = context.value; + + if (page > this.pageNum) { + this.pagingDirection = PAGING_DIRECTION.FORWARD; + } else { + this.pagingDirection = PAGING_DIRECTION.BACKWARDS; + } + + this.setPageNum(page); + this.refreshSlider.emit(); + this.render(); + } + + setPageNum(pageNum: number) { + this.pageNum = pageNum; + + if (this.pageNum >= this.maxPages - 10) { + // Tell server to cache the next chapter + if (this.nextChapterId > 0 && !this.nextChapterPrefetched) { + this.readerService.getChapterInfo(this.nextChapterId).pipe(take(1)).subscribe(res => { + this.nextChapterPrefetched = true; + }); + } + } else if (this.pageNum <= 10) { + if (this.prevChapterId > 0 && !this.prevChapterPrefetched) { + this.readerService.getChapterInfo(this.prevChapterId).pipe(take(1)).subscribe(res => { + this.prevChapterPrefetched = true; + }); + } + } + } + + goToPage(pageNum: number) { + let page = pageNum; + + if (page === undefined || this.pageNum === page) { return; } + + if (page > this.maxPages) { + page = this.maxPages; + } else if (page < 0) { + page = 0; + } + + if (!(page === 0 || page === this.maxPages - 1)) { + page -= 1; + } + + if (page > this.pageNum) { + this.pagingDirection = PAGING_DIRECTION.FORWARD; + } else { + this.pagingDirection = PAGING_DIRECTION.BACKWARDS; + } + + this.setPageNum(page); + this.render(); + } + + promptForPage() { + const goToPageNum = window.prompt('There are ' + this.maxPages + ' pages. What page would you like to go to?', ''); + if (goToPageNum === null || goToPageNum.trim().length === 0) { return null; } + return goToPageNum; + } + + toggleColorMode() { + switch(this.colorMode) { + case COLOR_FILTER.NONE: + this.colorMode = COLOR_FILTER.DARK; + break; + case COLOR_FILTER.DARK: + this.colorMode = COLOR_FILTER.SEPIA; + break; + case COLOR_FILTER.SEPIA: + this.colorMode = COLOR_FILTER.NONE; + break; + } + } + + toggleReaderMode() { + switch(this.readerMode) { + case READER_MODE.MANGA_LR: + this.readerMode = READER_MODE.MANGA_UD; + break; + case READER_MODE.MANGA_UD: + this.readerMode = READER_MODE.WEBTOON; + // Temp disable ability to use webtoon + //this.readerMode = READER_MODE.MANGA_LR; + break; + case READER_MODE.WEBTOON: + this.readerMode = READER_MODE.MANGA_LR; + break; + } + + this.updateForm(); + + this.render(); + } + + updateForm() { + if ( this.readerMode === READER_MODE.WEBTOON) { + this.generalSettingsForm.get('fittingOption')?.disable() + this.generalSettingsForm.get('pageSplitOption')?.disable(); + } else { + this.generalSettingsForm.get('fittingOption')?.enable() + this.generalSettingsForm.get('pageSplitOption')?.enable(); + } + } + + handleWebtoonPageChange(updatedPageNum: number) { + console.log('[MangaReader] Handling Page Change'); + + this.pageNum = updatedPageNum; + + this.readerService.bookmark(this.seriesId, this.volumeId, this.chapterId, this.pageNum).pipe(take(1)).subscribe(() => {/* No operation */}); + if (this.pageNum >= this.maxPages - 10) { + // Tell server to cache the next chapter + if (this.nextChapterId > 0 && !this.nextChapterPrefetched) { + this.readerService.getChapterInfo(this.nextChapterId).pipe(take(1)).subscribe(res => { + this.nextChapterPrefetched = true; + }); + } + } + } + + saveSettings() { + if (this.user === undefined) return; + + const data: Preferences = { + readingDirection: this.readingDirection, + scalingOption: this.scalingOption, + pageSplitOption: this.pageSplitOption, + autoCloseMenu: this.autoCloseMenu, + readerMode: this.readerMode, + + bookReaderDarkMode: this.user.preferences.bookReaderDarkMode, + bookReaderFontFamily: this.user.preferences.bookReaderFontFamily, + bookReaderFontSize: this.user.preferences.bookReaderFontSize, + bookReaderLineSpacing: this.user.preferences.bookReaderLineSpacing, + bookReaderMargin: this.user.preferences.bookReaderMargin, + bookReaderTapToPaginate: this.user.preferences.bookReaderTapToPaginate, + bookReaderReadingDirection: this.readingDirection, + + siteDarkMode: this.user.preferences.siteDarkMode, + }; + this.accountService.updatePreferences(data).pipe(take(1)).subscribe((updatedPrefs) => { + this.toastr.success('User settings updated'); + if (this.user) { + this.user.preferences = updatedPrefs; + } + this.resetSettings(); + }); + + } + + resetSettings() { + this.generalSettingsForm.get('fittingOption')?.value.get('fittingOption')?.setValue(this.translateScalingOption(this.user.preferences.scalingOption)); + this.generalSettingsForm.get('pageSplitOption')?.setValue(this.user.preferences.pageSplitOption + ''); + this.generalSettingsForm.get('autoCloseMenu')?.setValue(this.autoCloseMenu); + + this.updateForm(); + } +} diff --git a/UI/Web/src/app/manga-reader/manga-reader.module.ts b/UI/Web/src/app/manga-reader/manga-reader.module.ts new file mode 100644 index 000000000..69f6b4501 --- /dev/null +++ b/UI/Web/src/app/manga-reader/manga-reader.module.ts @@ -0,0 +1,30 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { MangaReaderComponent } from './manga-reader.component'; +import { ReactiveFormsModule } from '@angular/forms'; +import { NgbButtonsModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { MangaReaderRoutingModule } from './manga-reader.router.module'; +import { SharedModule } from '../shared/shared.module'; +import { NgxSliderModule } from '@angular-slider/ngx-slider'; +import { InfiniteScrollerComponent } from './infinite-scroller/infinite-scroller.component'; + +@NgModule({ + declarations: [ + MangaReaderComponent, + InfiniteScrollerComponent + ], + imports: [ + CommonModule, + MangaReaderRoutingModule, + ReactiveFormsModule, + + NgbButtonsModule, + NgbDropdownModule, + NgxSliderModule, + SharedModule, + ], + exports: [ + MangaReaderComponent + ] +}) +export class MangaReaderModule { } diff --git a/UI/Web/src/app/manga-reader/manga-reader.router.module.ts b/UI/Web/src/app/manga-reader/manga-reader.router.module.ts new file mode 100644 index 000000000..388f727b2 --- /dev/null +++ b/UI/Web/src/app/manga-reader/manga-reader.router.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { MangaReaderComponent } from './manga-reader.component'; + +const routes: Routes = [ + { + path: ':chapterId', + component: MangaReaderComponent + } +]; + + +@NgModule({ + imports: [RouterModule.forChild(routes), ], + exports: [RouterModule] +}) +export class MangaReaderRoutingModule { } diff --git a/UI/Web/src/app/nav-header/nav-header.component.html b/UI/Web/src/app/nav-header/nav-header.component.html new file mode 100644 index 000000000..aac0bffa8 --- /dev/null +++ b/UI/Web/src/app/nav-header/nav-header.component.html @@ -0,0 +1,80 @@ + + \ No newline at end of file diff --git a/UI/Web/src/app/nav-header/nav-header.component.scss b/UI/Web/src/app/nav-header/nav-header.component.scss new file mode 100644 index 000000000..c0d170b06 --- /dev/null +++ b/UI/Web/src/app/nav-header/nav-header.component.scss @@ -0,0 +1,68 @@ +@import '~bootstrap/scss/mixins/_breakpoints.scss'; + +$primary-color: white; +$bg-color: rgb(22, 27, 34); + +.navbar { + background-color: $bg-color; +} + +.navbar-brand { + font-family: "Spartan", sans-serif; + font-weight: bold; + + .logo { + max-height: 28px; + vertical-align: top; + } + + .phone-hidden { + vertical-align: middle; + } +} + +.focus-visible:focus { + visibility: visible; + color: white; +} + +.ng-autocomplete { + margin-bottom: 0px; + max-width: 400px; +} + +.primary-text { + color: $primary-color; + border: none; +} + +.search-result { + width: 24px; + margin-top: 5px; +} + +@include media-breakpoint-down(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)) { + .ng-autocomplete { + width: 100%; // 232px + } +} + +/* Extra small devices (phones, 300px and down) */ +@media only screen and (max-width: 300px) { //370 + .ng-autocomplete { + max-width: 120px; + } +} + +.scroll-to-top:hover { + animation: MoveUpDown 1s linear infinite; +} + +@keyframes MoveUpDown { + 0%, 100% { + transform: translateY(0); + } + 50% { + transform: translateY(-10px); + } +} \ No newline at end of file diff --git a/UI/Web/src/app/nav-header/nav-header.component.ts b/UI/Web/src/app/nav-header/nav-header.component.ts new file mode 100644 index 000000000..1163d781e --- /dev/null +++ b/UI/Web/src/app/nav-header/nav-header.component.ts @@ -0,0 +1,101 @@ +import { DOCUMENT } from '@angular/common'; +import { Component, HostListener, Inject, OnDestroy, OnInit, ViewChild } from '@angular/core'; +import { Router } from '@angular/router'; +import { Subject } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; +import { SearchResult } from '../_models/search-result'; +import { AccountService } from '../_services/account.service'; +import { ImageService } from '../_services/image.service'; +import { LibraryService } from '../_services/library.service'; +import { NavService } from '../_services/nav.service'; + +@Component({ + selector: 'app-nav-header', + templateUrl: './nav-header.component.html', + styleUrls: ['./nav-header.component.scss'] +}) +export class NavHeaderComponent implements OnInit, OnDestroy { + + @ViewChild('search') searchViewRef!: any; + + isLoading = false; + debounceTime = 300; + imageStyles = {width: '24px', 'margin-top': '5px'}; + searchResults: SearchResult[] = []; + searchTerm = ''; + + + backToTopNeeded = false; + private readonly onDestroy = new Subject(); + + constructor(public accountService: AccountService, private router: Router, public navService: NavService, + private libraryService: LibraryService, public imageService: ImageService, @Inject(DOCUMENT) private document: Document) { } + + ngOnInit(): void { + this.navService.darkMode$.pipe(takeUntil(this.onDestroy)).subscribe(res => { + if (res) { + this.document.body.classList.remove('bg-light'); + this.document.body.classList.add('bg-dark'); + } else { + this.document.body.classList.remove('bg-dark'); + this.document.body.classList.add('bg-light'); + } + }); + } + + @HostListener("window:scroll", []) + checkBackToTopNeeded() { + const offset = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop; + if (offset > 100) { + this.backToTopNeeded = true; + } else if (offset < 40) { + this.backToTopNeeded = false; + } + } + + ngOnDestroy() { + this.onDestroy.next(); + this.onDestroy.complete(); + } + + logout() { + this.accountService.logout(); + this.navService.hideNavBar(); + this.router.navigateByUrl('/home'); + } + + moveFocus() { + document.getElementById('content')?.focus(); + } + + onChangeSearch(val: string) { + this.isLoading = true; + this.searchTerm = val; + this.libraryService.search(val).pipe(takeUntil(this.onDestroy)).subscribe(results => { + this.searchResults = results; + this.isLoading = false; + }, err => { + this.searchResults = []; + this.isLoading = false; + this.searchTerm = ''; + }); + } + + clickSearchResult(item: SearchResult) { + const libraryId = item.libraryId; + const seriesId = item.seriesId; + this.searchViewRef.clear(); + this.searchResults = []; + this.searchTerm = ''; + this.router.navigate(['library', libraryId, 'series', seriesId]); + } + + scrollToTop() { + window.scroll({ + top: 0, + behavior: 'smooth' + }); + } + + +} diff --git a/UI/Web/src/app/not-connected/not-connected.component.html b/UI/Web/src/app/not-connected/not-connected.component.html new file mode 100644 index 000000000..17b9250c8 --- /dev/null +++ b/UI/Web/src/app/not-connected/not-connected.component.html @@ -0,0 +1,3 @@ +
+

Oops! Looks like the server is not online.

+
\ No newline at end of file diff --git a/UI/Web/src/app/not-connected/not-connected.component.scss b/UI/Web/src/app/not-connected/not-connected.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/UI/Web/src/app/not-connected/not-connected.component.ts b/UI/Web/src/app/not-connected/not-connected.component.ts new file mode 100644 index 000000000..70b019fa2 --- /dev/null +++ b/UI/Web/src/app/not-connected/not-connected.component.ts @@ -0,0 +1,26 @@ +import { Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; +import { MemberService } from '../_services/member.service'; + +@Component({ + selector: 'app-not-connected', + templateUrl: './not-connected.component.html', + styleUrls: ['./not-connected.component.scss'] +}) +export class NotConnectedComponent implements OnInit { + constructor(private memberService: MemberService, private router: Router) { } + + ngOnInit(): void { + // We make a call to backend on refresh so that if it's up, we can redirect to /home + this.memberService.adminExists().subscribe((exists) => { + const pageResume = localStorage.getItem('kavita--no-connection-url'); + if (pageResume && pageResume !== '/no-connection') { + localStorage.setItem('kavita--no-connection-url', ''); + this.router.navigateByUrl(pageResume); + } else { + this.router.navigateByUrl('/home'); + } + }); + } + +} diff --git a/UI/Web/src/app/person-badge/person-badge.component.html b/UI/Web/src/app/person-badge/person-badge.component.html new file mode 100644 index 000000000..fd12496d4 --- /dev/null +++ b/UI/Web/src/app/person-badge/person-badge.component.html @@ -0,0 +1,12 @@ +
+ +
+ +
+
+ +
+ +
+
+
\ No newline at end of file diff --git a/UI/Web/src/app/person-badge/person-badge.component.scss b/UI/Web/src/app/person-badge/person-badge.component.scss new file mode 100644 index 000000000..c3c50f725 --- /dev/null +++ b/UI/Web/src/app/person-badge/person-badge.component.scss @@ -0,0 +1,24 @@ +@import '../../theme/colors'; + +$bg-color: #c9c9c9; +$bdr-color: #f2f2f2; + +::ng-deep .badge { + background-color: $bg-color; + transition: all .3s ease-out; + margin: 3px 5px 3px 0px; + padding: 2px 15px; + border-radius: 6px; + font-size: 14px; + border: 1px solid $bdr-color; + display: inline-block; + + i { + color: $primary-color; + font-size: 14px; + font-weight: bold; + margin-left: 10px; + margin-right: 0px; + cursor: pointer; + } +} \ No newline at end of file diff --git a/UI/Web/src/app/person-badge/person-badge.component.ts b/UI/Web/src/app/person-badge/person-badge.component.ts new file mode 100644 index 000000000..a91c513b6 --- /dev/null +++ b/UI/Web/src/app/person-badge/person-badge.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-person-badge', + templateUrl: './person-badge.component.html', + styleUrls: ['./person-badge.component.scss'] +}) +export class PersonBadgeComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/UI/Web/src/app/recently-added/recently-added.component.html b/UI/Web/src/app/recently-added/recently-added.component.html new file mode 100644 index 000000000..29ec803fb --- /dev/null +++ b/UI/Web/src/app/recently-added/recently-added.component.html @@ -0,0 +1,12 @@ + + + + + + + diff --git a/UI/Web/src/app/recently-added/recently-added.component.scss b/UI/Web/src/app/recently-added/recently-added.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/UI/Web/src/app/recently-added/recently-added.component.ts b/UI/Web/src/app/recently-added/recently-added.component.ts new file mode 100644 index 000000000..8df490b6f --- /dev/null +++ b/UI/Web/src/app/recently-added/recently-added.component.ts @@ -0,0 +1,54 @@ +import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { Pagination } from '../_models/pagination'; +import { Series } from '../_models/series'; +import { SeriesService } from '../_services/series.service'; + +/** + * This component is used as a standard layout for any card detail. ie) series, in-progress, collections, etc. + */ +@Component({ + selector: 'app-recently-added', + templateUrl: './recently-added.component.html', + styleUrls: ['./recently-added.component.scss'] +}) +export class RecentlyAddedComponent implements OnInit { + + isLoading: boolean = true; + recentlyAdded: Series[] = []; + pagination!: Pagination; + libraryId!: number; + + constructor(private router: Router, private route: ActivatedRoute, private seriesService: SeriesService) { + this.router.routeReuseStrategy.shouldReuseRoute = () => false; + } + + ngOnInit() { + this.loadPage(); + } + + seriesClicked(series: Series) { + this.router.navigate(['library', this.libraryId, 'series', series.id]); + } + + onPageChange(pagination: Pagination) { + this.router.navigate(['recently-added'], {replaceUrl: true, queryParamsHandling: 'merge', queryParams: {page: this.pagination.currentPage} }); + } + + loadPage() { + const page = this.route.snapshot.queryParamMap.get('page'); + if (page != null) { + if (this.pagination === undefined || this.pagination === null) { + this.pagination = {currentPage: 0, itemsPerPage: 30, totalItems: 0, totalPages: 1}; + } + this.pagination.currentPage = parseInt(page, 10); + } + this.isLoading = true; + this.seriesService.getRecentlyAdded(this.libraryId, this.pagination?.currentPage, this.pagination?.itemsPerPage).subscribe(series => { + this.recentlyAdded = series.result; + this.pagination = series.pagination; + this.isLoading = false; + window.scrollTo(0, 0); + }); + } +} diff --git a/UI/Web/src/app/series-detail/series-detail.component.html b/UI/Web/src/app/series-detail/series-detail.component.html new file mode 100644 index 000000000..77cb67133 --- /dev/null +++ b/UI/Web/src/app/series-detail/series-detail.component.html @@ -0,0 +1,124 @@ +
+
+
+ +
+
+

{{series?.name}}

+
+
+ +
+
+ +
+
+ +
+
+
+ +
+
+
+ + +
+
+
+ +
+
+ +
+
+
+
+
Genres
+
+
+ {{genre}} +
+
+
+
+
Collections
+
+
+ + {{tag.title}} + +
+
+
+
+
People
+
+
+ +
{{person.name}}
+
{{person.role}}
+
+
+
+
+
+
+
+ + +
+ +
+
+ +
+
+ +
+
+
\ No newline at end of file diff --git a/UI/Web/src/app/series-detail/series-detail.component.scss b/UI/Web/src/app/series-detail/series-detail.component.scss new file mode 100644 index 000000000..d154833cf --- /dev/null +++ b/UI/Web/src/app/series-detail/series-detail.component.scss @@ -0,0 +1,30 @@ +@import '~bootstrap/scss/mixins/_breakpoints.scss'; + + +.user-review { + font-style: italic; + +} + +.poster { + width: 100%; +} + +.rating-star { + margin-top: 2px; + font-size: 1.5rem; +} + + +// Including breakpoint has issue with resovling variable, so copying gridpoints here +@include media-breakpoint-down(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)) { + .poster { + display: none; + } +} + +@include media-breakpoint-down(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)) { + .read-btn--text { + display: none; + } +} diff --git a/UI/Web/src/app/series-detail/series-detail.component.ts b/UI/Web/src/app/series-detail/series-detail.component.ts new file mode 100644 index 000000000..dcfd9b5e2 --- /dev/null +++ b/UI/Web/src/app/series-detail/series-detail.component.ts @@ -0,0 +1,416 @@ +import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { NgbModal, NgbRatingConfig } from '@ng-bootstrap/ng-bootstrap'; +import { ToastrService } from 'ngx-toastr'; +import { forkJoin } from 'rxjs'; +import { take } from 'rxjs/operators'; +import { ConfirmConfig } from '../shared/confirm-dialog/_models/confirm-config'; +import { ConfirmService } from '../shared/confirm.service'; +import { CardDetailsModalComponent } from '../shared/_modals/card-details-modal/card-details-modal.component'; +import { DownloadService } from '../shared/_services/download.service'; +import { NaturalSortService } from '../shared/_services/natural-sort.service'; +import { UtilityService } from '../shared/_services/utility.service'; +import { EditSeriesModalComponent } from '../_modals/edit-series-modal/edit-series-modal.component'; +import { ReviewSeriesModalComponent } from '../_modals/review-series-modal/review-series-modal.component'; +import { Chapter } from '../_models/chapter'; +import { LibraryType } from '../_models/library'; +import { Series } from '../_models/series'; +import { SeriesMetadata } from '../_models/series-metadata'; +import { Volume } from '../_models/volume'; +import { AccountService } from '../_services/account.service'; +import { ActionItem, ActionFactoryService, Action } from '../_services/action-factory.service'; +import { ActionService } from '../_services/action.service'; +import { ImageService } from '../_services/image.service'; +import { LibraryService } from '../_services/library.service'; +import { ReaderService } from '../_services/reader.service'; +import { SeriesService } from '../_services/series.service'; + + +@Component({ + selector: 'app-series-detail', + templateUrl: './series-detail.component.html', + styleUrls: ['./series-detail.component.scss'] +}) +export class SeriesDetailComponent implements OnInit { + + series!: Series; + volumes: Volume[] = []; + chapters: Chapter[] = []; + libraryId = 0; + isAdmin = false; + hasDownloadingRole = false; + isLoading = true; + showBook = true; + + currentlyReadingChapter: Chapter | undefined = undefined; + hasReadingProgress = false; + + + seriesActions: ActionItem[] = []; + volumeActions: ActionItem[] = []; + chapterActions: ActionItem[] = []; + + hasSpecials = false; + specials: Array = []; + activeTabId = 2; + hasNonSpecialVolumeChapters = true; + + seriesSummary: string = ''; + userReview: string = ''; + libraryType: LibraryType = LibraryType.Manga; + seriesMetadata: SeriesMetadata | null = null; + + /** + * If an action is currently being done, don't let the user kick off another action + */ + actionInProgress: boolean = false; + + + get LibraryType(): typeof LibraryType { + return LibraryType; + } + + constructor(private route: ActivatedRoute, private seriesService: SeriesService, + ratingConfig: NgbRatingConfig, private router: Router, + private modalService: NgbModal, public readerService: ReaderService, + private utilityService: UtilityService, private toastr: ToastrService, + private accountService: AccountService, public imageService: ImageService, + private actionFactoryService: ActionFactoryService, private libraryService: LibraryService, + private confirmService: ConfirmService, private naturalSort: NaturalSortService, + private downloadService: DownloadService, private actionService: ActionService) { + ratingConfig.max = 5; + this.router.routeReuseStrategy.shouldReuseRoute = () => false; + this.accountService.currentUser$.pipe(take(1)).subscribe(user => { + if (user) { + this.isAdmin = this.accountService.hasAdminRole(user); + this.hasDownloadingRole = this.accountService.hasDownloadRole(user); + } + }); + } + + ngOnInit(): void { + const routeId = this.route.snapshot.paramMap.get('seriesId'); + const libraryId = this.route.snapshot.paramMap.get('libraryId'); + if (routeId === null || libraryId == null) { + this.router.navigateByUrl('/home'); + return; + } + + this.seriesActions = this.actionFactoryService.getSeriesActions(this.handleSeriesActionCallback.bind(this)).filter(action => action.action !== Action.Edit); + this.volumeActions = this.actionFactoryService.getVolumeActions(this.handleVolumeActionCallback.bind(this)); + this.chapterActions = this.actionFactoryService.getChapterActions(this.handleChapterActionCallback.bind(this)); + + + const seriesId = parseInt(routeId, 10); + this.libraryId = parseInt(libraryId, 10); + this.seriesService.getMetadata(seriesId).subscribe(metadata => { + this.seriesMetadata = metadata; + }); + this.libraryService.getLibraryType(this.libraryId).subscribe(type => { + this.libraryType = type; + this.loadSeries(seriesId); + }); + } + + handleSeriesActionCallback(action: Action, series: Series) { + this.actionInProgress = true; + switch(action) { + case(Action.MarkAsRead): + this.actionService.markSeriesAsRead(series, (series: Series) => { + this.actionInProgress = false; + this.loadSeries(series.id); + }); + break; + case(Action.MarkAsUnread): + this.actionService.markSeriesAsUnread(series, (series: Series) => { + this.actionInProgress = false; + this.loadSeries(series.id); + }); + break; + case(Action.ScanLibrary): + this.actionService.scanSeries(series, (series) => this.actionInProgress = false); + break; + case(Action.RefreshMetadata): + this.actionService.refreshMetdata(series, (series) => this.actionInProgress = false); + break; + case(Action.Delete): + this.deleteSeries(series); + break; + default: + break; + } + } + + handleVolumeActionCallback(action: Action, volume: Volume) { + switch(action) { + case(Action.MarkAsRead): + this.markAsRead(volume); + break; + case(Action.MarkAsUnread): + this.markAsUnread(volume); + break; + case(Action.Info): + this.openViewInfo(volume); + break; + case(Action.Download): + this.downloadService.downloadVolume(volume, this.series.name); + break; + default: + break; + } + } + + handleChapterActionCallback(action: Action, chapter: Chapter) { + switch (action) { + case(Action.MarkAsRead): + this.markChapterAsRead(chapter); + break; + case(Action.MarkAsUnread): + this.markChapterAsUnread(chapter); + break; + case(Action.Info): + this.openViewInfo(chapter); + break; + case(Action.Download): + this.downloadService.downloadChapter(chapter, this.series.name); + break; + default: + break; + } + } + + + async deleteSeries(series: Series) { + if (!await this.confirmService.confirm('Are you sure you want to delete this series? It will not modify files on disk.')) { + this.actionInProgress = false; + return; + } + + this.seriesService.delete(series.id).subscribe((res: boolean) => { + if (res) { + this.toastr.success('Series deleted'); + this.router.navigate(['library', this.libraryId]); + } + this.actionInProgress = false; + }); + } + + markSeriesAsUnread(series: Series) { + this.seriesService.markUnread(series.id).subscribe(res => { + this.toastr.success(series.name + ' is now unread'); + series.pagesRead = 0; + this.loadSeries(series.id); + }); + } + + markSeriesAsRead(series: Series) { + this.seriesService.markRead(series.id).subscribe(res => { + series.pagesRead = series.pages; + this.toastr.success(series.name + ' is now read'); + this.loadSeries(series.id); + }); + } + + loadSeries(seriesId: number) { + this.seriesService.getMetadata(seriesId).subscribe(metadata => { + this.seriesMetadata = metadata; + }); + this.seriesService.getSeries(seriesId).subscribe(series => { + this.series = series; + this.createHTML(); + + + this.seriesService.getVolumes(this.series.id).subscribe(volumes => { + this.chapters = volumes.filter(v => v.number === 0).map(v => v.chapters || []).flat().sort(this.utilityService.sortChapters); + this.volumes = volumes.sort(this.utilityService.sortVolumes); + + this.setContinuePoint(); + const vol0 = this.volumes.filter(v => v.number === 0); + this.hasSpecials = vol0.map(v => v.chapters || []).flat().sort(this.utilityService.sortChapters).filter(c => c.isSpecial || isNaN(parseInt(c.range, 10))).length > 0 ; + if (this.hasSpecials) { + this.specials = vol0.map(v => v.chapters || []) + .flat() + .filter(c => c.isSpecial || isNaN(parseInt(c.range, 10))) + .sort((a, b) => this.naturalSort.compare(a.range, b.range, true)) + .map(c => { + c.title = this.utilityService.cleanSpecialTitle(c.title); + c.range = this.utilityService.cleanSpecialTitle(c.range); + return c; + }); + } + + if (this.volumes.filter(v => v.number !== 0).length === 0 && this.chapters.filter(c => !c.isSpecial).length === 0 && this.specials.length > 0) { + this.activeTabId = 1; + this.hasNonSpecialVolumeChapters = false; + } + + this.isLoading = false; + }); + }); + } + + createHTML() { + this.seriesSummary = (this.series.summary === null ? '' : this.series.summary).replace(/\n/g, '
'); + this.userReview = (this.series.userReview === null ? '' : this.series.userReview).replace(/\n/g, '
'); + } + + setContinuePoint() { + this.hasReadingProgress = this.volumes.filter(v => v.pagesRead > 0).length > 0 || this.chapters.filter(c => c.pagesRead > 0).length > 0; + this.currentlyReadingChapter = this.readerService.getCurrentChapter(this.volumes); + } + + markAsRead(vol: Volume) { + if (this.series === undefined) { + return; + } + const seriesId = this.series.id; + + this.actionService.markVolumeAsRead(seriesId, vol, (volume) => { + this.setContinuePoint(); + this.actionInProgress = false; + }); + } + + markAsUnread(vol: Volume) { + if (this.series === undefined) { + return; + } + const seriesId = this.series.id; + + this.actionService.markVolumeAsUnread(seriesId, vol, (volume) => { + this.setContinuePoint(); + this.actionInProgress = false; + }); + } + + markChapterAsRead(chapter: Chapter) { + if (this.series === undefined) { + return; + } + const seriesId = this.series.id; + + this.actionService.markChapterAsRead(seriesId, chapter, (chapter) => { + this.setContinuePoint(); + this.actionInProgress = false; + }); + } + + markChapterAsUnread(chapter: Chapter) { + if (this.series === undefined) { + return; + } + const seriesId = this.series.id; + + this.actionService.markChapterAsUnread(seriesId, chapter, (chapter) => { + this.setContinuePoint(); + this.actionInProgress = false; + }); + } + + read() { + if (this.currentlyReadingChapter !== undefined) { this.openChapter(this.currentlyReadingChapter); } + } + + updateRating(rating: any) { + if (this.series === undefined) { + return; + } + + this.seriesService.updateRating(this.series?.id, this.series?.userRating, this.series?.userReview).subscribe(() => { + this.createHTML(); + }); + } + + openChapter(chapter: Chapter) { + if (chapter.pages === 0) { + this.toastr.error('There are no pages. Kavita was not able to read this archive.'); + return; + } + if (this.libraryType === LibraryType.Book) { + this.router.navigate(['library', this.libraryId, 'series', this.series?.id, 'book', chapter.id]); + } else { + this.router.navigate(['library', this.libraryId, 'series', this.series?.id, 'manga', chapter.id]); + } + } + + openVolume(volume: Volume) { + if (volume.chapters === undefined || volume.chapters?.length === 0) { + this.toastr.error('There are no chapters to this volume. Cannot read.'); + return; + } + // NOTE: When selecting a volume, we might want to ask the user which chapter they want or an "Automatic" option. For Volumes + // made up of lots of chapter files, it makes it more versitile. The modal can have pages read / pages with colored background + // to help the user make a good choice. + + // If user has progress on the volume, load them where they left off + if (volume.pagesRead < volume.pages && volume.pagesRead > 0) { + // Find the continue point chapter and load it + this.openChapter(this.readerService.getCurrentChapter([volume])); + return; + } + + // Sort the chapters, then grab first if no reading progress + this.openChapter([...volume.chapters].sort(this.utilityService.sortChapters)[0]); + } + + isNullOrEmpty(val: string) { + return val === null || val === undefined || val === ''; + } + + openViewInfo(data: Volume | Chapter) { + const modalRef = this.modalService.open(CardDetailsModalComponent, { size: 'lg', scrollable: true }); + modalRef.componentInstance.data = data; + modalRef.componentInstance.parentName = this.series?.name; + modalRef.componentInstance.seriesId = this.series?.id; + } + + openEditSeriesModal() { + const modalRef = this.modalService.open(EditSeriesModalComponent, { scrollable: true, size: 'lg', windowClass: 'scrollable-modal' }); + modalRef.componentInstance.series = this.series; + modalRef.closed.subscribe((closeResult: {success: boolean, series: Series}) => { + window.scrollTo(0, 0); + if (closeResult.success) { + this.loadSeries(this.series.id); + } + }); + } + + async promptToReview() { + const shouldPrompt = this.isNullOrEmpty(this.series.userReview); + const config = new ConfirmConfig(); + config.header = 'Confirm'; + config.content = 'Do you want to write a review?'; + config.buttons.push({text: 'No', type: 'secondary'}); + config.buttons.push({text: 'Yes', type: 'primary'}); + if (shouldPrompt && await this.confirmService.confirm('Do you want to write a review?', config)) { + this.openReviewModal(); + } + } + + openReviewModal(force = false) { + const modalRef = this.modalService.open(ReviewSeriesModalComponent, { scrollable: true, size: 'lg' }); + modalRef.componentInstance.series = this.series; + modalRef.closed.subscribe((closeResult: {success: boolean, review: string, rating: number}) => { + if (closeResult.success && this.series !== undefined) { + this.series.userReview = closeResult.review; + this.series.userRating = closeResult.rating; + this.createHTML(); + } + }); + } + + preventClick(event: any) { + event.stopPropagation(); + event.preventDefault(); + } + + performAction(action: ActionItem) { + if (typeof action.callback === 'function') { + action.callback(action.action, this.series); + } + } + + downloadSeries() { + this.downloadService.downloadSeries(this.series); + } +} diff --git a/UI/Web/src/app/shared/_modals/card-details-modal/card-details-modal.component.html b/UI/Web/src/app/shared/_modals/card-details-modal/card-details-modal.component.html new file mode 100644 index 000000000..4accea74d --- /dev/null +++ b/UI/Web/src/app/shared/_modals/card-details-modal/card-details-modal.component.html @@ -0,0 +1,65 @@ +
+ + + +
+ + diff --git a/UI/Web/src/app/shared/_modals/card-details-modal/card-details-modal.component.scss b/UI/Web/src/app/shared/_modals/card-details-modal/card-details-modal.component.scss new file mode 100644 index 000000000..fc518f8b9 --- /dev/null +++ b/UI/Web/src/app/shared/_modals/card-details-modal/card-details-modal.component.scss @@ -0,0 +1,3 @@ +.scrollable-modal { + max-height: 600px; +} \ No newline at end of file diff --git a/UI/Web/src/app/shared/_modals/card-details-modal/card-details-modal.component.ts b/UI/Web/src/app/shared/_modals/card-details-modal/card-details-modal.component.ts new file mode 100644 index 000000000..4db350a9a --- /dev/null +++ b/UI/Web/src/app/shared/_modals/card-details-modal/card-details-modal.component.ts @@ -0,0 +1,66 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { Chapter } from 'src/app/_models/chapter'; +import { MangaFile } from 'src/app/_models/manga-file'; +import { MangaFormat } from 'src/app/_models/manga-format'; +import { Volume } from 'src/app/_models/volume'; +import { ImageService } from 'src/app/_services/image.service'; +import { NaturalSortService } from '../../_services/natural-sort.service'; +import { UtilityService } from '../../_services/utility.service'; + + + +@Component({ + selector: 'app-card-details-modal', + templateUrl: './card-details-modal.component.html', + styleUrls: ['./card-details-modal.component.scss'] +}) +export class CardDetailsModalComponent implements OnInit { + + @Input() parentName = ''; + @Input() seriesId: number = 0; + @Input() data!: any; // Volume | Chapter + isChapter = false; + chapters: Chapter[] = []; + seriesVolumes: any[] = []; + isLoadingVolumes = false; + formatKeys = Object.keys(MangaFormat); + + constructor(private modalService: NgbModal, public modal: NgbActiveModal, public utilityService: UtilityService, + public imageService: ImageService, public naturalSort: NaturalSortService) { } + + ngOnInit(): void { + this.isChapter = this.isObjectChapter(this.data); + + if (this.isChapter) { + this.chapters.push(this.data); + } else if (!this.isChapter) { + this.chapters.push(...this.data?.chapters); + } + this.chapters.sort(this.utilityService.sortChapters); + // Try to show an approximation of the reading order for files + var collator = new Intl.Collator(undefined, {numeric: true, sensitivity: 'base'}); + this.chapters.forEach((c: Chapter) => { + c.files.sort((a: MangaFile, b: MangaFile) => collator.compare(a.filePath, b.filePath)); + }); + } + + isObjectChapter(object: any): object is Chapter { + return ('files' in object); + } + + isObjectVolume(object: any): object is Volume { + return !('originalName' in object) && !('files' in object); + } + + close() { + this.modal.close(); + } + + formatChapterNumber(chapter: Chapter) { + if (chapter.number === '0') { + return '1'; + } + return chapter.number; + } +} diff --git a/UI/Web/src/app/shared/_services/dom-helper.service.ts b/UI/Web/src/app/shared/_services/dom-helper.service.ts new file mode 100644 index 000000000..0f0344b5f --- /dev/null +++ b/UI/Web/src/app/shared/_services/dom-helper.service.ts @@ -0,0 +1,200 @@ +import { ElementRef, Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class DomHelperService { + + constructor() {} + // from: https://stackoverflow.com/questions/40597658/equivalent-of-angular-equals-in-angular2#44649659 + deepEquals(x: any, y: any) { + if (x === y) { + return true; // if both x and y are null or undefined and exactly the same + } else if (!(x instanceof Object) || !(y instanceof Object)) { + return false; // if they are not strictly equal, they both need to be Objects + } else if (x.constructor !== y.constructor) { + // they must have the exact same prototype chain, the closest we can do is + // test their constructor. + return false; + } else { + for (const p in x) { + if (!x.hasOwnProperty(p)) { + continue; // other properties were tested using x.constructor === y.constructor + } + if (!y.hasOwnProperty(p)) { + return false; // allows to compare x[ p ] and y[ p ] when set to undefined + } + if (x[p] === y[p]) { + continue; // if they have the same strict value or identity then they are equal + } + if (typeof (x[p]) !== 'object') { + return false; // Numbers, Strings, Functions, Booleans must be strictly equal + } + if (!this.deepEquals(x[p], y[p])) { + return false; + } + } + for (const p in y) { + if (y.hasOwnProperty(p) && !x.hasOwnProperty(p)) { + return false; + } + } + return true; + } + } + + isHidden(node: ElementRef){ + const el = node.nativeElement?node.nativeElement:node; + const elemStyle = window.getComputedStyle(el); + + return el.style.display === 'none' || elemStyle.visibility === 'hidden' || el.hasAttribute('hidden') || elemStyle.display === 'none'; + } + + isTabable(node: ElementRef): boolean { + const el = node.nativeElement?node.nativeElement:node; + const tagName = el.tagName; + + if(this.isHidden(node)){ + return false; + } + // el.attribute:NamdedNodeMap + if (el.attributes.hasOwnProperty('tabindex')) { + return (parseInt(el.attributes.getNamedItem('tabindex'),10) >= 0); + } + if (tagName === 'A' || tagName === 'AREA' || tagName === 'BUTTON' || tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT') { + if (tagName === 'A' || tagName === 'AREA') { + return (el.attributes.getNamedItem('href') !== ''); + } + return !el.attributes.hasOwnProperty('disabled'); // TODO: check for cases when: disabled="true" and disabled="false" + } + return false; + } + + private isValidChild(child: any): boolean { // child:ElementRef.nativeElement + return child.nodeType == 1 && child.nodeName != 'SCRIPT' && child.nodeName != 'STYLE'; + } + + private hasValidParent(obj: any) { // obj:ElementRef.nativeElement + return (this.isValidChild(obj) && obj.parentElement.nodeName !== 'BODY'); + } + + private traverse(obj: any, fromTop: boolean): ElementRef | undefined | boolean { + // obj:ElementRef||ElementRef.nativeElement + var obj = obj? (obj.nativeElement?obj.nativeElement:obj) : document.getElementsByTagName('body')[0]; + if (this.isValidChild(obj) && this.isTabable(obj)) { + return obj; + } + // If object is hidden, skip it's children + if (this.isValidChild(obj) && this.isHidden(obj)) { + return undefined; + } + // If object is hidden, skip it's children + if (obj.classList && obj.classList.contains('ng-hide')) { // some nodes don't have classList?! + return false; + } + if (obj.hasChildNodes()) { + var child; + if (fromTop) { + child = obj.firstChild; + } else { + child = obj.lastChild; + } + while(child) { + var res = this.traverse(child, fromTop); + if(res){ + return res; + } + else{ + if (fromTop) { + child = child.nextSibling; + } else { + child = child.previousSibling; + } + } + } + } + else{ + return undefined; + } + } + previousElement(el: any, isFocusable: boolean): any { // ElementRef | undefined | boolean + + var elem = el.nativeElement ? el.nativeElement : el; + if (el.hasOwnProperty('length')) { + elem = el[0]; + } + + var parent = elem.parentElement; + var previousElem = undefined; + + if(isFocusable) { + if (this.hasValidParent(elem)) { + var siblings = parent.children; + if (siblings.length > 0) { + // Good practice to splice out the elem from siblings if there, saving some time. + // We allow for a quick check for jumping to parent first before removing. + if (siblings[0] === elem) { + // If we are looking at immidiate parent and elem is first child, we need to go higher + var e = this.previousElement(elem.parentNode, isFocusable); + if (this.isTabable(e)) { + return e; + } + } else { + // I need to filter myself and any nodes next to me from the siblings + var indexOfElem = Array.prototype.indexOf.call(siblings, elem); + const that = this; + siblings = Array.prototype.filter.call(siblings, function(item, itemIndex) { + if (!that.deepEquals(elem, item) && itemIndex < indexOfElem) { + return true; + } + }); + } + // We need to search backwards + for (var i = 0; i <= siblings.length-1; i++) {//for (var i = siblings.length-1; i >= 0; i--) { + var ret = this.traverse(siblings[i], false); + if (ret !== undefined) { + return ret; + } + } + + var e = this.previousElement(elem.parentNode, isFocusable); + if (this.isTabable(e)) { + return e; + } + } + } + } else { + var siblings = parent.children; + if (siblings.length > 1) { + // Since indexOf is on Array.prototype and parent.children is a NodeList, we have to use call() + var index = Array.prototype.indexOf.call(siblings, elem); + previousElem = siblings[index-1]; + } + } + return previousElem; + }; + lastTabableElement(el: any) { + /* This will return the first tabable element from the parent el */ + var elem = el.nativeElement?el.nativeElement:el; + if (el.hasOwnProperty('length')) { + elem = el[0]; + } + + return this.traverse(elem, false); + }; + + firstTabableElement(el: any) { + /* This will return the first tabable element from the parent el */ + var elem = el.nativeElement ? el.nativeElement : el; + if (el.hasOwnProperty('length')) { + elem = el[0]; + } + + return this.traverse(elem, true); + }; + + isInDOM(obj: Node) { + return document.documentElement.contains(obj); + } + +} diff --git a/UI/Web/src/app/shared/_services/download.service.ts b/UI/Web/src/app/shared/_services/download.service.ts new file mode 100644 index 000000000..29701597d --- /dev/null +++ b/UI/Web/src/app/shared/_services/download.service.ts @@ -0,0 +1,124 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Series } from 'src/app/_models/series'; +import { environment } from 'src/environments/environment'; +import { ConfirmService } from '../confirm.service'; +import { saveAs } from 'file-saver'; +import { Chapter } from 'src/app/_models/chapter'; +import { Volume } from 'src/app/_models/volume'; +import { ToastrService } from 'ngx-toastr'; + +@Injectable({ + providedIn: 'root' +}) +export class DownloadService { + + private baseUrl = environment.apiUrl; + /** + * Size in bytes in which to inform the user for confirmation before download starts. Defaults to 100 MB. + */ + public SIZE_WARNING = 104_857_600; + + constructor(private httpClient: HttpClient, private confirmService: ConfirmService, private toastr: ToastrService) { } + + + private downloadSeriesSize(seriesId: number) { + return this.httpClient.get(this.baseUrl + 'download/series-size?seriesId=' + seriesId); + } + + private downloadVolumeSize(volumeId: number) { + return this.httpClient.get(this.baseUrl + 'download/volume-size?volumeId=' + volumeId); + } + + private downloadChapterSize(chapterId: number) { + return this.httpClient.get(this.baseUrl + 'download/chapter-size?chapterId=' + chapterId); + } + + private downloadSeriesAPI(seriesId: number) { + return this.httpClient.get(this.baseUrl + 'download/series?seriesId=' + seriesId, {responseType: 'blob' as 'text'}); + } + + private downloadVolumeAPI(volumeId: number) { + return this.httpClient.get(this.baseUrl + 'download/volume?volumeId=' + volumeId, {responseType: 'blob' as 'text'}); + } + + private downloadChapterAPI(chapterId: number) { + return this.httpClient.get(this.baseUrl + 'download/chapter?chapterId=' + chapterId, {responseType: 'blob' as 'text'}); + } + + downloadSeries(series: Series) { + this.downloadSeriesSize(series.id).subscribe(async size => { + if (size >= this.SIZE_WARNING && !await this.confirmService.confirm('The series is ' + this.humanFileSize(size) + '. Are you sure you want to continue?')) { + return; + } + this.downloadSeriesAPI(series.id).subscribe(res => { + const filename = series.name + '.zip'; + this.preformSave(res, filename); + }); + }); + } + + downloadChapter(chapter: Chapter, seriesName: string) { + this.downloadChapterSize(chapter.id).subscribe(async size => { + if (size >= this.SIZE_WARNING && !await this.confirmService.confirm('The chapter is ' + this.humanFileSize(size) + '. Are you sure you want to continue?')) { + return; + } + this.downloadChapterAPI(chapter.id).subscribe(res => { + const filename = seriesName + ' - Chapter ' + chapter.number + '.zip'; + this.preformSave(res, filename); + }); + }); + } + + downloadVolume(volume: Volume, seriesName: string) { + this.downloadVolumeSize(volume.id).subscribe(async size => { + if (size >= this.SIZE_WARNING && !await this.confirmService.confirm('The chapter is ' + this.humanFileSize(size) + '. Are you sure you want to continue?')) { + return; + } + this.downloadVolumeAPI(volume.id).subscribe(res => { + const filename = seriesName + ' - Volume ' + volume.name + '.zip'; + this.preformSave(res, filename); + }); + }); + } + + private preformSave(res: string, filename: string) { + const blob = new Blob([res], {type: 'text/plain;charset=utf-8'}); + saveAs(blob, filename); + this.toastr.success('File downloaded successfully: ' + filename); + } + + /** + * Format bytes as human-readable text. + * + * @param bytes Number of bytes. + * @param si True to use metric (SI) units, aka powers of 1000. False to use + * binary (IEC), aka powers of 1024. + * @param dp Number of decimal places to display. + * + * @return Formatted string. + * + * Credit: https://stackoverflow.com/questions/10420352/converting-file-size-in-bytes-to-human-readable-string + */ + private humanFileSize(bytes: number, si=true, dp=0) { + const thresh = si ? 1000 : 1024; + + if (Math.abs(bytes) < thresh) { + return bytes + ' B'; + } + + const units = si + ? ['kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] + : ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB']; + let u = -1; + const r = 10**dp; + + do { + bytes /= thresh; + ++u; + } while (Math.round(Math.abs(bytes) * r) / r >= thresh && u < units.length - 1); + + + return bytes.toFixed(dp) + ' ' + units[u]; + } +} diff --git a/UI/Web/src/app/shared/_services/natural-sort.service.ts b/UI/Web/src/app/shared/_services/natural-sort.service.ts new file mode 100644 index 000000000..4c9ddd180 --- /dev/null +++ b/UI/Web/src/app/shared/_services/natural-sort.service.ts @@ -0,0 +1,69 @@ +import { Injectable, OnDestroy } from '@angular/core'; + +/** + * Soley repsonsible for performing a "natural" sort. This is the UI counterpart to the BE NaturalSortComparer. + */ +@Injectable({ + providedIn: 'root', +}) +export class NaturalSortService implements OnDestroy { + + private _table: Map = new Map(); + + ngOnDestroy(): void { + this._table = new Map(); + } + + private partCompare(left: string, right: string) { + + let x = parseInt(left, 10); + if (typeof x !== 'number') { + return left > right; + } + + let y = parseInt(right, 10); + if (typeof y !== 'number') { + return left > right; + } + + if (x === null || x === undefined) { + return 1; + } + if (y === null || y === undefined) { + return -1; + } + + return x > y; + } + + compare(x: string, y: string, isAscending: boolean) { + if (x == y) return 0; + + let x1 = this._table.get(x); + if (x1 === undefined) { + x1 = x.split(/([0-9]+)/); + this._table.set(x, x1); + } + + let y1 = this._table.get(y); + if (y1 === undefined) { + y1 = y.split(/([0-9]+)/); + this._table.set(y, y1); + } + + let returnVal = 0; + for (var i = 0; i < x1.length && i < y1.length; i++) { + if (x1[i] == y1[i]) continue; + returnVal = (this.partCompare(x1[i], y1[i]) ? 1 : 0); + return isAscending ? returnVal : -returnVal; + } + + if (y1.length > x1.length) { + returnVal = 1; + } else if (x1.length > y1.length) { + returnVal = -1; + } + + return isAscending ? returnVal : -returnVal; + } +} diff --git a/UI/Web/src/app/shared/_services/utility.service.ts b/UI/Web/src/app/shared/_services/utility.service.ts new file mode 100644 index 000000000..bf6eefe9c --- /dev/null +++ b/UI/Web/src/app/shared/_services/utility.service.ts @@ -0,0 +1,58 @@ +import { Injectable } from '@angular/core'; +import { Chapter } from 'src/app/_models/chapter'; +import { MangaFormat } from 'src/app/_models/manga-format'; +import { Volume } from 'src/app/_models/volume'; + +export enum KEY_CODES { + RIGHT_ARROW = 'ArrowRight', + LEFT_ARROW = 'ArrowLeft', + DOWN_ARROW = 'ArrowDown', + UP_ARROW = 'ArrowUp', + ESC_KEY = 'Escape', + SPACE = ' ', + ENTER = 'Enter', + G = 'g', + BACKSPACE = 'Backspace', + DELETE = 'Delete' +} + +@Injectable({ + providedIn: 'root' +}) +export class UtilityService { + + mangaFormatKeys: string[] = []; + + constructor() { } + + sortVolumes = (a: Volume, b: Volume) => { + if (a === b) { return 0; } + else if (a.number === 0) { return 1; } + else if (b.number === 0) { return -1; } + else { + return a.number < b.number ? -1 : 1; + } + } + + sortChapters = (a: Chapter, b: Chapter) => { + return parseFloat(a.number) - parseFloat(b.number); + } + + mangaFormatToText(format: MangaFormat): string { + if (this.mangaFormatKeys === undefined || this.mangaFormatKeys.length === 0) { + this.mangaFormatKeys = Object.keys(MangaFormat); + } + + return this.mangaFormatKeys.filter(item => MangaFormat[format] === item)[0]; + } + + cleanSpecialTitle(title: string) { + let cleaned = title.replace(/_/g, ' ').replace(/SP\d+/g, '').trim(); + cleaned = cleaned.substring(0, cleaned.lastIndexOf('.')); + if (cleaned.trim() === '') { + return title; + } + return cleaned; + } + +} diff --git a/UI/Web/src/app/shared/a11y-click.directive.ts b/UI/Web/src/app/shared/a11y-click.directive.ts new file mode 100644 index 000000000..c6ab0351d --- /dev/null +++ b/UI/Web/src/app/shared/a11y-click.directive.ts @@ -0,0 +1,42 @@ +import { Directive, Input, HostListener, OnInit, ElementRef, Inject } from '@angular/core'; + +@Directive({ + selector: '[a11y-click]' +}) +export class A11yClickDirective { + @Input('a11y-click') keyCodes!: string; + keyCodeArray!: string[]; + + constructor(@Inject(ElementRef) private element : ElementRef){} + + ngOnInit(){ + if(this.keyCodes) { + this.keyCodeArray = this.keyCodes.split(','); + } + } + + @HostListener('keydown', ['$event']) + onEvent(event: any) { + var keyCodeCondition = function (that: any) { + var flag = false; + if (!(event.keyCode)) { + if (event.which) { + event.keyCode = event.which; + } else if (event.charCode) { + event.keyCode = event.charCode; + } + } + if ((event.keyCode && that.keyCodeArray.indexOf(event.keyCode.toString()) > -1)) { + flag = true; + } + return flag; + }; + const that = this; + if (this.keyCodeArray.length > 0 && keyCodeCondition(that)) { + this.element.nativeElement.click(); + event.preventDefault(); + } + + } + +} diff --git a/UI/Web/src/app/shared/card-detail-layout/card-detail-layout.component.html b/UI/Web/src/app/shared/card-detail-layout/card-detail-layout.component.html new file mode 100644 index 000000000..0630fa4da --- /dev/null +++ b/UI/Web/src/app/shared/card-detail-layout/card-detail-layout.component.html @@ -0,0 +1,64 @@ +
+

+ +  {{header}}

+ + + +
+
+ +
+ +

+ There is no data +

+
+ + +
+ + +
+ + + +
  • +
    + + + + of {{pagination.totalPages}} +
    +
  • +
    + +
    +
    +
    + diff --git a/UI/Web/src/app/shared/card-detail-layout/card-detail-layout.component.scss b/UI/Web/src/app/shared/card-detail-layout/card-detail-layout.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/UI/Web/src/app/shared/card-detail-layout/card-detail-layout.component.ts b/UI/Web/src/app/shared/card-detail-layout/card-detail-layout.component.ts new file mode 100644 index 000000000..7f283e82a --- /dev/null +++ b/UI/Web/src/app/shared/card-detail-layout/card-detail-layout.component.ts @@ -0,0 +1,50 @@ +import { Component, ContentChild, EventEmitter, Input, OnInit, Output, TemplateRef } from '@angular/core'; +import { Pagination } from 'src/app/_models/pagination'; +import { ActionItem } from 'src/app/_services/action-factory.service'; + +const FILTER_PAG_REGEX = /[^0-9]/g; + +@Component({ + selector: 'app-card-detail-layout', + templateUrl: './card-detail-layout.component.html', + styleUrls: ['./card-detail-layout.component.scss'] +}) +export class CardDetailLayoutComponent implements OnInit { + + @Input() header: string = ''; + @Input() isLoading: boolean = false; + @Input() items: any[] = []; + @Input() pagination!: Pagination; + @Input() actions: ActionItem[] = []; + @Input() trackByIdentity!: (index: number, item: any) => string; + @Output() itemClicked: EventEmitter = new EventEmitter(); + @Output() pageChange: EventEmitter = new EventEmitter(); + + @ContentChild('cardItem') itemTemplate!: TemplateRef; + + constructor() { } + + ngOnInit(): void { + this.trackByIdentity = (index: number, item: any) => `${this.header}_${this.pagination?.currentPage}_${index}`; + } + + onPageChange(page: number) { + this.pageChange.emit(this.pagination); + } + + selectPageStr(page: string) { + this.pagination.currentPage = parseInt(page, 10) || 1; + this.onPageChange(this.pagination.currentPage); + } + + formatInput(input: HTMLInputElement) { + input.value = input.value.replace(FILTER_PAG_REGEX, ''); + } + + performAction(action: ActionItem) { + if (typeof action.callback === 'function') { + action.callback(action.action, undefined); + } + } + +} diff --git a/UI/Web/src/app/shared/card-item/card-actionables/card-actionables.component.html b/UI/Web/src/app/shared/card-item/card-actionables/card-actionables.component.html new file mode 100644 index 000000000..8f3057ae6 --- /dev/null +++ b/UI/Web/src/app/shared/card-item/card-actionables/card-actionables.component.html @@ -0,0 +1,8 @@ + +
    + +
    + +
    +
    +
    \ No newline at end of file diff --git a/UI/Web/src/app/shared/card-item/card-actionables/card-actionables.component.scss b/UI/Web/src/app/shared/card-item/card-actionables/card-actionables.component.scss new file mode 100644 index 000000000..62a635f5c --- /dev/null +++ b/UI/Web/src/app/shared/card-item/card-actionables/card-actionables.component.scss @@ -0,0 +1,3 @@ +.dropdown-toggle:after { + content: none !important; +} \ No newline at end of file diff --git a/UI/Web/src/app/shared/card-item/card-actionables/card-actionables.component.ts b/UI/Web/src/app/shared/card-item/card-actionables/card-actionables.component.ts new file mode 100644 index 000000000..37434ff96 --- /dev/null +++ b/UI/Web/src/app/shared/card-item/card-actionables/card-actionables.component.ts @@ -0,0 +1,36 @@ +import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; +import { Action, ActionItem } from 'src/app/_services/action-factory.service'; + +@Component({ + selector: 'app-card-actionables', + templateUrl: './card-actionables.component.html', + styleUrls: ['./card-actionables.component.scss'] +}) +export class CardActionablesComponent implements OnInit { + + @Input() iconClass = 'fa-ellipsis-v'; + @Input() btnClass = ''; + @Input() actions: ActionItem[] = []; + @Input() labelBy = 'card'; + @Input() disabled: boolean = false; + @Output() actionHandler = new EventEmitter>(); + + constructor() { } + + ngOnInit(): void { + } + + preventClick(event: any) { + event.stopPropagation(); + event.preventDefault(); + } + + performAction(event: any, action: ActionItem) { + this.preventClick(event); + + if (typeof action.callback === 'function') { + this.actionHandler.emit(action); + } + } + +} diff --git a/UI/Web/src/app/shared/card-item/card-item.component.html b/UI/Web/src/app/shared/card-item/card-item.component.html new file mode 100644 index 000000000..0fa307f33 --- /dev/null +++ b/UI/Web/src/app/shared/card-item/card-item.component.html @@ -0,0 +1,29 @@ +
    +
    + title + title +
    +

    +
    +
    + Cannot Read Archive +
    + +
    +
    +
    +
    + + + + + {{title}} + (promoted) + + + + +
    + {{libraryName | titlecase}} +
    +
    \ No newline at end of file diff --git a/UI/Web/src/app/shared/card-item/card-item.component.scss b/UI/Web/src/app/shared/card-item/card-item.component.scss new file mode 100644 index 000000000..6a8877400 --- /dev/null +++ b/UI/Web/src/app/shared/card-item/card-item.component.scss @@ -0,0 +1,99 @@ +@import '../../../theme/colors'; + +$triangle-size: 40px; +$image-height: 230px; +$image-width: 160px; + +.error-banner { + width: 160px; + height: 18px; + background-color: $error-color; + font-size: 12px; + color: white; + text-transform: uppercase; + text-align: center; + + position: absolute; + top: 0px; + right: 0px; +} + +.card { + margin: 5px; + max-width: $image-width; + cursor: pointer; + padding-left: 0px; + padding-right: 0px; + box-sizing: border-box; +} + +.card-title { + font-size: 13px; + width: 130px; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + display: block; + margin-top: 2px; + margin-bottom: 0px; +} + +.card-img-top { + height: $image-height; +} + +.progress-banner { + width: 160px; + height: 5px; + + .progress { + color: $primary-color; + background-color: transparent; + } +} + +.not-read-badge { + position: absolute; + top: 0px; + right: 0px; + width: 0; + height: 0; + border-style: solid; + border-width: 0 $triangle-size $triangle-size 0; + border-color: transparent $primary-color transparent transparent; +} + +.overlay { + height: $image-height; + &:hover { + //background-color: rgba(0, 0, 0, 0.4); + visibility: visible; + + .overlay-item { + visibility: visible; + } + } + + .overlay-item { + visibility: hidden; + } + + z-index: 10; +} + +.card-actions { + position: absolute; + top: 228px; + right: 5px; + width: 20px; +} + +.card-body { + padding: 5px !important; +} + +.library { + font-size: 13px; + text-decoration: none; + margin-top: 0px; +} diff --git a/UI/Web/src/app/shared/card-item/card-item.component.ts b/UI/Web/src/app/shared/card-item/card-item.component.ts new file mode 100644 index 000000000..212fa5078 --- /dev/null +++ b/UI/Web/src/app/shared/card-item/card-item.component.ts @@ -0,0 +1,79 @@ +import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core'; +import { Subject } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; +import { Chapter } from 'src/app/_models/chapter'; +import { CollectionTag } from 'src/app/_models/collection-tag'; +import { Series } from 'src/app/_models/series'; +import { Volume } from 'src/app/_models/volume'; +import { ActionItem } from 'src/app/_services/action-factory.service'; +import { ImageService } from 'src/app/_services/image.service'; +import { LibraryService } from 'src/app/_services/library.service'; + +@Component({ + selector: 'app-card-item', + templateUrl: './card-item.component.html', + styleUrls: ['./card-item.component.scss'] +}) +export class CardItemComponent implements OnInit, OnDestroy { + + @Input() imageUrl = ''; + @Input() title = ''; + @Input() actions: ActionItem[] = []; + @Input() read = 0; // Pages read + @Input() total = 0; // Total Pages + @Input() supressLibraryLink = false; + @Input() entity!: Series | Volume | Chapter | CollectionTag; // This is the entity we are representing. It will be returned if an action is executed. + @Output() clicked = new EventEmitter(); + + libraryName: string | undefined = undefined; // Library name item belongs to + libraryId: number | undefined = undefined; + supressArchiveWarning: boolean = false; // This will supress the cannot read archive warning when total pages is 0 + + private readonly onDestroy = new Subject(); + + constructor(public imageSerivce: ImageService, private libraryService: LibraryService) { + } + + ngOnInit(): void { + if (this.entity.hasOwnProperty('promoted') && this.entity.hasOwnProperty('title')) { + this.supressArchiveWarning = true; + } + + if (this.supressLibraryLink === false) { + this.libraryService.getLibraryNames().pipe(takeUntil(this.onDestroy)).subscribe(names => { + if (this.entity !== undefined && this.entity.hasOwnProperty('libraryId')) { + this.libraryId = (this.entity as Series).libraryId; + this.libraryName = names[this.libraryId]; + } + }); + } + } + + ngOnDestroy() { + this.onDestroy.next(); + } + + handleClick() { + this.clicked.emit(this.title); + } + + isNullOrEmpty(val: string) { + return val === null || val === undefined || val === ''; + } + + preventClick(event: any) { + event.stopPropagation(); + event.preventDefault(); + } + + performAction(action: ActionItem) { + if (typeof action.callback === 'function') { + action.callback(action.action, this.entity); + } + } + + isPromoted() { + const tag = this.entity as CollectionTag; + return tag.hasOwnProperty('promoted') && tag.promoted; + } +} diff --git a/UI/Web/src/app/shared/confirm-dialog/_models/confirm-button.ts b/UI/Web/src/app/shared/confirm-dialog/_models/confirm-button.ts new file mode 100644 index 000000000..c747aeac3 --- /dev/null +++ b/UI/Web/src/app/shared/confirm-dialog/_models/confirm-button.ts @@ -0,0 +1,4 @@ +export interface ConfirmButton { + text: string; + type: string; +} \ No newline at end of file diff --git a/UI/Web/src/app/shared/confirm-dialog/_models/confirm-config.ts b/UI/Web/src/app/shared/confirm-dialog/_models/confirm-config.ts new file mode 100644 index 000000000..fe8d989af --- /dev/null +++ b/UI/Web/src/app/shared/confirm-dialog/_models/confirm-config.ts @@ -0,0 +1,8 @@ +import { ConfirmButton } from './confirm-button'; + +export class ConfirmConfig { + _type: string = 'confirm'; // internal only: confirm or alert (todo: use enum) + header: string = 'Confirm'; + content: string = ''; + buttons: Array = []; +} diff --git a/UI/Web/src/app/shared/confirm-dialog/confirm-dialog.component.html b/UI/Web/src/app/shared/confirm-dialog/confirm-dialog.component.html new file mode 100644 index 000000000..7f390dc9e --- /dev/null +++ b/UI/Web/src/app/shared/confirm-dialog/confirm-dialog.component.html @@ -0,0 +1,16 @@ + + + + + diff --git a/UI/Web/src/app/shared/confirm-dialog/confirm-dialog.component.scss b/UI/Web/src/app/shared/confirm-dialog/confirm-dialog.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/UI/Web/src/app/shared/confirm-dialog/confirm-dialog.component.ts b/UI/Web/src/app/shared/confirm-dialog/confirm-dialog.component.ts new file mode 100644 index 000000000..77791b353 --- /dev/null +++ b/UI/Web/src/app/shared/confirm-dialog/confirm-dialog.component.ts @@ -0,0 +1,42 @@ +import { Component, OnInit } from '@angular/core'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { ConfirmButton } from './_models/confirm-button'; +import { ConfirmConfig } from './_models/confirm-config'; + +@Component({ + selector: 'app-confirm-dialog', + templateUrl: './confirm-dialog.component.html', + styleUrls: ['./confirm-dialog.component.scss'] +}) +export class ConfirmDialogComponent implements OnInit { + + config!: ConfirmConfig; + + constructor(public modal: NgbActiveModal) {} + + ngOnInit(): void { + if (this.config) { + this.config.buttons.sort(this._button_sort); + } + } + + private _button_sort(x: ConfirmButton, y: ConfirmButton) { + const xIsSecondary = x.type === 'secondary'; + const yIsSecondary = y.type === 'secondary'; + if (xIsSecondary && !yIsSecondary) { + return -1; + } else if (!xIsSecondary && yIsSecondary) { + return 1; + } + return 0; + } + + clickButton(button: ConfirmButton) { + this.modal.close(button.type === 'primary'); + } + + close() { + this.modal.close(false); + } + +} diff --git a/UI/Web/src/app/shared/confirm.service.ts b/UI/Web/src/app/shared/confirm.service.ts new file mode 100644 index 000000000..c1ef77393 --- /dev/null +++ b/UI/Web/src/app/shared/confirm.service.ts @@ -0,0 +1,65 @@ +import { Injectable } from '@angular/core'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component'; +import { ConfirmConfig } from './confirm-dialog/_models/confirm-config'; + +@Injectable({ + providedIn: 'root' +}) +export class ConfirmService { + + defaultConfirm = new ConfirmConfig(); + defaultAlert = new ConfirmConfig(); + + constructor(private modalService: NgbModal) { + this.defaultConfirm.buttons.push({text: 'Cancel', type: 'secondary'}); + this.defaultConfirm.buttons.push({text: 'Confirm', type: 'primary'}); + + this.defaultAlert._type = 'alert'; + this.defaultAlert.header = 'Alert'; + this.defaultAlert.buttons.push({text: 'Ok', type: 'primary'}); + + } + + public async confirm(content?: string, config?: ConfirmConfig): Promise { + + return new Promise((resolve, reject) => { + if (content === undefined && config === undefined) { + console.error('Confirm must have either text or a config object passed'); + return reject(false); + } + + if (content !== undefined && config === undefined) { + config = this.defaultConfirm; + config.content = content; + } + + const modalRef = this.modalService.open(ConfirmDialogComponent); + modalRef.componentInstance.config = config; + modalRef.closed.subscribe(result => { + return resolve(result); + }); + }); + + } + + public async alert(content?: string, config?: ConfirmConfig): Promise { + return new Promise((resolve, reject) => { + if (content === undefined && config === undefined) { + console.error('Alert must have either text or a config object passed'); + return reject(false); + } + + if (content !== undefined && config === undefined) { + config = this.defaultConfirm; + config.content = content; + } + + const modalRef = this.modalService.open(ConfirmDialogComponent); + modalRef.componentInstance.config = config; + modalRef.closed.subscribe(result => { + return resolve(result); + }); + }) + } +} diff --git a/UI/Web/src/app/shared/data-structures/circular-array.ts b/UI/Web/src/app/shared/data-structures/circular-array.ts new file mode 100644 index 000000000..577312ac4 --- /dev/null +++ b/UI/Web/src/app/shared/data-structures/circular-array.ts @@ -0,0 +1,99 @@ +/** + * An array that loops. [0, 1] and call next 3 times, element 0 will be the current() + */ +export class CircularArray { + arr: T[]; + currentIndex: number; + + constructor(arr: T[], startIndex: number) { + this.arr = arr; + this.currentIndex = startIndex || 0; + } + + /** + * + * @returns element in array ahead of current index + */ + next() { + const i = this.currentIndex; + const arr = this.arr; + this.currentIndex = i < arr.length - 1 ? i + 1 : 0; + return this.current(); + } + + /** + * + * @returns element in array behind the current index + */ + prev() { + const i = this.currentIndex; + const arr = this.arr; + this.currentIndex = i > 0 ? i - 1 : arr.length - 1; + return this.current(); + } + + /** + * + * @returns Current element + */ + current() { + return this.arr[this.currentIndex]; + } + + /** + * Peek the current element + * @param offset Optional offset to look ahead + * @returns + */ + peek(offset: number = 0) { + const i = this.currentIndex + 1 + offset; + const arr = this.arr; + const peekIndex = i < arr.length - 1 ? i + 1 : 0; + return this.arr[peekIndex]; + } + + /** + * + * @returns Total size of internal array + */ + size() { + return this.arr.length; + } + + /** + * Applies a func against elements up until index. If index is 1 and size is 3, will apply on [2, 3, 0] + * @param func + * @param index + */ + applyUntil(func: (item: T, index: number) => void, index?: number) { + index = index || this.currentIndex; + for (let offset = 1; offset < this.size(); offset++) { + const i = this.currentIndex + offset; + const arr = this.arr; + const peekIndex = i < arr.length ? i : 0; + + if (peekIndex === index) { + break; + } + + func(this.arr[peekIndex], peekIndex); + } + + } + + /** + * Applies a func against elements for X times. If limit is 1, size is 3, and index is 2. It will apply on [3] + * @param func + * @param limit + */ + applyFor(func: (item: T, index: number) => void, limit: number) { + for (let offset = 1; offset < limit; offset++) { + const i = this.currentIndex + offset; + const peekIndex = i < this.arr.length ? i : Math.abs(this.arr.length - i); + func(this.arr[peekIndex], peekIndex); + } + + } + + + } \ No newline at end of file diff --git a/UI/Web/src/app/shared/data-structures/queue.ts b/UI/Web/src/app/shared/data-structures/queue.ts new file mode 100644 index 000000000..5a298d3b6 --- /dev/null +++ b/UI/Web/src/app/shared/data-structures/queue.ts @@ -0,0 +1,27 @@ +export class Queue { + elements: T[]; + + constructor() { + this.elements = []; + } + + enqueue(data: T) { + this.elements.push(data); + } + + dequeue() { + return this.elements.shift(); + } + + isEmpty() { + return this.elements.length === 0; + } + + peek() { + return !this.isEmpty() ? this.elements[0] : undefined; + } + + length = () => { + return this.elements.length; + } + } \ No newline at end of file diff --git a/UI/Web/src/app/shared/data-structures/stack.ts b/UI/Web/src/app/shared/data-structures/stack.ts new file mode 100644 index 000000000..e2e17e280 --- /dev/null +++ b/UI/Web/src/app/shared/data-structures/stack.ts @@ -0,0 +1,29 @@ +export class Stack { + items: T[]; + + constructor() { + this.items = []; + } + + isEmpty() { + return this.items.length === 0; + } + + peek() { + if (!this.isEmpty()) { + return this.items[this.items.length - 1]; + } + return undefined; + } + + pop() { + if (this.isEmpty()) { + return undefined; + } + return this.items.pop(); + } + + push(item: T) { + this.items.push(item); + } + } \ No newline at end of file diff --git a/UI/Web/src/app/shared/drawer/drawer.component.html b/UI/Web/src/app/shared/drawer/drawer.component.html new file mode 100644 index 000000000..b02b89fdf --- /dev/null +++ b/UI/Web/src/app/shared/drawer/drawer.component.html @@ -0,0 +1,15 @@ +
    +
    + +
    +
    + +
    +
    \ No newline at end of file diff --git a/UI/Web/src/app/shared/drawer/drawer.component.scss b/UI/Web/src/app/shared/drawer/drawer.component.scss new file mode 100644 index 000000000..f2b1476f3 --- /dev/null +++ b/UI/Web/src/app/shared/drawer/drawer.component.scss @@ -0,0 +1,56 @@ +:host { + --drawer-height: 100vh; + --drawer-width: 400px; + --drawer-top-offset: 0px; + --drawer-background-color: '#fff'; + } + + .drawer-container { + position: absolute; + top: var(--drawer-top-offset); + right: 0; + width: var(--drawer-width); + height: 100vh; + background: var(--drawer-background-color); + transition: all 300ms; + box-shadow: -3px 0px 6px 1px #00000026; + padding: 10px 10px; + z-index: 1021; + overflow: auto; + -webkit-overflow-scrolling: touch; + + &.position-right { + right: calc(-1 * var(--drawer-width)); + &.is-open { + right: 0; + } + } + &.position-left { + left: calc(-1 * var(--drawer-width)); + &.is-open { + left: 0; + } + } + + &.position-bottom { + //top: calc(-1 * var(--drawer-height)); + top: 100vh; + height: 0px; + &.is-open { + //bottom: 0; + top: 100vh; + height: var(--drawer-height); + } + } + + &.position-top { + //bottom: calc(-1 * var(--drawer-height)); + top: 0px; + height: 0px; + &.is-open { + //bottom: 0; + top: 0px; + height: var(--drawer-height); + } + } + } diff --git a/UI/Web/src/app/shared/drawer/drawer.component.ts b/UI/Web/src/app/shared/drawer/drawer.component.ts new file mode 100644 index 000000000..f83e95383 --- /dev/null +++ b/UI/Web/src/app/shared/drawer/drawer.component.ts @@ -0,0 +1,31 @@ +import { Component, EventEmitter, Input, Output } from '@angular/core'; + +export class DrawerOptions { + /** + * Pixels to offset from the top of the screen. Only applies to postion left/right + */ + topOffset: number = 0; +} + +@Component({ + selector: 'app-drawer', + templateUrl: './drawer.component.html', + styleUrls: ['./drawer.component.scss'], + exportAs: "drawer" +}) +export class DrawerComponent { + + @Input() isOpen = false; + @Input() width: number = 400; + /** + * Side of the screen the drawer should animate from + */ + @Input() position: 'left' | 'right' | 'bottom' = 'left'; + @Input() options: Partial = new DrawerOptions(); + @Output() drawerClosed = new EventEmitter(); + + + close() { + this.drawerClosed.emit(); + } +} diff --git a/UI/Web/src/app/shared/library-card/library-card.component.html b/UI/Web/src/app/shared/library-card/library-card.component.html new file mode 100644 index 000000000..29d88652e --- /dev/null +++ b/UI/Web/src/app/shared/library-card/library-card.component.html @@ -0,0 +1,15 @@ + +
    +
    + +
    + +
    +
    +
    + + {{data.name}} + +
    +
    +
    \ No newline at end of file diff --git a/UI/Web/src/app/shared/library-card/library-card.component.scss b/UI/Web/src/app/shared/library-card/library-card.component.scss new file mode 100644 index 000000000..3ece78d0f --- /dev/null +++ b/UI/Web/src/app/shared/library-card/library-card.component.scss @@ -0,0 +1,58 @@ +$primary-color: #cc7b19; + +.card { + margin: 10px; + max-width: 160px; + cursor: pointer; +} + +.card-title { + margin-top: 5px; + line-height: 20px; + font-size: 13px; + text-overflow: ellipsis; + white-space: normal; + max-width: 150px; + height: 52px; + padding-top: 10px; +} + +.card-img-top { + height: 160px; + margin-top: 40% !important; + margin: auto; + font-size: 52px; + +} + +.overlay { + height: 160px; + &:hover { + background-color: rgba(0, 0, 0, 0.4); + visibility: visible; + + .overlay-item { + visibility: visible; + } + } + + .overlay-item { + visibility: hidden; + } + + z-index: 10; +} + +.card-actions { + position: absolute; + top: 125px; + right: -5px; +} + +.card-body { + padding: 5px !important; +} + +.dropdown-toggle:after { + content: none !important; +} diff --git a/UI/Web/src/app/shared/library-card/library-card.component.ts b/UI/Web/src/app/shared/library-card/library-card.component.ts new file mode 100644 index 000000000..d0a280f53 --- /dev/null +++ b/UI/Web/src/app/shared/library-card/library-card.component.ts @@ -0,0 +1,77 @@ +import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core'; +import { Router } from '@angular/router'; +import { take } from 'rxjs/operators'; +import { Library } from 'src/app/_models/library'; +import { AccountService } from 'src/app/_services/account.service'; +import { Action, ActionFactoryService, ActionItem } from 'src/app/_services/action-factory.service'; +import { ActionService } from 'src/app/_services/action.service'; + +// Represents a library type card. +@Component({ + selector: 'app-library-card', + templateUrl: './library-card.component.html', + styleUrls: ['./library-card.component.scss'] +}) +export class LibraryCardComponent implements OnInit, OnChanges { + @Input() data!: Library; + @Output() clicked = new EventEmitter(); + + isAdmin = false; + actions: ActionItem[] = []; + icon = 'fa-book-open'; + + constructor(private accountService: AccountService, private router: Router, + private actionFactoryService: ActionFactoryService, private actionService: ActionService) { + this.accountService.currentUser$.pipe(take(1)).subscribe(user => { + if (user) { + this.isAdmin = this.accountService.hasAdminRole(user); + } + }); + } + + ngOnInit(): void { + } + + ngOnChanges(changes: any) { + if (this.data) { + if (this.data.type === 0 || this.data.type === 1) { + this.icon = 'fa-book-open'; + } else { + this.icon = 'fa-book'; + } + + this.actions = this.actionFactoryService.getLibraryActions(this.handleAction.bind(this)); + } + } + + handleAction(action: Action, library: Library) { + switch (action) { + case(Action.ScanLibrary): + this.actionService.scanLibrary(library); + break; + case(Action.RefreshMetadata): + this.actionService.refreshMetadata(library); + break; + default: + break; + } + } + + + performAction(action: ActionItem) { + if (typeof action.callback === 'function') { + action.callback(action.action, this.data); + } + } + + handleClick() { + this.clicked.emit(this.data); + this.router.navigate(['library', this.data?.id]); + } + + preventClick(event: any) { + event.stopPropagation(); + event.preventDefault(); + } + +} diff --git a/UI/Web/src/app/shared/read-more/read-more.component.html b/UI/Web/src/app/shared/read-more/read-more.component.html new file mode 100644 index 000000000..1126973a0 --- /dev/null +++ b/UI/Web/src/app/shared/read-more/read-more.component.html @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/UI/Web/src/app/shared/read-more/read-more.component.scss b/UI/Web/src/app/shared/read-more/read-more.component.scss new file mode 100644 index 000000000..ec1ed15b0 --- /dev/null +++ b/UI/Web/src/app/shared/read-more/read-more.component.scss @@ -0,0 +1,6 @@ +.read-more-link { + font-weight: bold; + text-decoration: none; + color: black; + cursor: pointer; +} \ No newline at end of file diff --git a/UI/Web/src/app/shared/read-more/read-more.component.ts b/UI/Web/src/app/shared/read-more/read-more.component.ts new file mode 100644 index 000000000..7bd437ecc --- /dev/null +++ b/UI/Web/src/app/shared/read-more/read-more.component.ts @@ -0,0 +1,41 @@ +import { Component, Input, OnChanges } from '@angular/core'; + +@Component({ + selector: 'app-read-more', + templateUrl: './read-more.component.html', + styleUrls: ['./read-more.component.scss'] +}) +export class ReadMoreComponent implements OnChanges { + + @Input() text!: string; + @Input() maxLength: number = 250; + currentText!: string; + hideToggle: boolean = true; + + public isCollapsed: boolean = true; + + toggleView() { + this.isCollapsed = !this.isCollapsed; + this.determineView(); + } + determineView() { + if (!this.text || this.text.length <= this.maxLength) { + this.currentText = this.text; + this.isCollapsed = false; + this.hideToggle = true; + return; + } + this.hideToggle = false; + if (this.isCollapsed === true) { + this.currentText = this.text.substring(0, this.maxLength); + this.currentText = this.currentText.substr(0, Math.min(this.currentText.length, this.currentText.lastIndexOf(' '))); + this.currentText = this.currentText + '…'; + } else if (this.isCollapsed === false) { + this.currentText = this.text; + } + + } + ngOnChanges() { + this.determineView(); + } +} diff --git a/UI/Web/src/app/shared/register-member/register-member.component.html b/UI/Web/src/app/shared/register-member/register-member.component.html new file mode 100644 index 000000000..155b0e9a9 --- /dev/null +++ b/UI/Web/src/app/shared/register-member/register-member.component.html @@ -0,0 +1,27 @@ +
    +

    Errors:

    +
      +
    • {{error}}
    • +
    +
    +
    +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    +
    \ No newline at end of file diff --git a/UI/Web/src/app/shared/register-member/register-member.component.scss b/UI/Web/src/app/shared/register-member/register-member.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/UI/Web/src/app/shared/register-member/register-member.component.ts b/UI/Web/src/app/shared/register-member/register-member.component.ts new file mode 100644 index 000000000..9b839b3aa --- /dev/null +++ b/UI/Web/src/app/shared/register-member/register-member.component.ts @@ -0,0 +1,44 @@ +import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; +import { FormGroup, FormControl, Validators } from '@angular/forms'; +import { AccountService } from 'src/app/_services/account.service'; + +@Component({ + selector: 'app-register-member', + templateUrl: './register-member.component.html', + styleUrls: ['./register-member.component.scss'] +}) +export class RegisterMemberComponent implements OnInit { + + @Input() firstTimeFlow = false; + @Output() created = new EventEmitter(); + + adminExists = false; + registerForm: FormGroup = new FormGroup({ + username: new FormControl('', [Validators.required]), + password: new FormControl('', [Validators.required]), + isAdmin: new FormControl(false, []) + }); + errors: string[] = []; + + constructor(private accountService: AccountService) { + } + + ngOnInit(): void { + if (this.firstTimeFlow) { + this.registerForm.get('isAdmin')?.setValue(true); + } + } + + register() { + this.accountService.register(this.registerForm.value).subscribe(resp => { + this.created.emit(true); + }, err => { + this.errors = err; + }); + } + + cancel() { + this.created.emit(false); + } + +} diff --git a/UI/Web/src/app/shared/safe-html.pipe.ts b/UI/Web/src/app/shared/safe-html.pipe.ts new file mode 100644 index 000000000..1c8bc944e --- /dev/null +++ b/UI/Web/src/app/shared/safe-html.pipe.ts @@ -0,0 +1,15 @@ +import { Pipe, PipeTransform, SecurityContext } from '@angular/core'; +import { DomSanitizer } from '@angular/platform-browser'; + +@Pipe({ + name: 'safeHtml' +}) +export class SafeHtmlPipe implements PipeTransform { + + constructor(private dom: DomSanitizer) {} + + transform(value: string): unknown { + return this.dom.sanitize(SecurityContext.HTML, value); + } + +} diff --git a/UI/Web/src/app/shared/series-card/series-card.component.html b/UI/Web/src/app/shared/series-card/series-card.component.html new file mode 100644 index 000000000..d83919c28 --- /dev/null +++ b/UI/Web/src/app/shared/series-card/series-card.component.html @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/UI/Web/src/app/shared/series-card/series-card.component.scss b/UI/Web/src/app/shared/series-card/series-card.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/UI/Web/src/app/shared/series-card/series-card.component.ts b/UI/Web/src/app/shared/series-card/series-card.component.ts new file mode 100644 index 000000000..115a1bbc5 --- /dev/null +++ b/UI/Web/src/app/shared/series-card/series-card.component.ts @@ -0,0 +1,146 @@ +import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core'; +import { Router } from '@angular/router'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { ToastrService } from 'ngx-toastr'; +import { take } from 'rxjs/operators'; +import { EditSeriesModalComponent } from 'src/app/_modals/edit-series-modal/edit-series-modal.component'; +import { Series } from 'src/app/_models/series'; +import { AccountService } from 'src/app/_services/account.service'; +import { ImageService } from 'src/app/_services/image.service'; +import { LibraryService } from 'src/app/_services/library.service'; +import { ActionFactoryService, Action, ActionItem } from 'src/app/_services/action-factory.service'; +import { SeriesService } from 'src/app/_services/series.service'; +import { ConfirmService } from '../confirm.service'; + +@Component({ + selector: 'app-series-card', + templateUrl: './series-card.component.html', + styleUrls: ['./series-card.component.scss'] +}) +export class SeriesCardComponent implements OnInit, OnChanges { + @Input() data: Series | undefined; + @Input() libraryId = 0; + @Input() suppressLibraryLink = false; + @Output() clicked = new EventEmitter(); + @Output() reload = new EventEmitter(); + @Output() dataChanged = new EventEmitter(); + + isAdmin = false; + actions: ActionItem[] = []; + + constructor(private accountService: AccountService, private router: Router, + private seriesService: SeriesService, private toastr: ToastrService, + private libraryService: LibraryService, private modalService: NgbModal, + private confirmService: ConfirmService, public imageService: ImageService, + private actionFactoryService: ActionFactoryService) { + this.accountService.currentUser$.pipe(take(1)).subscribe(user => { + if (user) { + this.isAdmin = this.accountService.hasAdminRole(user); + } + }); + } + + + ngOnInit(): void { + } + + ngOnChanges(changes: any) { + if (this.data) { + this.actions = this.actionFactoryService.getSeriesActions((action: Action, series: Series) => this.handleSeriesActionCallback(action, series)); + } + } + + handleSeriesActionCallback(action: Action, series: Series) { + switch (action) { + case(Action.MarkAsRead): + this.markAsRead(series); + break; + case(Action.MarkAsUnread): + this.markAsUnread(series); + break; + case(Action.ScanLibrary): + this.scanLibrary(series); + break; + case(Action.RefreshMetadata): + this.refreshMetdata(series); + break; + case(Action.Delete): + this.deleteSeries(series); + break; + case(Action.Edit): + this.openEditModal(series); + break; + default: + break; + } + } + + openEditModal(data: Series) { + const modalRef = this.modalService.open(EditSeriesModalComponent, { size: 'lg', scrollable: true }); + modalRef.componentInstance.series = data; + modalRef.closed.subscribe((closeResult: {success: boolean, series: Series}) => { + window.scrollTo(0, 0); + if (closeResult.success) { + this.seriesService.getSeries(data.id).subscribe(series => { + this.data = series; + this.reload.emit(true); + this.dataChanged.emit(series); + }); + } + }); + } + + refreshMetdata(series: Series) { + this.seriesService.refreshMetadata(series).subscribe((res: any) => { + this.toastr.success('Refresh started for ' + series.name); + }); + } + + scanLibrary(series: Series) { + this.seriesService.scan(series.libraryId, series.id).subscribe((res: any) => { + this.toastr.success('Scan started for ' + series.name); + }); + } + + async deleteSeries(series: Series) { + if (!await this.confirmService.confirm('Are you sure you want to delete this series? It will not modify files on disk.')) { + return; + } + + this.seriesService.delete(series.id).subscribe((res: boolean) => { + if (res) { + this.toastr.success('Series deleted'); + this.reload.emit(true); + } + }); + } + + markAsUnread(series: Series) { + this.seriesService.markUnread(series.id).subscribe(res => { + this.toastr.success(series.name + ' is now unread'); + series.pagesRead = 0; + if (this.data) { + this.data.pagesRead = 0; + } + + this.dataChanged.emit(series); + }); + } + + markAsRead(series: Series) { + this.seriesService.markRead(series.id).subscribe(res => { + this.toastr.success(series.name + ' is now read'); + series.pagesRead = series.pages; + if (this.data) { + this.data.pagesRead = series.pages; + } + this.dataChanged.emit(series); + }); + } + + handleClick() { + this.clicked.emit(this.data); + this.router.navigate(['library', this.libraryId, 'series', this.data?.id]); + } + +} diff --git a/UI/Web/src/app/shared/shared.module.ts b/UI/Web/src/app/shared/shared.module.ts new file mode 100644 index 000000000..2d257faba --- /dev/null +++ b/UI/Web/src/app/shared/shared.module.ts @@ -0,0 +1,66 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { ReactiveFormsModule } from '@angular/forms'; +import { CardItemComponent } from './card-item/card-item.component'; +import { NgbCollapseModule, NgbDropdownModule, NgbPaginationModule, NgbProgressbarModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; +import { LibraryCardComponent } from './library-card/library-card.component'; +import { SeriesCardComponent } from './series-card/series-card.component'; +import { CardDetailsModalComponent } from './_modals/card-details-modal/card-details-modal.component'; +import { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component'; +import { SafeHtmlPipe } from './safe-html.pipe'; +import { LazyLoadImageModule } from 'ng-lazyload-image'; +import { CardActionablesComponent } from './card-item/card-actionables/card-actionables.component'; +import { RegisterMemberComponent } from './register-member/register-member.component'; +import { ReadMoreComponent } from './read-more/read-more.component'; +import { RouterModule } from '@angular/router'; +import { DrawerComponent } from './drawer/drawer.component'; +import { TagBadgeComponent } from './tag-badge/tag-badge.component'; +import { CardDetailLayoutComponent } from './card-detail-layout/card-detail-layout.component'; +import { ShowIfScrollbarDirective } from './show-if-scrollbar.directive'; +import { A11yClickDirective } from './a11y-click.directive'; + + +@NgModule({ + declarations: [ + RegisterMemberComponent, + CardItemComponent, + LibraryCardComponent, + SeriesCardComponent, + CardDetailsModalComponent, + ConfirmDialogComponent, + SafeHtmlPipe, + CardActionablesComponent, + ReadMoreComponent, + DrawerComponent, + TagBadgeComponent, + CardDetailLayoutComponent, + ShowIfScrollbarDirective, + A11yClickDirective + ], + imports: [ + CommonModule, + RouterModule, + ReactiveFormsModule, + NgbDropdownModule, + NgbProgressbarModule, + NgbTooltipModule, + NgbCollapseModule, + LazyLoadImageModule, + NgbPaginationModule // CardDetailLayoutComponent + ], + exports: [ + RegisterMemberComponent, // TODO: Move this out and put in normal app + CardItemComponent, + LibraryCardComponent, // TODO: Move this out and put in normal app + SeriesCardComponent, // TODO: Move this out and put in normal app + SafeHtmlPipe, + CardActionablesComponent, + ReadMoreComponent, + DrawerComponent, + TagBadgeComponent, + CardDetailLayoutComponent, + ShowIfScrollbarDirective, + A11yClickDirective + ] +}) +export class SharedModule { } diff --git a/UI/Web/src/app/shared/show-if-scrollbar.directive.ts b/UI/Web/src/app/shared/show-if-scrollbar.directive.ts new file mode 100644 index 000000000..70771fdd3 --- /dev/null +++ b/UI/Web/src/app/shared/show-if-scrollbar.directive.ts @@ -0,0 +1,22 @@ +import { AfterViewInit, Directive, ElementRef, TemplateRef, ViewContainerRef } from '@angular/core'; + +@Directive({ + selector: '[appShowIfScrollbar]' +}) +export class ShowIfScrollbarDirective implements AfterViewInit { + + constructor(private el: ElementRef, private templateRef: TemplateRef, private viewContainer: ViewContainerRef) { + + } + ngAfterViewInit(): void { + // NOTE: This doesn't work! + if (this.el.nativeElement.scrollHeight > this.el.nativeElement.clientHeight) { + // If condition is true add template to DOM + this.viewContainer.createEmbeddedView(this.templateRef); + } else { + // Else remove template from DOM + this.viewContainer.clear(); + } + } + +} diff --git a/UI/Web/src/app/shared/tag-badge/tag-badge.component.html b/UI/Web/src/app/shared/tag-badge/tag-badge.component.html new file mode 100644 index 000000000..9054ff705 --- /dev/null +++ b/UI/Web/src/app/shared/tag-badge/tag-badge.component.html @@ -0,0 +1,3 @@ +
    + +
    \ No newline at end of file diff --git a/UI/Web/src/app/shared/tag-badge/tag-badge.component.scss b/UI/Web/src/app/shared/tag-badge/tag-badge.component.scss new file mode 100644 index 000000000..6cb5f83b6 --- /dev/null +++ b/UI/Web/src/app/shared/tag-badge/tag-badge.component.scss @@ -0,0 +1,25 @@ +@import '../../../theme/colors'; + +$bg-color: #c9c9c9; +$bdr-color: #f2f2f2; + +::ng-deep .tagbadge { + background-color: $bg-color; + transition: all .3s ease-out; + margin: 3px 5px 3px 0px; + padding: 2px 15px; + border-radius: 6px; + font-size: 14px; + border: 1px solid $bdr-color; + display: inline-block; + cursor: default; + + i { + color: $primary-color; + font-size: 14px; + font-weight: bold; + margin-left: 10px; + margin-right: 0px; + cursor: pointer; + } +} \ No newline at end of file diff --git a/UI/Web/src/app/shared/tag-badge/tag-badge.component.ts b/UI/Web/src/app/shared/tag-badge/tag-badge.component.ts new file mode 100644 index 000000000..6d7fb0615 --- /dev/null +++ b/UI/Web/src/app/shared/tag-badge/tag-badge.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-tag-badge', + templateUrl: './tag-badge.component.html', + styleUrls: ['./tag-badge.component.scss'] +}) +export class TagBadgeComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/UI/Web/src/app/shared/utils/clientUtils.ts b/UI/Web/src/app/shared/utils/clientUtils.ts new file mode 100644 index 000000000..7170df442 --- /dev/null +++ b/UI/Web/src/app/shared/utils/clientUtils.ts @@ -0,0 +1,21 @@ +import * as Bowser from "bowser"; +import { version } from '../../../../package.json'; +import { ClientInfo } from "src/app/_models/client-info"; +import { DetailsVersion } from "src/app/_models/details-version"; + +const getClientInfo = (): ClientInfo => { + + const screenResolution = `${window.screen.width} x ${window.screen.height}`; + + const browser = Bowser.getParser(window.navigator.userAgent); + + return { + os: browser.getOS() as DetailsVersion, + browser: browser.getBrowser() as DetailsVersion, + platformType: browser.getPlatformType(), + kavitaUiVersion: version, + screenResolution + }; +} + +export { getClientInfo }; \ No newline at end of file diff --git a/UI/Web/src/app/typeahead/typeahead-settings.ts b/UI/Web/src/app/typeahead/typeahead-settings.ts new file mode 100644 index 000000000..9fc3b28e8 --- /dev/null +++ b/UI/Web/src/app/typeahead/typeahead-settings.ts @@ -0,0 +1,52 @@ +import { Observable } from 'rxjs'; +import { FormControl } from '@angular/forms'; + +export class TypeaheadSettings { + /** + * How many ms between typing actions before pipeline to load data is triggered + */ + debounce: number = 200; + /** + * Multiple options can be selected from dropdown. Will be rendered as tag badges. + */ + multiple: boolean = false; + /** + * Id of the input element, for linking label elements (accessibility) + */ + id: string = ''; + /** + * Data to preload the typeahead with on first load + */ + /** + * Data to preload the typeahead with on first load + */ + savedData!: T[] | T; + /** + * Function to compare the elements. Should return all elements that fit the matching criteria. + */ + compareFn!: ((optionList: T[], filter: string) => T[]); + /** + * Function to fetch the data from the server. If data is mainatined in memory, wrap in an observable. + */ + fetchFn!: ((filter: string) => Observable) | T[]; + /** + * Minimum number of characters needed to type to trigger the fetch pipeline + */ + minCharacters: number = 1; + /** + * Optional form Control to tie model to. + */ + formControl?: FormControl; + /** + * If true, typeahead will remove already selected items from fetchFn results. Only appies when multiple=true + */ + unique: boolean = true; + /** + * If true, will fire an event for newItemAdded and will prompt the user to add form model to the list of selected items + */ + addIfNonExisting: boolean = false; + /** + * Required for addIfNonExisting to transform the text from model into the item + */ + addTransformFn!: (text: string) => T; +} \ No newline at end of file diff --git a/UI/Web/src/app/typeahead/typeahead.component.html b/UI/Web/src/app/typeahead/typeahead.component.html new file mode 100644 index 000000000..41b06ec5d --- /dev/null +++ b/UI/Web/src/app/typeahead/typeahead.component.html @@ -0,0 +1,37 @@ +
    + + + +
    +
    + + + + + + +
    + Loading... +
    +
    +
    + + + +
    +
    \ No newline at end of file diff --git a/UI/Web/src/app/typeahead/typeahead.component.scss b/UI/Web/src/app/typeahead/typeahead.component.scss new file mode 100644 index 000000000..2672736ad --- /dev/null +++ b/UI/Web/src/app/typeahead/typeahead.component.scss @@ -0,0 +1,84 @@ +@import '../../assets/themes/dark.scss'; + +input { + width: 15px; + opacity: 1px; + position: relative; + left: 4px; + border: none; +} + +.typeahead-input { + border: 1px solid #ccc; + padding: 4px 6px; + display: inline-block; + width: 100%; + overflow: hidden; + position: relative; + z-index: 1; + box-sizing: border-box; + box-shadow: none; + border-radius: 4px; + cursor: text; + background-color: #fff; + min-height: 38px; + + input { + outline: 0 !important; + border-radius: .28571429rem; + display: inline-block !important; + padding: 0px !important; + min-height: 0px !important; + max-width: 100% !important; + margin: 0px !important; + text-indent: 0 !important; + line-height: inherit !important; + box-shadow: none !important; + } +} + +::ng-deep .bg-dark .typeahead-input { + color: #efefef; + background-color: $dark-bg-color; +} + +// Causes bleedover +::ng-deep .bg-dark .dropdown .list-group-item.active { + background-color: $dark-hover-color; +} + +.dropdown { + width: 100%; + background: white; + z-index:1000; + margin: 2px 0 0; + border-radius: 4px; + margin-top: -7px; + border-top-left-radius: 0px; + border-top-right-radius: 0px; + position: absolute; + max-height: 400px; + overflow-y: auto; + overflow-x: hidden; + + .list-group-item { + padding: 5px 5px; + } + + + li { + list-style: none; + } +} + +.list-group-item { + cursor: pointer; +} + +.spinner-border { + position: absolute; + right: 10px; + margin: auto; + cursor: pointer; + top: 30%; +} \ No newline at end of file diff --git a/UI/Web/src/app/typeahead/typeahead.component.ts b/UI/Web/src/app/typeahead/typeahead.component.ts new file mode 100644 index 000000000..c106cefe8 --- /dev/null +++ b/UI/Web/src/app/typeahead/typeahead.component.ts @@ -0,0 +1,387 @@ +import { Component, ContentChild, ElementRef, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output, Renderer2, RendererStyleFlags2, TemplateRef, ViewChild } from '@angular/core'; +import { FormControl, FormGroup } from '@angular/forms'; +import { Observable, Observer, of, Subject } from 'rxjs'; +import { debounceTime, distinctUntilChanged, filter, last, map, shareReplay, switchMap, take, takeLast, takeUntil, tap, withLatestFrom } from 'rxjs/operators'; +import { KEY_CODES } from '../shared/_services/utility.service'; +import { TypeaheadSettings } from './typeahead-settings'; + +/** + * SelectionModel is used for keeping track of multiple selections. Simple interface with ability to toggle. + * @param selectedState Optional state to set selectedOptions to. If not passed, defaults to false. + * @param selectedOptions Optional data elements to inform the SelectionModel of. If not passed, as toggle() occur, items are tracked. + * @param propAccessor Optional string that points to a unique field within the T type. Used for quickly looking up. + */ +export class SelectionModel { + _data!: Array<{value: T, selected: boolean}>; + _propAccessor: string = ''; + + constructor(selectedState: boolean = false, selectedOptions: Array = [], propAccessor: string = '') { + this._data = []; + + if (propAccessor != undefined || propAccessor !== '') { + this._propAccessor = propAccessor; + } + + selectedOptions.forEach(d => { + this._data.push({value: d, selected: selectedState}); + }); + } + + // __lookupItem(item: T) { + // if (this._propAccessor != '') { + // // TODO: Implement this code to speedup lookups (use a map rather than array) + // } + // const dataItem = this._data.filter(data => data.value == d); + // } + + /** + * Will toggle if the data item is selected or not. If data option is not tracked, will add it and set state to true. + * @param data Item to toggle + */ + toggle(data: T, selectedState?: boolean) { + //const dataItem = this._data.filter(d => d.value == data); + const dataItem = this._data.filter(d => this.shallowEqual(d.value, data)); + if (dataItem.length > 0) { + if (selectedState != undefined) { + dataItem[0].selected = selectedState; + } else { + dataItem[0].selected = !dataItem[0].selected; + } + } else { + this._data.push({value: data, selected: (selectedState === undefined ? true : selectedState)}); + } + } + + /** + * Is the passed item selected + * @param data item to check against + * @param compareFn optional method to use to perform comparisons + * @returns boolean + */ + isSelected(data: T, compareFn?: ((d: T) => boolean)): boolean { + let dataItem: Array; + if (compareFn != undefined || compareFn != null) { + dataItem = this._data.filter(d => compareFn(d.value)); + } else { + dataItem = this._data.filter(d => this.shallowEqual(d.value, data)); + } + + if (dataItem.length > 0) { + return dataItem[0].selected; + } + return false; + } + + /** + * + * @returns All Selected items + */ + selected(): Array { + return this._data.filter(d => d.selected).map(d => d.value); + } + + /** + * + * @returns All Non-Selected items + */ + unselected(): Array { + return this._data.filter(d => !d.selected).map(d => d.value); + } + + /** + * + * @returns Last element added/tracked or undefined if nothing is tracked + */ + peek(): T | undefined { + if (this._data.length > 0) { + return this._data[this._data.length - 1].value; + } + + return undefined; + } + + shallowEqual(object1: T, object2: T) { + const keys1 = Object.keys(object1); + const keys2 = Object.keys(object2); + + if (keys1.length !== keys2.length) { + return false; + } + + for (let key of keys1) { + if ((object1 as any)[key] !== (object2 as any)[key]) { + return false; + } + } + + return true; + } +} + +@Component({ + selector: 'app-typeahead', + templateUrl: './typeahead.component.html', + styleUrls: ['./typeahead.component.scss'] +}) +export class TypeaheadComponent implements OnInit, OnDestroy { + + filteredOptions!: Observable; + isLoadingOptions: boolean = false; + typeaheadControl!: FormControl; + typeaheadForm!: FormGroup; + + + @Input() settings!: TypeaheadSettings; + @Output() selectedData = new EventEmitter(); + @Output() newItemAdded = new EventEmitter(); + + optionSelection!: SelectionModel; + + hasFocus = false; // Whether input has active focus + focusedIndex: number = 0; + showAddItem: boolean = false; + + @ViewChild('input') inputElem!: ElementRef; + @ContentChild('optionItem') optionTemplate!: TemplateRef; + @ContentChild('badgeItem') badgeTemplate!: TemplateRef; + + private readonly onDestroy = new Subject(); + + constructor(private renderer2: Renderer2) { } + + ngOnDestroy(): void { + this.onDestroy.next(); + this.onDestroy.complete(); + } + + ngOnInit() { + + if (this.settings.compareFn === undefined && this.settings.multiple) { + console.error('A compare function must be defined'); + return; + } + + if (this.settings.hasOwnProperty('formControl') && this.settings.formControl) { + this.typeaheadControl = this.settings.formControl; + } else { + this.typeaheadControl = new FormControl(''); + } + this.typeaheadForm = new FormGroup({ + 'typeahead': this.typeaheadControl + }); + + this.filteredOptions = this.typeaheadForm.get('typeahead')!.valueChanges + .pipe( + // Adjust input box to grow + tap(val => { + if (this.inputElem != null && this.inputElem.nativeElement != null) { + this.renderer2.setStyle(this.inputElem.nativeElement, 'width', 15 * ((this.typeaheadControl.value + '').length + 1) + 'px'); + this.focusedIndex = 0; + } + }), + debounceTime(this.settings.debounce), + filter(val => { + // If minimum filter characters not met, do not filter + if (this.settings.minCharacters === 0) return true; + + if (!val || val.trim().length < this.settings.minCharacters) { + return false; + } + + return true; + }), + switchMap(val => { + this.isLoadingOptions = true; + let results: Observable; + if (Array.isArray(this.settings.fetchFn)) { + const filteredArray = this.settings.compareFn(this.settings.fetchFn, val.trim()); + results = of(filteredArray).pipe(map((items: any[]) => items.filter(item => this.filterSelected(item)))); + } else { + results = this.settings.fetchFn(val.trim()).pipe(map((items: any[]) => items.filter(item => this.filterSelected(item)))); + } + + return results; + }), + tap((val) => { + this.isLoadingOptions = false; + this.focusedIndex = 0; + setTimeout(() => { + this.updateShowAddItem(val); + this.updateHighlight(); + }, 10); + setTimeout(() => this.updateHighlight(), 20); + }), + shareReplay(), + takeUntil(this.onDestroy) + ); + + + if (this.settings.savedData) { + if (this.settings.multiple) { + this.optionSelection = new SelectionModel(true, this.settings.savedData); + } + // else { + // this.optionSelection = new SelectionModel(true, this.settings.savedData[0]); + // this.typeaheadControl.setValue(this.settings.displayFn(this.settings.savedData)) + // } + } else { + this.optionSelection = new SelectionModel(); + } + } + + + @HostListener('window:click', ['$event']) + handleDocumentClick() { + this.hasFocus = false; + } + + @HostListener('window:keydown', ['$event']) + handleKeyPress(event: KeyboardEvent) { + if (!this.hasFocus) { return; } + + switch(event.key) { + case KEY_CODES.DOWN_ARROW: + case KEY_CODES.RIGHT_ARROW: + { + this.focusedIndex = Math.min(this.focusedIndex + 1, document.querySelectorAll('.list-group-item').length - 1); + this.updateHighlight(); + break; + } + case KEY_CODES.UP_ARROW: + case KEY_CODES.LEFT_ARROW: + { + this.focusedIndex = Math.max(this.focusedIndex - 1, 0); + this.updateHighlight(); + break; + } + case KEY_CODES.ENTER: + { + document.querySelectorAll('.list-group-item').forEach((item, index) => { + if (item.classList.contains('active')) { + this.filteredOptions.pipe(take(1)).subscribe((res: any[]) => { + // This isn't giving back the filtered array, but everything + const result = this.settings.compareFn(res, (item.textContent || '').trim()); + if (result.length === 1) { + if (item.classList.contains('add-item')) { + this.addNewItem(this.typeaheadControl.value); + } else { + this.toggleSelection(result[0]); + } + this.resetField(); + this.focusedIndex = 0; + } + }); + } + }); + break; + } + case KEY_CODES.BACKSPACE: + case KEY_CODES.DELETE: + { + if (this.typeaheadControl.value !== null && this.typeaheadControl.value !== undefined && this.typeaheadControl.value.trim() !== '') { + return; + } + const selected = this.optionSelection.selected(); + if (selected.length > 0) { + this.removeSelectedOption(selected.pop()); + } + break; + } + case KEY_CODES.ESC_KEY: + this.hasFocus = false; + event.stopPropagation(); + break; + default: + break; + } + } + + toggleSelection(opt: any): void { + this.optionSelection.toggle(opt); + this.selectedData.emit(this.optionSelection.selected()); + } + + removeSelectedOption(opt: any) { + this.optionSelection.toggle(opt); + this.selectedData.emit(this.optionSelection.selected()); + this.resetField(); + } + + handleOptionClick(opt: any) { + this.toggleSelection(opt); + + this.resetField(); + this.onInputFocus(undefined); + } + + addNewItem(title: string) { + if (this.settings.addTransformFn == undefined) { + return; + } + const newItem = this.settings.addTransformFn(title); + this.newItemAdded.emit(newItem); + this.toggleSelection(newItem); + + this.resetField(); + this.onInputFocus(undefined); + } + + filterSelected(item: any) { + if (this.settings.unique && this.settings.multiple) { + return !this.optionSelection.isSelected(item); + } + + return true; + } + + openDropdown() { + setTimeout(() => { + this.typeaheadControl.setValue(this.typeaheadControl.value); + }); + } + + onInputFocus(event: any) { + if (event) { + event.stopPropagation(); + event.preventDefault(); + } + + if (this.inputElem) { + this.inputElem.nativeElement.focus(); + this.hasFocus = true; + } + + this.openDropdown(); + } + + + resetField() { + if (this.inputElem && this.inputElem.nativeElement) { + this.renderer2.setStyle(this.inputElem.nativeElement, 'width', 4, RendererStyleFlags2.Important); + } + this.typeaheadControl.setValue(''); + this.focusedIndex = 0; + } + + // Updates the highlight to focus on the selected item + updateHighlight() { + document.querySelectorAll('.list-group-item').forEach((item, index) => { + if (index === this.focusedIndex && !item.classList.contains('no-hover')) { + // apply active class + this.renderer2.addClass(item, 'active'); + } else { + // remove active class + this.renderer2.removeClass(item, 'active'); + } + }); + } + + updateShowAddItem(options: any[]) { + this.showAddItem = this.settings.addIfNonExisting && this.typeaheadControl.value.trim() + && this.typeaheadControl.value.trim().length >= Math.max(this.settings.minCharacters, 1) + && this.typeaheadControl.dirty + && (typeof this.settings.compareFn == 'function' && this.settings.compareFn(options, this.typeaheadControl.value.trim()).length === 0); + + } + +} diff --git a/UI/Web/src/app/typeahead/typeahead.module.ts b/UI/Web/src/app/typeahead/typeahead.module.ts new file mode 100644 index 000000000..9f0f9310e --- /dev/null +++ b/UI/Web/src/app/typeahead/typeahead.module.ts @@ -0,0 +1,23 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { TypeaheadComponent } from './typeahead.component'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { SharedModule } from '../shared/shared.module'; + + + +@NgModule({ + declarations: [ + TypeaheadComponent + ], + imports: [ + CommonModule, + SharedModule, + FormsModule, + ReactiveFormsModule + ], + exports: [ + TypeaheadComponent + ] +}) +export class TypeaheadModule { } diff --git a/UI/Web/src/app/user-login/user-login.component.html b/UI/Web/src/app/user-login/user-login.component.html new file mode 100644 index 000000000..346c77d62 --- /dev/null +++ b/UI/Web/src/app/user-login/user-login.component.html @@ -0,0 +1,28 @@ + \ No newline at end of file diff --git a/UI/Web/src/app/user-login/user-login.component.scss b/UI/Web/src/app/user-login/user-login.component.scss new file mode 100644 index 000000000..1e6e67f48 --- /dev/null +++ b/UI/Web/src/app/user-login/user-login.component.scss @@ -0,0 +1,68 @@ +@import "../../theme/_colors.scss"; + +.login { + display: flex; + align-items: center; + justify-content: center; + height: calc(100vh); + min-height: 289px; + position: relative; + + + &::before { + content: ""; + background-image: url('../../assets/images/login-bg.jpg'); + background-size: cover; + position: absolute; + top: 0; + right: 0; + bottom: 0; + opacity: 0.1; + width: 100%; + } + + .logo-container { + margin: 0 auto 15px; + + .logo { + display:inline-block; + height: 50px; + } + } + + .card { + background-color: $primary-color; + color: #fff; + + .card-title { + font-family: 'Spartan', sans-serif; + font-weight: bold; + display: inline-block; + margin: 0 10px; + vertical-align: middle; + } + + .card-text { + font-family: "EBGaramond", "Helvetica Neue", sans-serif; + + input { + background-color: #fff; + } + } + + .alt { + background-color: #424c72; + border-color: #444f75; + } + + .alt:hover { + background-color: #3b4466; + } + + .alt:focus { + background-color: #343c59; + box-shadow: 0 0 0 0.2rem rgb(68 79 117 / 50%); + } + } +} + diff --git a/UI/Web/src/app/user-login/user-login.component.spec.ts b/UI/Web/src/app/user-login/user-login.component.spec.ts new file mode 100644 index 000000000..938c7decb --- /dev/null +++ b/UI/Web/src/app/user-login/user-login.component.spec.ts @@ -0,0 +1,94 @@ +import { of } from 'rxjs'; +import { MemberService } from '../_services/member.service'; +import { UserLoginComponent } from './user-login.component'; + +xdescribe('UserLoginComponent', () => { + let accountServiceMock: any; + let routerMock: any; + let memberServiceMock: any; + let fixture: UserLoginComponent; + const http = jest.fn(); + + beforeEach(async () => { + accountServiceMock = { + login: jest.fn() + }; + memberServiceMock = { + adminExists: jest.fn().mockReturnValue(of({ + success: true, + message: false, + token: '' + })) + }; + routerMock = { + navigateByUrl: jest.fn() + }; + //fixture = new UserLoginComponent(accountServiceMock, routerMock, memberServiceMock); + //fixture.ngOnInit(); + }); + + describe('Test: ngOnInit', () => { + xit('should redirect to /home if no admin user', done => { + const response = { + success: true, + message: false, + token: '' + } + const httpMock = { + get: jest.fn().mockReturnValue(of(response)) + }; + const serviceMock = new MemberService(httpMock as any); + serviceMock.adminExists().subscribe((data: any) => { + expect(httpMock.get).toBeDefined(); + expect(httpMock.get).toHaveBeenCalled(); + expect(routerMock.navigateByUrl).toHaveBeenCalledWith('/home'); + done(); + }); + }); + + xit('should initialize login form', () => { + const loginForm = { + username: '', + password: '' + }; + expect(fixture.loginForm.value).toEqual(loginForm); + }); + }); + + xdescribe('Test: Login Form', () => { + it('should invalidate the form', () => { + fixture.loginForm.controls.username.setValue(''); + fixture.loginForm.controls.password.setValue(''); + expect(fixture.loginForm.valid).toBeFalsy(); + }); + + it('should validate the form', () => { + fixture.loginForm.controls.username.setValue('demo'); + fixture.loginForm.controls.password.setValue('Pa$$word!'); + expect(fixture.loginForm.valid).toBeTruthy(); + }); + }); + + xdescribe('Test: Form Invalid', () => { + it('should not call login', () => { + fixture.loginForm.controls.username.setValue(''); + fixture.loginForm.controls.password.setValue(''); + fixture.login(); + expect(accountServiceMock.login).not.toHaveBeenCalled(); + }); + }); + +// describe('Test: Form valid', () => { +// it('should call login', () => { +// fixture.loginForm.controls.username.setValue('demo'); +// fixture.loginForm.controls.password.setValue('Pa$$word!'); +// const spyLoginUser = jest.spyOn(accountServiceMock, 'login').mockReturnValue(); +// fixture.login(); +// expect(accountServiceMock.login).not.toHaveBeenCalled(); +// const spyRouterNavigate = jest.spyOn(routerMock, 'navigateByUrl').mockReturnValue(); +// }); +// }); + + + +}); diff --git a/UI/Web/src/app/user-login/user-login.component.ts b/UI/Web/src/app/user-login/user-login.component.ts new file mode 100644 index 000000000..9a9c44c07 --- /dev/null +++ b/UI/Web/src/app/user-login/user-login.component.ts @@ -0,0 +1,57 @@ +import { Component, OnInit } from '@angular/core'; +import { FormGroup, FormControl, Validators } from '@angular/forms'; +import { Router } from '@angular/router'; +import { ToastrService } from 'ngx-toastr'; +import { first } from 'rxjs/operators'; +import { AccountService } from '../_services/account.service'; +import { MemberService } from '../_services/member.service'; +import { NavService } from '../_services/nav.service'; + +@Component({ + selector: 'app-user-login', + templateUrl: './user-login.component.html', + styleUrls: ['./user-login.component.scss'] +}) +export class UserLoginComponent implements OnInit { + + model: any = {username: '', password: ''}; + loginForm: FormGroup = new FormGroup({ + username: new FormControl('', [Validators.required]), + password: new FormControl('', [Validators.required]) + }); + + constructor(private accountService: AccountService, private router: Router, private memberService: MemberService, private toastr: ToastrService, private navService: NavService) { } + + ngOnInit(): void { + // Validate that there are users so you can refresh to home. This is important for first installs + this.validateAdmin(); + } + + validateAdmin() { + this.navService.hideNavBar(); + this.memberService.adminExists().subscribe(res => { + if (!res) { + this.router.navigateByUrl('/home'); + } + }); + } + + login() { + if (!this.loginForm.dirty || !this.loginForm.valid) { return; } + this.model = {username: this.loginForm.get('username')?.value, password: this.loginForm.get('password')?.value}; + this.accountService.login(this.model).subscribe(() => { + this.loginForm.reset(); + this.navService.showNavBar(); + this.router.navigateByUrl('/library'); + }, err => { + this.toastr.error(err.error); + }); + + this.accountService.currentUser$ + .pipe(first(x => (x !== null && x !== undefined && typeof x !== 'undefined'))) + .subscribe(currentUser => { + this.navService.setDarkMode(currentUser.preferences.siteDarkMode); + }); + } + +} diff --git a/UI/Web/src/app/user-preferences/user-preferences.component.html b/UI/Web/src/app/user-preferences/user-preferences.component.html new file mode 100644 index 000000000..b6e2c5a36 --- /dev/null +++ b/UI/Web/src/app/user-preferences/user-preferences.component.html @@ -0,0 +1,192 @@ +
    +

    User Preferences

    +

    + These are global settings that are bound to your account. +

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

    Manga

    +
    +   + Direction to click to move to next page. Right to Left means you click on left side of screen to move to next page. + Direction to click to move to next page. Right to Left means you click on left side of screen to move to next page. + +
    + +
    +   + How to scale the image to your screen. + How to scale the image to your screen. + +
    + +
    +   + How to split a full width image (ie both left and right images are combined) + How to split a full width image (ie both left and right images are combined) + +
    +
    + + +
    +
    + +
    +
    + + +
    +
    + + +
    +
    +
    +
    +

    Books

    +
    + +
    +
    + + +
    +
    + + +
    +
    +
    +
    +   + Direction to click to move to next page. Right to Left means you click on left side of screen to move to next page. + Direction to click to move to next page. Right to Left means you click on left side of screen to move to next page. + +
    +
    +   + Should the sides of the book reader screen allow tapping on it to move to prev/next page + Should the sides of the book reader screen allow tapping on it to move to prev/next page +
    +
    + + +
    +
    + + +
    +
    +
    +
    +   + Font familty to load up. Default will load the book's default font + Font familty to load up. Default will load the book's default font + +
    +
    + + +
    +
    +   + How much spacing between the lines of the book + How much spacing between the lines of the book + +
    + +
    +   + How much spacing on each side of the screen. This will override to 0 on mobile devices regardless of this setting. + How much spacing on each side of the screen. This will override to 0 on mobile devices regardless of this setting. + +
    + +
    + + +
    +
    +
    +
    + + + + +

    Change your Password

    + +
    +
    + + +
    +
    + This field is required +
    +
    +
    +
    + + +
    +
    + Passwords must match +
    +
    + This field is required +
    +
    +
    +
    + + +
    +
    +
    +
    +
    + + + +
    \ No newline at end of file diff --git a/UI/Web/src/app/user-preferences/user-preferences.component.scss b/UI/Web/src/app/user-preferences/user-preferences.component.scss new file mode 100644 index 000000000..761d937db --- /dev/null +++ b/UI/Web/src/app/user-preferences/user-preferences.component.scss @@ -0,0 +1,3 @@ +.invalid-feedback { + display: inline-block !important; +} \ No newline at end of file diff --git a/UI/Web/src/app/user-preferences/user-preferences.component.ts b/UI/Web/src/app/user-preferences/user-preferences.component.ts new file mode 100644 index 000000000..2f66704c2 --- /dev/null +++ b/UI/Web/src/app/user-preferences/user-preferences.component.ts @@ -0,0 +1,161 @@ +import { Component, OnDestroy, OnInit } from '@angular/core'; +import { FormControl, FormGroup, Validators } from '@angular/forms'; +import { ToastrService } from 'ngx-toastr'; +import { take } from 'rxjs/operators'; +import { pageSplitOptions, Preferences, readingDirections, scalingOptions, readingModes } from '../_models/preferences/preferences'; +import { User } from '../_models/user'; +import { AccountService } from '../_services/account.service'; +import { Options } from '@angular-slider/ngx-slider'; +import { BookService } from '../book-reader/book.service'; +import { NavService } from '../_services/nav.service'; + +@Component({ + selector: 'app-user-preferences', + templateUrl: './user-preferences.component.html', + styleUrls: ['./user-preferences.component.scss'] +}) +export class UserPreferencesComponent implements OnInit, OnDestroy { + + readingDirections = readingDirections; + scalingOptions = scalingOptions; + pageSplitOptions = pageSplitOptions; + readingModes = readingModes; + + settingsForm: FormGroup = new FormGroup({}); + passwordChangeForm: FormGroup = new FormGroup({}); + user: User | undefined = undefined; + + passwordsMatch = false; + resetPasswordErrors: string[] = []; + + obserableHandles: Array = []; + + bookReaderLineSpacingOptions: Options = { + floor: 100, + ceil: 250, + step: 10, + }; + bookReaderMarginOptions: Options = { + floor: 0, + ceil: 30, + step: 5, + }; + bookReaderFontSizeOptions: Options = { + floor: 50, + ceil: 300, + step: 10, + }; + fontFamilies: Array = []; + + constructor(private accountService: AccountService, private toastr: ToastrService, private bookService: BookService, private navService: NavService) { + this.fontFamilies = this.bookService.getFontFamilies(); + } + + ngOnInit(): void { + this.accountService.currentUser$.pipe(take(1)).subscribe((user: User) => { + if (user) { + this.user = user; + + if (this.fontFamilies.indexOf(this.user.preferences.bookReaderFontFamily) < 0) { + this.user.preferences.bookReaderFontFamily = 'default'; + } + + this.settingsForm.addControl('readingDirection', new FormControl(user.preferences.readingDirection, [])); + this.settingsForm.addControl('scalingOption', new FormControl(user.preferences.scalingOption, [])); + this.settingsForm.addControl('pageSplitOption', new FormControl(user.preferences.pageSplitOption, [])); + this.settingsForm.addControl('autoCloseMenu', new FormControl(user.preferences.autoCloseMenu, [])); + this.settingsForm.addControl('readerMode', new FormControl(user.preferences.readerMode, [])); + this.settingsForm.addControl('bookReaderDarkMode', new FormControl(user.preferences.bookReaderDarkMode, [])); + this.settingsForm.addControl('bookReaderFontFamily', new FormControl(user.preferences.bookReaderFontFamily, [])); + this.settingsForm.addControl('bookReaderFontSize', new FormControl(user.preferences.bookReaderFontSize, [])); + this.settingsForm.addControl('bookReaderLineSpacing', new FormControl(user.preferences.bookReaderLineSpacing, [])); + this.settingsForm.addControl('bookReaderMargin', new FormControl(user.preferences.bookReaderMargin, [])); + this.settingsForm.addControl('bookReaderReadingDirection', new FormControl(user.preferences.bookReaderReadingDirection, [])); + this.settingsForm.addControl('bookReaderTapToPaginate', new FormControl(user.preferences.siteDarkMode || false, [])); + + this.settingsForm.addControl('siteDarkMode', new FormControl(user.preferences.siteDarkMode || true, [])); + } + }); + + this.passwordChangeForm.addControl('password', new FormControl('', [Validators.required])); + this.passwordChangeForm.addControl('confirmPassword', new FormControl('', [Validators.required])); + + this.obserableHandles.push(this.passwordChangeForm.valueChanges.subscribe(() => { + const values = this.passwordChangeForm.value; + this.passwordsMatch = values.password === values.confirmPassword; + })); + } + + ngOnDestroy() { + this.obserableHandles.forEach(o => o.unsubscribe()); + } + + public get password() { return this.passwordChangeForm.get('password'); } + public get confirmPassword() { return this.passwordChangeForm.get('confirmPassword'); } + + resetForm() { + if (this.user === undefined) { return; } + this.settingsForm.get('readingDirection')?.setValue(this.user.preferences.readingDirection); + this.settingsForm.get('scalingOption')?.setValue(this.user.preferences.scalingOption); + this.settingsForm.get('autoCloseMenu')?.setValue(this.user.preferences.autoCloseMenu); + this.settingsForm.get('readerMode')?.setValue(this.user.preferences.readerMode); + this.settingsForm.get('pageSplitOption')?.setValue(this.user.preferences.pageSplitOption); + this.settingsForm.get('bookReaderDarkMode')?.setValue(this.user.preferences.bookReaderDarkMode); + this.settingsForm.get('bookReaderFontFamily')?.setValue(this.user.preferences.bookReaderFontFamily); + this.settingsForm.get('bookReaderFontSize')?.setValue(this.user.preferences.bookReaderFontSize); + this.settingsForm.get('bookReaderLineSpacing')?.setValue(this.user.preferences.bookReaderLineSpacing); + this.settingsForm.get('bookReaderMargin')?.setValue(this.user.preferences.bookReaderMargin); + this.settingsForm.get('bookReaderTapToPaginate')?.setValue(this.user.preferences.bookReaderTapToPaginate); + this.settingsForm.get('bookReaderReadingDirection')?.setValue(this.user.preferences.bookReaderReadingDirection); + this.settingsForm.get('siteDarkMode')?.setValue(this.user.preferences.siteDarkMode); + } + + resetPasswordForm() { + this.passwordChangeForm.get('password')?.setValue(''); + this.passwordChangeForm.get('confirmPassword')?.setValue(''); + this.resetPasswordErrors = []; + } + + save() { + if (this.user === undefined) return; + const modelSettings = this.settingsForm.value; + const data: Preferences = { + readingDirection: parseInt(modelSettings.readingDirection, 10), + scalingOption: parseInt(modelSettings.scalingOption, 10), + pageSplitOption: parseInt(modelSettings.pageSplitOption, 10), + autoCloseMenu: modelSettings.autoCloseMenu, + readerMode: parseInt(modelSettings.readerMode), + bookReaderDarkMode: modelSettings.bookReaderDarkMode, + bookReaderFontFamily: modelSettings.bookReaderFontFamily, + bookReaderLineSpacing: modelSettings.bookReaderLineSpacing, + bookReaderFontSize: modelSettings.bookReaderFontSize, + bookReaderMargin: modelSettings.bookReaderMargin, + bookReaderTapToPaginate: modelSettings.bookReaderTapToPaginate, + bookReaderReadingDirection: parseInt(modelSettings.bookReaderReadingDirection, 10), + siteDarkMode: modelSettings.siteDarkMode + }; + this.obserableHandles.push(this.accountService.updatePreferences(data).subscribe((updatedPrefs) => { + this.toastr.success('Server settings updated'); + if (this.user) { + this.user.preferences = updatedPrefs; + + this.navService.setDarkMode(this.user.preferences.siteDarkMode); + } + this.resetForm(); + })); + } + + savePasswordForm() { + if (this.user === undefined) { return; } + + const model = this.passwordChangeForm.value; + this.resetPasswordErrors = []; + this.obserableHandles.push(this.accountService.resetPassword(this.user?.username, model.confirmPassword).subscribe(() => { + this.toastr.success('Password has been updated'); + this.resetPasswordForm(); + }, err => { + this.resetPasswordErrors = err; + })); + } + +} diff --git a/UI/Web/src/assets/.gitkeep b/UI/Web/src/assets/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/UI/Web/src/assets/fonts/EBGarmond/EBGaramond-Italic-VariableFont_wght.ttf b/UI/Web/src/assets/fonts/EBGarmond/EBGaramond-Italic-VariableFont_wght.ttf new file mode 100644 index 0000000000000000000000000000000000000000..fa31b71df0c79f9837f117b5b773bcfd2ef6a3de GIT binary patch literal 829752 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
  • 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%0AJt4)ueW*o}6ja=7|!?$or)epdiZ%u*?>=j8Ei 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�x#&3O>Ic1W=|G383x@LWoCiKisn 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%0DT~?hrmE70 z9I3plbLxb#p@Mwxf>42fVkH0FK}*VF z9m%-i?0~1!sagE6ZqSf*16yM()$hxGG3TZY+iOdg8jdfYG-*E5mAx~2wmKi{u`XT0 z9~A>9ZrWgkU_z6UGHt*Qe3sIbEI^x}N=6z$IG|;$$HG?35mYmT4sPB+7E{Dbrd=uR z9QjfLGfI<}g6YKnokAuw-6P)+Crc4t?dh%^$(2g}!2^>pU-uu&FIF4nU#||LM6q1<6qz@kie2&jv03d ze&J_>aFk7Dxye-%Q2~b8Ij9Ua%oj3+g}`u#G%11#0#Br0yB_^aS~{d(O5=5Q)t-}T zh<26TG>gF|0o!Yi}LR+N8=^kwjl}8==T#G$Z zpTj((8yb46dnZmlFu8bY?!Hi%`N@!z_ZMS6$w!`5jaGYAR~OGupbR&sc8H&NX-o^)9nD-|w{j zu&OxR9_pwGjWYY|i$|9>mX9sDz+p3(vND}TZu#%|<{XPw=kS{l`W|7PKVmzu=Bxm% zz`mz}R%c@0IWh%X$&@CD01Z_Wq#STK-3GaLf8UFDn)_zB9O3+$wz_#ujk!7bj?7$> z!^MtIj$d+@eX%K2nrmoosGU~%g3%c=T1_P(a3x{5x*ZW;A(ll5F|)$5Ff&*dO!gSy zwd)~mjc^#AJ)D_lR1jn9mBUaxF?bl3GdsIZd=-b`^iypL5HuC-V2cRo;f_r0pjT%! z?K{P!;MB9QW2CcCe08L=P;djdzFzz;&cfZNKMRA&Lyou{ku8C%5!Yg8LCt~_r5|vA z3n5tl-G^c4X%9p3yQe!0ks8i~Irwh+VMs@U6JxKM93&4z^n%A&A+mQon8CyFx}k?5`)>Ma$YI&dg*Ws4p0bFeZj#sEx#=zxqJOhO^u-e@(Z}QS@q{D%@$uy2 zr4x)EkHTu7FQb{SMKa#akfqT5QR;GTF6c?wXhb2 zH}N}1om%KewYTuX=2HucaOcguu;tW3y7N~4%+aS7mZR_+{La>7A-bYAXetWt9q}~|=YjccO+ny{`s|AZ#k+>gSIf+G>bsRJZDLkC8OpGoc_+o{4 zGIsJ;F%0pT#QjnsuJLI*F{zSv7Q$bUdkp=4SL%1a@;k~$iLq4qJtLGitL5dmUnw7h zdI#@MmQ($Ak8ppBdcQkWK6c3c$#S~?z7g&po%VdCeCYF&<{?M1TTxR50G9sSBS)oxjET77*fER83{qj>=nKqPvNq~;BAlNFHbAWEnAU|5Q$&H zF=sfcK?RrgUK5$HZSB6X8*~ph=g>k zeC-o!q=u6hm%vek;h29-_zk;7&}ngxGE(9E{S#_C ztHZS&)vwi+R(3{9s>YxqkMJCu#y$a*P#kwFc1eBs!z~(+z7RDLR!B7s1qPU=yJ|{h zGrh4-x<^${t?I#BCB%cz6CVqILCy`I7GcvtOEwFYY$6B^!|t5ODP-cE#CYKq;Tcq2 z7%!mc7_6H&d_N7F@<<17Jn@_qX@z&<`dWv7+Ol!}j_PM>!|uA)D^BE9)QrKlD^A=f zc1z_*|GpPDOL+e)EhlP;crPB~M;l;sNq^Y~_$yM&Aj+VeK_QHRHm00L0Hg4P&;o4N ziCZFj;Z?+O6o4~aK z0a(*NB+ruHPfdiF_yLfvPcUqHG-iX6N&{xi%0viDxE+y5UN_59mh{N?!Ozu2gO{o1 zv-m+0C_V(N&7@xH0^KT67@N4ofP=_jG+_PmMM6!rq&3qC!_{83nJt0WXS2p+BWKE! zz=Mm4FEDm9xPL&g@PuOR9m>&*I%Hyk@=;iBGGe(RH6+P#%M2_#dm(TAB8;LU{)h0R zE_?rJ@1X|M)$wZOLh6Tf;FQY&j`Z?pA^sRWj`98#x!vw!cQN8h7UUyAk=>ed zW=|g9wIBa>9pAMb|KuMXKaO*QmOZU$y-=_8lArfHwahA-7V{~)RB_!&Zd9IASKX)) zb^L9~p$9h{#bVY#aqosD*TT4=0J|pNpo8insp@rNO)JWQmBW`V)Nw}YeNl@ z@(5b)s}2NwWwq3DHjr%AfTy>!zN^%c7xM77SG0xfcBmiFc95J&>@fQUNQY0m9m6i+ z{aqS<{(BZDDalp9i77>pSva@~c;pFkjt~%Pkh?(;(IARPL}QZm{?Vx3C%+FG_7jlG z&p0(*i`_-kw0amdMOgJKMAMM-f;g7d_sh2)lNw5JVxV32LyKvpo%( z$8A%gR`gipk?UVJ^disbj@S?nRS<};i%ukzNEz@x*EzQh%BF}Qsp z>LyQ~4u0~a?SWHIp5c2Tsnt8Hy|5s)7e?5{gS{B=oOT~$i6+kjQM(EAD<=Miw`te| zE@%MvsTBVd;+=jzC`x8-nR4zFKmMfzUw0M+zpcHtE{)*Rw=v$M-VVHK@x3qM_6e{sH zdexiiRR%XVR(b{K01=4D@eh$Sm#8fkR}+2o5bgtpn!GjDivSt-(WU)#HTf?M>y?I@ zjRT5I>+pfxG-Et`w1U!VsMEQkzu*j=(w<$P_OiVag+(lh2MGf~W63FzSP|+6xGZoX zXssGKmfXrUehI*tmF=~yU$EXL|Ljt!`I>BF3n2JWtU4!LGiMV8xe04fjdQ@v6Lx|AL8ut zC5!#xOC$CE)~)ABIosv;Z<~F?*vS(%Tt0ozkH5VJE&3h;33W@02WzmX#$VwE3pu^T z{!;I6+ct08l12XTA*o=~6*G3d^~}n?^I6etb8j3w8Asz*;d0~(3DG_PE@~%;0i3^G zff%Nvu$vcNe@bEEi^NK{Q;M@J?S7b!^ZOG2$?r@27)3L9(E<6CqVw5qsRnmlGQ8-A ziSyY-yy)PtBDfSzWtT~Fao458pY_j)$!vl&8%2kP6wy>9wz09ISukLH4OvQlPtGC{ zj}&8LTUtWB;mE8$_LJ$)E!;f4dd&Gf+n$B%u26;>{pmOIh;cZvB@^2;a}-KJm17zl9N4w*}gHWLeOHdK3<`$ zRg}O*ib@U-EAcZIyM&kAa@vw3!%C6^Bx-Ns#|0FQVm$^7-?Ioi8vfms7!a=$o4{e- zi*b>(_cAXRYQMnm7xUlm@GyooAOk97{{QdWs#inU* zyfN)pJFv%51v^i@6mnv98FZ%vP<;Cy^RG7C(l0jsYR9i|G0wR6K@E-w_o5LG^M^ew zypO-4FrGaN{j>%Gyh|AKv;!%4c}!&@?@BCoAlmqiVbRXod1>e~g?7W>@!aqsBz6RA(^*@{3xrSH1C-K7!a%t?L3K-RHm*r!sK z5JsD4iHkvp9%gmoV!=XmNL-A$B`AV_K(o*j7UDgre+sz;Q{5ncPjmvkB|L|Cbaa7u zd31pMmZ{;yuyfIQgr*K@pxP>nltrzfRw>j?Z3GRo@EnHu-0+YqQ=@V3&=GJ55%DH* zxe(Icn^l1)-pj&5g6QABjQR8qENwju7#c}!6E^I0YaIF zMMKTHJ*HjreYxdQ1D?87+8NU!Z8Gv)t`;tls(>gK#GSc020buE6;T|IDz`cq))+c~ zI=DkIp@1$42BW)0MhI5L zoP^*xgm9*<>#%1bLr3-rNPR`Adr}zDBV7WHw?!6k4z@ z5c4t>S;2yq;y)=kxgXg=njSJl;bau_@@Hf^bk56n7TI z<|)Qr>Y8r9#MwQyX60nZe%qvm`QfV8Xu#`?6qQHy-?-gz{>=7E*Vt~p-Wb~u*fz1k zXQC+Cc^I)77%>mVs~lb>rqYs--&5pv<=e9L&=af1oCr@tF2$TSVxT1+w}c}_?x7{X z@~G`(2*e%WbvCopVzy@K3)JTO!i12f^+D-K7~$EoU<(;d9Wp*vjtkh z)8>u4^?YB8-;y0@DX9pp%w1eqb-QJ)C40@pyhZV*?w;Jk*NZnC&A)8b^6y@farsrE zc-_6$vbhF%lfl;@vL`c`+%qn~4!Itji#4Auj2FXTTV0S~R>X_)^BfkF5pugeTbseX zx5RFz8Dc!4RcdaxWCY+PG-G6xy@qCN#0bE!apg9w1^|0ucc`p9$fM2BmVo?C$T~6p z*cX7g5m_H6h-#&w*dcsT+%sizw6!%lWy-|j;)(d&7O$N&rKk9r($bRBNTih6qdik5 zy4@3}^whVt)=!!;$z3>k%EbD%{+h~)>gtNh8f>T!F{vGx)KVcDul5vS`FU|dNP2=i zA>$xT1MG)LPE%d|6vjR14m)U>@t_hM$4>JO3oE`rLsp$rG*&F`abDtVU*TEjnG%Xr z2ddATx^ac=5=Z~og=0pCBcVpN_OfVySI#|mY8yf;Jl>Go<+1t}#HURO_8@8JP7gAmnh6QDLzW-9-&F-VrvwWC98(%q)vqD(M4gzCw12| zaU6z+4yPeS*=o@UziP(KQQh~eFjG3{EMQrNwbO6N(j(L=Xn{_r?ax89)ipi2*&+gN z!R1gC7h#hq4{AE&Z4`w|xv3`?7`%vB0LcnS8y!2V3Kn1@7xDWw{a6>PG}xr6J9%4) z3IjDmQw3dyR<{Dr5;fU<7(G#wAugv!)2-PWqz{@CFBvtetjq|f$x&US#>QLAn#vk$ ztBnyONTko>cG;~M>m098 zW4&xwCbEM2!Z|s5msNc9n*2OlQLU@mJ$u>K8^8C<%d?Bap5MJw*<`!@{4ovJ9N>AK zD?YTbzh8QlJcUv_BgL~Z7X*WJPrGqw`GqUuxgL;0FB4!DHW&;j0xKpkoS+{_H7~*n z4uOH7Ez#?<`;jaUD}Wq~Vg9m;a*k98*(egS^(#iY3ouY7kL*l0WDrK;0Po-ze8o_L zfEfu;=v+$gJIgsGN_$z>N_ zr=J;&X(tDpOTM{n%M^GYi&ZsM{Vo0d72mL$cdo;ywHLQ;2%z8hAvT@>6{;JN%Z>RU zE>Kitirso}9EyrGo(Ech9G>XkVmO_H!9v7eL0FO^F)$9r73kB7p`~%e#8(S&1Mcgk z`?y5~!RU%*C^Q&;WZty$FkV;#=&6L&LN;H(OrpSvh;UFZXZkXw9VN>uEZ1zS8r`C+ z?6Qo@FkHNZQdX$*Sc_L{6^*didiG|`}qx_)eJ%q}6kAhKMwSOE&4)#$V< zM!soK-6%j0rp|7)P+e778V;I~YTX}DW*14)fi$U<5ULK2?a|C)dc8?^M$+JLhdx{@ zN-pm;Ir39ZZ)EPQ-W~T`uvZt%>CG!Tn8SK3W>;~=q|n55x3sTl&MwShtE}dEPJcl` z=lW&K`-1LyHq$&qAp#D#-K)XD8MhYzc{CYw!O~`B;Izaz zfTLCvhT!6f%7JrUfTcPZ@eaR>Y=8Ri3YU$aP%~++=mt@kJZH{RrTJcBvx8ai{{t7m zUr?|^mZcX6L`ll5!WvX0E6qrMV@ypUO~!A!sS zzEqy+wOHAbqG_LfR`LDMrqN&TTc1sPIOI34f3GOpR#bH3nDv-Zq$CnIW7r*V9=JnU zBtgU;9Pg?-`|mD~#-Yae||v ze{oFy;=@(pP`|%;6$TdOA=35m9JC8TVTZ!Sg$0~9EQ<{Dpl{IZ%+`vcj#zaOG)kip z77#PSLr#`|>6O5_dz05|uqWgB4xBuWpd;vo-oagfXWDFDiU68dX3et0(zlLC5s@Fe z2554~A2ie1?KMa3=ww5^`S+O*PT62(=dHYG)KOPmt!OCUyi&gT?guLB^4O!^Me^J4 zU(ypdX@ZK-|7ao`aMUimQ~^O`4a|mJZQ65SWZ^3nHdgP@+TGK#E8dM^nq;wOqEGKbjd6ENuyrH)wOzXq<*u*Y|-l7h#9Bx@<3ZL znxWM3LJTQCd^D`kTgrkF*<%ft=4NO*b2|+=yVi|gR=hK(IM3_J)E~>eKkF9__Uo=7 z)}p?D_Tmk(*ff{T8<^Q20WE@~fpk8WMzP?7JQ;zFca2add=b}sz)#dxf&WaBq#6^5 zL8F7x~58QpSPP-3fJNui6T@m@5q-H}g61#k+$mZ`ThL239Q8Erc-5;m95EVq&?yivKO_WAX3UTO()nZkhRW=yzO6mM zGCJa)x9X#;%HV(5IJ)xE8>Zra?HNe-DA7#ojGbj|+!zJ5remI+E`x0HPOmO&U(JmS<6@Ej|HYgZSy6KKx$# zQPAxl>3T3pG*9tT^&0X3Ixyry8e!Cr(dAY$TzbN4bqEfdH92Z#ER^G_2ul=?aAG3{El&V?k?@FoZbsxZNFT6Kz6L<=ADVBh*pF z-kfGKbac(xLfGYr%das^=o0OhR+s$Qb$bnPBO!wR=ARpOIf_>0nXpR=z=acLDDDTb zM#Vv(i~QwR#V-3WJ?DsB!eWKNxB=}xOY9OJiAwXo5_UQMjtdG~in1-mE&dws%A6I1 zU2d{uZ=9I7yrU%zyWH@`!Hn$}!fWqZXLzn&Ucj--SAku|fL-3^dSW>itR2{8Ef@lj zC_PvKg#VZ)Hc7L<`2*-HE(Fl$(F5oMhxDaDUt!QeQBxE*OPUsLoJ7V53d~2DGSkpy zCwpP~`Ypiu&L6j?wYQ==99=N2V*XhB0sD&f<+1KixNJ20#*(gC2hDdMHBDdLUgFF5 zS$qpSYvy$rjvO&fSXN(r3B-cv20Tho<82aJ)&z6WFTaiCJ>@12LJ0t|k`*W**4b1*5@z!th}EHhSn8d; zt!TCmW;Ptef}lqr79cA~n;;&dFdW1RHaC}*xseK^d0cZ>N4#uQSyOGbJK`=yoGh16 z5C}K|Mp_G;we@qz$~hFW0^33xH3@Dd5v)*Hqe57Un;|wh!V9mQ_3+L&%_XJA4BM0D ztkQ^U+W4xj9tf$K2d!@^A^=7}%oNIQu3}%x9E@FS(^U_+5TU{ew z1mNm{tz%=?q`_KOuU$Rs*cxZS#{jVoTq{qRv9ZMG?C9N^kIj$()UgdlYXJhWya2I$ zU^;Wp8pHxwP(iGYuL@!zOdhFD2*jcoYnB`wvS}dJm!Mb&TP?o_iuHrgBbhZ-V>pbp z`G9^#r~xq6sM32cSTk*WeO&B}#=zh-))0=hdn-O(xTAS9;aFdw>!Z>28bW!(SQKQ? za&9OOy04-<+>Gz5pgc7~O?6eIgrhtGLV1YC7>e?o1{8*X6K4fzwq~+7s$ob3=UPXiEWb9soPG;$nB_`ijO?bBc-x=*jUF6gWB1 z)7umY5YR)6Ljd%pK$sY}6u`>bY%)T534aKv`;$5@LU}+2RFsDYPUbq(Q_&oNIX(%| z<${m~M@DmEVjz6i_QwkVzx#oneH&kcs4a)a7_4d@` zwR0n&x&)d@c_E6hhDo(uBis?s4q!TK2v$*fj);P;n37tlR z5CPsqa|S^%zjl;mxo;vUCL?4B1>Vmu6GhMA0I--F04i(TlH*CSKth-ZWb;l#V_1fK z(xLy2d~(`}vJ%^_KNi_+MVHhOAd`WiQ(}-83!4?(;L8CSKGS@R&Ix594{T?#vnU;8 z!9aXD$N~UYvp?s6={u(SoCZyUslMU|>-HTzXp9sX{56F|@APlqPB2U7;`!SyX5}w* zHG2xNXq(h7kUM5Cy?(QjUma5Um8=e4JYpUx#$bkl+}k21z38RAms# zpt%BckJY8zgVW{ox4>sny&4Sb0pPrXRwn@PhcPH*LINT{A$tjqm=DA|gTvVQc_4LO zv(;=dWz&inh6SZTLG@Qxna1QaI4{`y=E9A}&C{Ge%K4X!U|_3}{fjsUNYIj){PE|j zCiMpk2?&A*i?rn{06~1;eoa6S&c(9>f<9D$pz%o{NF*TWk-Kj=OCabo%=C1SZw~=M zHUL5PF9(7^t5qO~3m9h$1O*fz2qMJ@KoA}8gE&yYm&Aceax-anb1|;3XElbP__Dcq z+#9-<_P^OIZ;JlxEmbV^inff&59e9f1cw#OP#T=WwDRZ5>xJ%Nm=2^|@hS|rL)enS zbZBr-kLiH+se^eAP)*#1MK=to88Rq5#U%|2M{2Hmf7WoMX74NGZ$hsgNg*{eYFYt}>RZCzBn z#xpS#sq|OPow9s^{SwFWt_7XVp-3y~NzEq5Q))dy3?Eel&Go^QSR2GjT@bwznj zmlNw-5qrP7am)X^$l->s$+$%U2=0ZVz6>Jyc=nhI5Ci}a1OX6qfkCe406{DbAQ)B( zfPk0A9U~R|?*atG*uk{(ED(kf00M>d)hBOHM+wqUjg(~b^`Q%M;=z`d@^W&@Y#HA& zuCu+oxqMW#rm(Cq;wi#pxd1N&IlQ2lz5JK)1@^)NeGlzW00zsGMgkb7jISOJFuXSi zFj%kJ9P(RD=7ItaFx7w=cv~K6GS?{PN7A!(>KsJ&Zl!K1PkXYKn51oc0_>;lw7H& z*p8^CBPB2$aYf{aHC&RLq3z7=(C6-5HEvmtx zJEl(HmLr52-1zlcjtpW3%4Ru7%aN}GZ1~ESBPsH9u9hP={CT6{OC=*wiP~9Qmp-H%e)gXy4zf;R3*=YWUiCa)fX!$V$kIfV7V)JCt5bFXX=R7S zu2B*`sP-ai>>5o5pnFt>*fj=w899Y!l4GcmMU3(*^ln|a@T!Fi0V8&>YuQ!e#r&~V z@$#Wzanh^K0D_#6RxdI>lk+FlJ9DsJu~4a)p^vYzCYW1(xeF;;XGaZGLH)927`6%Q z9kx###WcF0P|liFf8%EO`GFz^g+*c(qC@EgG?lD}GogEc1t9GFQs#aOxVhhC3>lJv zbDJ3@Yc4Gm1%Y7)95>rU%m~!4I+-jXW}C~ zrqMNMau^Xo-e!Mc@TI^vCCbuY6#rGb@C|a45<)tyaXrh@X+OPQFq0GDdesLqalJA~ zCc!M~kb2xI^u={nc)VrnL-Z^S8&9eecf`klDifvZjG z)v6b4W~K(P!mq02Z?obl^2JVZ%GF!9U-{@U3??xP7LfdqF2}eE3rL%IPfjRfv`QT# zIiUb0t6)2?R^SCZ25J;Uxj{QYSbMR$f(LMGObGbwSCzmSBa;>@emR zTKnM-H@^pq3{&7 z&R7&yj!y3NlcfoejRm7lz~1}!;YddAg-VG+Q^D#Q()<_MPa|Z+tL|h*IK*IA6H-r zjdRJX3&w6Ahn5xylccp`1b;)2+qTDzV6ud&LNPPL33W~~&2xUXMki%z;klYAE+LRz z=m)J4Itgm`;S+v>>SzVO3fJ`U51C@WatG}D-Qlnc5OlaETwPJ-3b|lSi$~_eI8qN4 zX@lbGhjHK&sK5ZeP#80aA>eaMzEBxS8v;l4$gD`+);W7S>lTh`n-!_wHgD{FPjq49 zw3uI4=vW0Q8*xl{bS`=*dE{{7h*XO>dPEB4HYj!Qq`yE~DVE4!nG&H_ z{TVx|S1nWmox!CS&oY3>(wH)h7fugki;N>gthCFY?$bTUvTbs)<>yB&;se(n?YjHg zL+`$P2;)+WrYx8CfpH)IEu8wG7)gb_5jz(nC-Qc1O_&qcGuqea9pBeU@9H?n9BR;F zYa_oI+_f-LF)Ndn+n$$Se}Cz7*pt$}>jzBi%?9~i@u!%ce@hf2g^dH#bp*GfLYP?O zVfyTXS3o8`%9x&ylLqdIHaLqa940y3a35YQsMGgYz~m9(~cYqQcCE z#f6s)JP>MYv74tv$AYjmB;JzR#dok|%phNI4iyf^b7`;`%hZSnYM80|yO!#h1aGe_ z36X6wfG=fa5s~KkTNd`{nMRY@pAEMt)!7T9BMBlL8HV43D{-9lrEbuWvzIRtal0)D zK^TcfYO5;TrS1~H*W$7iIPDqc3{$Cr-02X-RNyYcp!wWiPKoCRE2QY@eiv^W`1wk) zWZ;Tbs+JzqBn{g!DM2d2j0S{G?WvC-pMJojd-3p^7SIRW&O%gohb+FYUmuLfc zl7&6l@RQ8wCrZ1DXlxX}k}npMFvcU@i|aEow0)`Dv>6!1+K!IK#^gwL^mKHO8{634 z7$4mniA5S}s!kbI3ymrQt?@WupkvD5Qp7wQMM$cUGU}qhJBt5e>Z**?RfwphUN7FZ zdf=xke@4SRj>b1ySRN=YV}D5fzR9Z%Z3$3_T{`w}Zb7e%h>* zDeu@_0wU8i2?s$W|BvDl>>)N;$b<<9NYRE77-b+Oxu9rpr%>7H(_Uu8WkspWM&!Ct z8O4e|V`XQm2gdk{2VjbaH{_Sa6g-NvoPRLPHO@6`=kEt+Et`e^TzJ?G;o(~Fet}`a z0}4IDHfggs9ekN1tArw3NRO8&>{ua!y3YbV)(dl$_Mdss&e(x?E~sLv^*pC)ngpUv zYd-5$+K<^Q6ppZ2LIMQn%fjwJ0wIa6kc6fq%V6vZn%m13vJTv*A<5|Mg*de;65_&x zLfo&p42K~b!{)Gy5z33k^OWFEW7uOTw4pF~YGDgi zG>h-agJ0AY@$bn~RMg>0lqb&zQRm^`YlKA@$r$1VXbe<73WP}qxdXFrr|*qIAB6lI zd`APR9E^odm67korXm^n_lk@R|A!$maw%kFry?W!xs04Kl8lTx1CWsmAtPh z@2yD&eo)d7H`?0PoLD;vuT})8zJ5TDY{vYJ1dRbK0s^WH!mMF}2I29i6Ewa|nBYx0 zoh&iICja(wY#Osowp)I43|3UvKG5~hwTFK3`XQ{IA$uDKOBVKCk@x{;>KBoKEFxP0 zG4;7Q2pgs__1J_8g9``}OdP?K+<64lBK12(y-5}GxHlH=TMEV=iF)8yilj7lWZUN4 z6<`d`)e~L-nG!)FR53VuQ03~E9~kw*W8m^bDc0VWWa>w4F1*D5og-lL52bPTt>Emt z#NT86e|65jJ&m(h71U}6zb?)mL-3V2`}+spTq)KLTsDl6XC1?S5Pv@qoglt35@+vA zV<{D8AFRYgaQ44Q8?_W?PkcQ)SI)jYjkE9gALQ)SQBBWyq-2)-ik$rkKH73;ihoym z`wvq;oSwH=CZIfRuocezAA`RPej38tV{`uh2WJw#{U1L#G5X1aQ`Ai+HfHGYf$#r; z<6{l!e{=;O5z9cRSttMQ;s@~%(u#70v;ywZ74e9X!`Y@DY`*s)R)cKI^{mm0C?%c&D$ak%s;4QJ- zVJY!WSc^L5Cti_);*r6Y1W^GL9V`a;*=df71-vElZSrkOOJ3#;k)LOsydmtTsAL=( zGA7v&12u%4s=RhDs&GPGEsAJ`hy6{~dZ`uiciCvMWw05nA6TR)EKYnTJ|o3(cv=PR zQ>L6uL98yz2-Raam>(Wn@IEm|!h20Oba#sGJ%X#;GYhHYDjlu0;pR$Pju55C+ z%SHe5&kwwZ3hRU%>0WV}TA{_H$wY-#ge>ybGgj{fE)cVO?Xj@E&h3EggZl?Qru)Y| z|2*68bUiM=Ex-M^+i~RRh8JJlfcm0|yTvOIx^GAW;a6ymG8Q$X-l)b*j_qdleb<9@ z^Mh`O(m?S~E~jjg-$iztPo1vvf%l$&Ui72JQnc`vR13{Ugx;=(y}I8EZIm6s80_}2 zw_f9{_e!_8oC6Ai|Kb*0f+gBZSJJPDtPAm-;%Wj?ut-FJ5mQ~Fz=tvRoeSRm z@%Fc8ud7`Tr}T&Ae_}IO?`5yOj*WoWoC5nqgkX-dNBdM3zzTGY!C)ZMkMa6M-ok3$ zc}IL=V2b#}d9nt3DA{yTx0RR;FcJ#yO*)U0t~j z2HN+?_py0w{$+2y{Wcl_DGLlgZTzidbRf7Bh0;3!LK~r5#Tb$z*XcmuwB~$K(jr&2 zRF2`TfRl7)H{g=Wv|`=x;?#{)!qRS}cw>)HJX(@dZ_yVuF{k& z>fssJgsiM(SxJ+adb&k7>=wkgN!@X}o2jMcc!ZFFSYU+3@mk(s*pkNf-~-*ZX}7%fm4(e z$W2v`;7dvY=2JB*Vhq`f$w4zJKJ)Fx&0D9&ChF=JPoCbeb7^EzAk5tEio890_ue_? z8&{UB3cIWKMGw8Y`uzVqKE~?R8!JjY;_Hi!t(bAw%BIMI{>c+=TJ3Vk?__E{pjn?dUzPsNklGuEoci z>ejS&t!|nyv!u9cU0+eL(He9)tqUA}U!-P>_6G3AdPloRcezdol}sRXYyjNs9K0je|Hn zqPUQ{{N-8-#FVol+$Sj@6Q{ji=vl3)U>V|3qA`M~*Q3x}5iO_aO{01?T)Et;8xKeXvhbT<(cqoy(C+2CW ztuBv*gQj9rQJ#{}T@Of|RMdkTR}t@WDTY1mQd)l@KaD|BzN_V$YYx6gMdMxb=ijw> z@!bm++`YJKeOuf5uCeq!wxrwDXeqQ623pGk(ZUHOeM^?lkaV-}Si1D~*|Tq7y7Z3O z3)?nzcW-KKrT4b#BG=elU1i;p!X8)AszvkGLu1n-ydqu%H+v%-H_LG5tHa=BnOfFO z3SD>)O1nUE5%!RYD{vg)RMb(B%ghXICc=S{iV=DnWuIav(je5;R+e*r(171(Dl!#1 z?WjK&v}@#Hpq%!+-?RZ8(FSZ)M2E8Dq^q^3;vurf_H}pfn?C(OPtSqreQRoFH#N*!eKTh489#o{j2ZjJ%Z?2TS{Fp43tC&}*ZxO| zVf(UWtY~hb$%I(l6z)4LU5lNl!TG6u3c7iI%p$ZNq8rDUpV&dk4+S&=Qdpx<&$Aaj z%StaRU1gMvd(4?Rxrvm z2ektPejFq)2Sy8xe5F;;M#u9gFUxRDfX5L}%U-UI8xP4%n4p7@lwwF;QI6%GN{g1xte{b3Dn$XnVbow{y?dVC zBbA?AB>|L7yH_Jr$14DD;A$qoOa?f}kaS$bEu_@y!1|!d=(p-t*F7DT%H?a=rh%W+ zJ1VDuF4^K20RBUm3U3i?K&s(2O5eK0T^mBZ|6gz_`0M22Z}^!ecVp%dZD zE*fLES&ur7HauB>)Opk@K5*zxc{kg8CluTXsQ-Bzt-{r6Fs4j^4WNK2g~sWv$2r~k?F|DPSNms_1AjiRWZLq#&+F^i);@36#O>`nX2#t4vtq8iftR`2UWsTFCrf0DR>g@^0NYw* z-B?ywaH@3#9RWOL3lcF{xY-jOX$*nhB}0;Q8m}-^v3Hx7)ETGHn_fwlVQp#vbtpIA>f~Nlr5te}STsU`e7NNx{lD6Q@x9bjxo+fPv2TiH(e zz{!`tpH{ircKIgxh9NDt3I|a8cs@MELY2^l{FnX024S~wjc}*%nD8Q!y!}@APx$UT zSco+UGulfa8bcnyh#NozP6~e$J{Eo_{6hGN@B`r`;VI#9;XdK0aHDXoaEY)-*d}a* zVa-A$3z#a572;s>tA!x;m>s%BsN5kJRuiH$jw} z6(SVhlRy{(U-M(sW_#6P@gBugXDp<3^uaXH;TaAe5F67NWMg$kADo&Bf#&ixkoQ#|Lh)FbvSIQJ^j zo(ft}A{eCufV0e;bUMH{agvJ^b$j^tB+DY|AT|PcO|l1~?h@iI z!LWTIy^N@^E@*YvJY8f3znL_MDpe z6@nxSf;-^$;~6eX2_o9-xPga1D}(4cSqM>3RLJ1UdG3!Po`fQ9OD~&x>*as^^G(O* z-MzehX~Xv(&K}*k>v$k;lpl^8=FP}=u#Yx9`R*0_);_tiVn)M-7nn)|J9lp|ujxg3|mWwyQDlAqS zP&|aS9OPZm64jmRtl7|bZaNoAelWx0fO0N0a-Z>5=MnIp_dD-1Qv05?-p8(6Ofjv^Q&Y%{KZ=!3BKJ*+EiGj4WKi9R%OSo461^cgUV;V?0_86y58FC+{@e!_l? zL3RpLlwJaUg?NNfCTqx%k}czRaFzrgq$OMCDKDJ{WEnwSO8VFI4923m-mo0~lPX%u z{1q*c%c4gj=jv* zL%KZ66sly`h2(-)TYq=yrTqRr_G2bvTw=T%=jQXmIn^`?h0V8JX1&aIl^yR^CSQB$ zwfK*xRI)1eGAwy5!hHUe9HS27V}gFeX;BQZ59W%*3fKvQS{c z{!V}Ht_ff^!N;*5vHycXJV)a;$lpm1rAiu8xsTpi_obJ9kB{yowER}=fJ~vB_uEUH zKMoG84Q`yRsxr_GNW6;A19gMaHF~9|r#)k0t&7CYZ3E*Wqn=FFm6~Z0qXLbHNKRC2 z0l801M#OQ7anC0vN|_&-^S~ncWz#c|R>p6~g8_c?CTWsQB4mOF7Z53j8$d2Zr16kM z)MYkNHX5}u!ftqV2Sz`m)W^QP4K)Io`l>aOp(Qo&fK9FODylH>)hkRjvE&&u?=tgK zjrqdEY#X~1(_78wAxJ)5`wBcw?Cg z^fvi@=EGiD!hEpFyaltKFO2z?C07rwg_xgW>M_PqLN*3~mJ9Km>j-IgB!443Q!SB% zsdJvTTO5Im9EA5GVyG}Ru`q#wBAxOizkFU$R_YHFI>*l{p4$76#+I$su_q&5PuN}H zs4V!+V~@$dw7E=rL$)BwTf`lLU#bNigNF&9<1i+dMw!oXze<*;jBpgt^5!P(#A2c; zJei>SS-z{XwIYny57fWnj*37z5(o~yFr4GWRe1PlJUq2EQ}atpi;-6qojip9(c{uj zoCEda>dNsFSJjn9$Iwe)^5^18!7a_k1Z5q^u~JRB;ld~0uKz@u{f+qxalxMfOnHZ1 zkQsKh$S2FC+1D;vf)P0+t`(}Jb*Ms7b%O9H)dW%1$t^d`V-1^bog=Ml{O9nyqhA41 zCtoEl6$+*C;4KRH2pY4H>M27QhsJNUP+mDs2*PmC*M#NokGf~;g*_LDODElQ(Y{YncCQcKA(sn!|KY7-H zl^~2&wfpB>18K#ebT|!CEUGN4!hxqFNZzi%FJ@af}8~_Sg85<9U$T&Qn7#M6+@DU1|lk&_{U7}P1 zFM>*>JLVCvN5gPkFxR3p7npn9(<>Yvi!%oaZs@bPK3}J^JFA)}=H{6AUo_{Z;vpd- z2nYPaNs! z1R-53&g?%wf+Jm~%cUmvjSTe5*l@cPtlKL z0?`!xAV!B1tkuZt*>+yJr?FI=SRN=S_blG(2v;`Y99V^>mq}z!{04k2k14Ls(lIW> z$ou7w6Za&3jNwvgOeXE?x8AJzr1H>$S?Ksy`J=?$iMIwX&^R;0M?hmD71z#Lhzp*R zZ%aIxcohU@J1qc(kAvWfIam0&4Z~Rqm?KaYIT&s#Oozx$y(A8si_@_rbKq!~#+6XM zOyVJ)+ZfrHyEb=iqx|+_Xiw!w(XeB@VY>$#R>=JfCDl)5aEQS;32d_3GB;f$DQwk- zQ?7}-QpMonXaVp^Qfh#00a@q{WgnEt41Vj0oVCWaIh!JlOI9pq<(T;naVE%f6&SxR zrHR=X7YAo@@my#>sb*2h5c*}ALsRS?MMjMIpZK77gL$J=^{?mS8PnOth)2B`ra}39 zgXVINeNK^GNqWwAA&KC0^gUYS%G$v+{j=Clq@cgZo+EklX29(wp_3m&%G0-*CR>yr zJh?zwNGBIyApsqU%il`emUtMe?3f&u4N9SGP*&MY6h4u77{gM++d#@PVl^?xNe@bV znKWcp6*qeCf;F}aZL5uJ^7B_-xf0J=C*PB}Kk+1<I zkQ6>L6d;2F?`lAW)Zui%Zk-#(QESOSfQ_jD+u!z zxoMw6>5o52tv{NP&NF238RFni^lFu7s7ta8iNwI)5?a*w9Sp!fB@Udtnnni}3Rf$m zvkCKeH_e~!sl>&~{GpKM4{iB(`61l-GKi3R_#&z;c)Ii!DJEBFQ92dkElLTlm!+ss zD~M2;S0O^Eez*L`!~@_Lt;u5oT5q^x@MA*4At8yU7(77T5=u%Q={OOGiLl>KRMq&V z#>YhK3yW(?t9&cUvT90;Tg&`2&F)-1;1T(o2@w-M8fuFmAKn5Z0u!cl6SNAa_yb9j z?N|Kpkl~JVqOmdEu`-vxz#nRx`sci+e6Mzkwz=-AHq`uU`GLgo#CNb}&+-IfIDzC} z;|P);;71UX7svyN$N83+MvYS(!tzK8ffzT!=6CWUGGQ4?7Dl2sq{#vq(8vq&*r>b> z+2>`;1CKsBb*jJyzDO8At$&D^a0~dD-?n(os_@PGLs7 zqrl+kWF{N_woY9>apH^)eV#U0>ahIR#1TXh(deE{Tzc|ewd#A7J(HJkB_2!s7==$K z4xM~dEqqjY?xI8kmcesa21&Llbs8X!0rEZ#vQ3!)T;#3DA1c2z25i&7cTTzWv>X>? zPvo%j+So7us_cE70!iT)zbX(~3Mxx+m~iT_nr%tpSLE7JO)Z@bn&5a`2f68|E_3hf&(}T6PJ(0%>62HY- zyGVYRudEN@xOt`2h+|5HxAYh(u&>$33wH{C9PlQIt(XG$HQ`r}tzL7uqkZ4CSKM4F z{%1#L)6~&zGtrxQ;s(Jdm0+6HfHx8)Zib%u$d-!=@87bkTHMecYhOQY8YCronOG;3 zOL^d>RBDeYP#d6#2E%rw1RALczsGdeSHD#+nj#1@5q(X|k0MEQvLkbBwDZ!ihmHABs#THcd0lD?ou%lHtMde z7j^HDUYU5+RTD`Z`!O2VCOr)%7SVI`*~siRgri9f7?{!!S;UK>P&zpB{qe=pQpsQJ zsWhxGubwV`RNq@;EDD8-t&`S5*^(vxNQgEMvv1cz7@2xJHx^6?08$VXC^&>~%l6_6Jn2?~Mo zl3^ z6nOE66nFsypjarvO3@4Ec$)ZEz-XZn00W_gPWPLNT$vYY7xal2Lhy4tbKIU8wB`my z1FX3-i3O4N7+0;K z9%3Jzmn1C|p~YehV2?8@(2q{BJ4_$4cMYF$H6yTNbT8G{x$=_AHdlOK7o3m+(@Erg zUG;Ia7aU9Y_u8WYREH4+#vsxPz9yanbthGvp4dWz)O4y`u^mW&ml~wZZens%cA6PC z&3+?jkXpC&Zj<9TNQp#0Jxtx_L}INP?L^|eg6HHB(`NI2%zP{p(GEmC#q=Y3Uk+U9 z!BevWPYrk6jM6u#J@iRi-VJJ*b7ipZtxnO!ZFyf*yBweQ7W_zkU6Lyws-BLUUV5nd z!Fg)E-;MOwlXMA&CM@qNb=+~&Pmfe}885KBtCh1u0y1Bo6y5b`^`}MmJu9g{be`&} zXRBqVr`Ee!O>sg$;?wdAtz66dk*ejmF{)jFYAx?Zf83?J9;1GwyV>$?Qrn#b9Hl-` z@%lZoZ=jxJ)l~U~vpWpZ??oK*pq#P#he!i+&$LL>B#}3^56j1AUeO9MfYiXXXQh)MAM`wD*RHy02P6kI+p0$O0 zt5pU6J+(G)Z;Z|-dtfGbkDDA#_#^Z&66iRt*QtY-`83ROtIgKE+}o_~yUeE>^hfF$ z>ooT^s;QSfcdb6IeAW`~ZBqM+K1cpvs9UKyCi#O2phy7anf_cyt3mtaS-5x(eLrm- zxXeY;^c5Yg1MQzRE*{hq)Ld)yWiCQzJlDw@ZTw)Vn|@eFS{?r*Yc8ZzX3>ceMMuKs zUvA7j{8wX+FlVWTR-b<`<}M3mQP7y1bT zYwqE|z}KCDu`9CAM0LjMTlArTF~>tBtr_rATLL3qeS=SpViTb+35vo#_a8^Q9E}w< z=3c&Zq-%cBkuDjk$EgRc2k`noH021!SzUBRQ%-gGt1b7y6>T}`qvudgHu<00av?F9 za+RSiRqtxX+`WG_=BQAYspp+V8CN#uLRjI2F~`P|&Y;#ZW6kX?c%Hh#bcX&5iwA}I zXW`L)cINVoyh>ziEw`7VP|d>K{5k`DU)aS_qfK+^cqc z5_iW^cRpC)@AUlT%AKB+kb#$t(u`^GtmvSuRcn)iWv!EuxwnC?sY~w#UJdTO$n=^^ z?iFg}V$~UV`*6Mfa@WDqjC-rp&wihDP=Y|I!@boi{?br_SpDWbw#cDV3#^HKnP(Ot}1zra3ZBjdn`h9`G-nasFogG zI8?&R!WtB3nunRBRq#_2_nmffvC`og*EIjUVYS4hGTy|HkWS_Bw3qIxDw?q(iE(;K zj7)*@mH8>oxHM(#_?Np+vbvS{l?R%ucT|)%eT3n;MI6&Qq3loZySe*By&Z=Z#Y0=2 zWW8k^(lgiC@x3-(hxl%KQPfm7%k)f~dN?O6o;5Q(6-)7KyJURHxYE&fxLu-bWJsug zeB6}v<($@(f0V{qZ{nZXQd6Zo(sEdOpbk}40w>m6Veds>p&sq2o2WReH-*r@9FYlV z;?jwQ#|jH0t9Rv$GL-{EGQ7_{bOTk!>PDXYK;2+1^mlDr3!ScQ8AjmoMFVGQ>)#9q zm9mNiZu%0Pb*MFuXH|3eP4k4*tY-DDkzPG*{IJ-Rh$;=pBRzGl+UfWo5gZYU2ruEW zO&}#%uI%r;@{fdFI_^{?po0m0~LN*$#deF z>vZ9S@abRe%xvMk49sV7D~n!pwiDnRmOae(e*3ZH)kQ%guu|r86_@R7sCYjc!c@ZqO~YHxPlYP6S#P zMj(TU{MJ84!c6yfwTq1vi7gvjHYF(#6VE@zB=EYJsb?V}s`FK1azk{eH#@Uj)f_&6 zczH}tRF6rG;Hys=brS3IZu?6$c6A9Ia`=PJCQG)B};vs$aX4> z?B%J&Zs8`i%!*}_%WRp-#pHUGhMEorLODHjXQic15&NNZkd|HODR^F*1+LaMQubs5+% zrD!4Q-!8@JKcXtUw5HfySX1cti_{dvzr9+jZ2g)Op1&TrJUsuF*ncgw3&SgAI-^Z^ z7b}O)3o8fxT9ML(7qKZ@er|H&7a`4ai(gVPTpsfOB&Me1z8G7l0l~ctT|2Deo+^u zKDksC{`#bYTA>aW72;xD@*fLv1zq@s2_?MMc=2eRLiE`FBhx6zv`uE)rW+=)kbzf`uLIp-x8nqhWh&Bf>Uhq zjhh_xn#$A%FS;=${(Vo}HA){Wf4&U$XD#)Lilo;s#Iuspf3V*+)`R`F@wM~`e`eMC z*JE(>rd`r)(@71p(o)kZ7aJBaysN&UN2|#2VYP4ggN;A^ zi%k%e)NH{2-;=cHNOjRJR24tI{R6=^V4kl z5L_*V=Cr?!>TjB=!F-i2HxYF@cWA8Aj_tug=>bj)R%uq6L`6k~ghVApC69PLS0Nq4_A6aLrITvbEWi==I#G!w3twnm&VWViTk%{_m_k- z-_iJoggfU?xLtqI)728r`7Vjt&2V9uwDwn+F&KVgnrSZot}SL(vNrp*Fdd2&BBER} z%=C<~or#m#xNUYb$@Ma+m&w}husBwbGCi5uD`sJvdb4kxKBWpKm+DieceJ`omn#_i zzys=jvs3ZU#DAgAA?V?GYcnY}E(V?AY#8GNo$7piF^k*L{yeS+6-t<5tlz&C>!MsC zm&rA)WyO}!1usN%h*DkEx`O@p-mA*qgH;;F&YJ}c^Jhx7?8r?@r>&QvEEn5nSXJ4p zB%EarW+Ek@w~`PHa`S>#@t93a+#z&`1?tcqDTP7VyRrYa(3m~71PU=t&oxGWy3p{ z+rMPQ>7#0-FHYfL?R9pxS;gRAf*lfKF_pxbpk{_&)$i`=QHiCqn)T~5T}?p$db7X|(M*nD<(amonlDJAx2afl*E(k4s61oIIP1}z&F;#Z(s8<3-#Fb^ zflT$cUG{X`ki~lhow`_{mg`@GUoN3+S_-1X#l&WKSa{ z5YGM6CDTGeO4roQIxpBX<@!!hrAxGpZgq|8?P7`1Z8Haj#kDWjqgHI`%#4({GP=^J zp%3h@p_^DGqmydZPmAsql9Du5bxcSt=rFreX7V-Pv$Bo6cS7$&8_7~h*5<}1CzOt~ z#V&<06QS5ejBmu)ZIa^SEIUv$q%#+R2_HrkHXHr9T)`~ocKaKMg9@`-`KviqihUj3 zZpVZkXsb6UJWmG7`h6NEJW=lnPIx92^$CFIH z^6M=-n|hWNTlt;CKc>2Z8A|8%90;>XFH>} z%5ryZsfuKpN@N<{CO$4EDl#lI#ACJxG%u>N9hK8W7@S8H#k@P#U9rqD_)eA<+iXb1 zyLjo{+=Rj#Jiv1leiUDP5sF`CFQ*7zzskbCL}{rhY#?N+Szb$LwRCM~p;ibJrA;2n zF4PILFrC+qb)0NUv@FeKO{y@gL{x0#fU;e)!y@P1T&+QUZ*=K0QT@wxuj6hJ+0rg{ z+sGPS5}Tw~(qmIHqGt}b%EZ@g*w)qV&e>(}E7h#g{klwI-A3)~%$dAv@zFO%i)FrB zYMo|rXeGWrlp`PJ#wW(;P$UwvPR^#(j8;A#dVC|mKc>-yiH=u8c8cuV)trU4Lr%+ zGV3(brJ@o_wE1&oh>i?TFRA*3>4@|S`mIK4`orF*H+ohE5t5d%$c=pc8WCF zv#faNYxCH=&KNH?9j76vK1Aq}bGe2%IrgIB`55n&9iws7Ui5+7EM8=f+vS-m9^37) zr-<97oHzQCPWj}oeYEI(V|lIXJ9^8Mt+{cf6?2X0oMgVDU9y;q zHKWRI6CTDKSikzpnN20N+f)dYnu?hiB6m_#X!dcVULHsfwet}ufBjqOO0HSX=2Y01 zJ(0_1e=LWf*5@l9yd6wwzZe4Vi0vW+`$KTq9sT8j*#U(VPfm}Bi}5i3x^#J`@?ev$ zkdQ!Tt;vRnfow{BT%MBAnS-Aeax~qW97TCpL%FsUkBXsaY<*4pRjO>Kj4oa3+&;8* zT$$QV#S&ej0R>^LhUwA$T;Wli=$hH(Ge!;V@!a@Dp{81?Md5gw+?S=x)2?{dzW^#a zif+E7GR2Fr?$+$T+a{KAFup{=fm!fHZ&_{F8Q83uqWrV98UHi7#J}Ka(UKqzH^KS` zC&qBZvEKzP6-vq(LYgsSj$9{}+4MKK?`N-Go72UIPF5e}gabk@US>>WjMn;5m zP^IG8=(k6`T9t;>Ni9~QWJFk4TtdynlxnrQW|d31HX=Gcv{+OzK7|??mO!k3A=c;g z<5+}~a!aSCB!;sLsf1Z=Oj9z%BDWgz$LzqJLgZA4R+NvHW%qOOehW!i4_JHi!4)eK)FuWSc$WWPmM0!y>p3-L={IJ-QG%= zd1LgfnLX^dGIbl|g`}F7gIrdOZBx=^LT-3cVoZeXw$h7*Ss{g4vn=n8=2MksuSAwg zuxFxwK#iIK>CGoqooX5Tjf$H=n_+)(?^rGYx5jSC4J*gT)61ntl=OrpWST`d{>`mT z%9~8ga@$m6;F`~;5?w6eug|3wbd0zw)D;;UW#=Wexu#-lVcw9@w8KXsIKuWex&8R2<98+;#q5;{O1u5iw(t zfU{JtD=NAHgJuvsfRTC#c%@xzneO@oPKvl+CTS1w9j9=>9I}+p6RE(9QGo_Q1>#cS0Gt-7h%PFk zi;C!?5;9hLT_kfU_AkpBD<2i6F~IxqEg)mn^{`E(+N&a2=qU?5Wsxpfq-z$>WX*yn zVKaOH#3$=dk?O>=I`ORD0Y<>@A~hyK0h^Q)-KMgzhjF zX2KJ&2|g5QaKA{yb}&Yy5n(qXY${7>Ocrh&3t7+#NSnsvMVfGIGEt=IK#^uEMOvWm z7Kv~TTnp3SMc4_4fc)L^W06)bi?n7+Z=2O3dF1nU&7q%2dvwvf$(O`5u_&1tc#AOK24&m9M z#CPb!uvTPP9q0(?W_T(1Mr6cfk!v-?0sdTjPGn>xRDveZ8_?@W(q-ghfZQXIdn9sS zhuqig6&Zz|M=ui@bF0YM=S9Ym{^OBi$MirhFCNb8%*LIXgz zH<8Xa-6eAKXpvjEcFQXw6DmV9ApIwh{u6k1!m}b1aX%6F6LEiQ4*V=KDFmhhd2AAC zIcYn5EixIMO{oEGfcQ@#k4z!_Dfn~SQjw|aMQ%sN+dmeWmMd~c3HSi>_LQ(*0B(bC zL}v66nP~%QI;#bc_OsW*d%*pBu7?F8_mWrcB~Q;q-nqy-mvH8NCo&(u7U2H^^2S2a zV_`=izbsq~__dIHxv)UwfznVF2;;%)D8SdiyCRET0%UyHg3sZE$Rm^ki#cD+`D4iT z*jsQI{uFtZkOyAd1g2KDDvzvk)_DEEEJGu`2!-) zO%_=(LgabESxLAn<3(P`5?MvstU3UvMON<;S^K`oI`p-kXJ3R3gt4KF$VPO(5&2(= z1Khua`z|{`&&xssAn)xaPJ2kZy~JfN`E6ewpvx~di+uSkY!KOx zehSno`bC-M^}jCXNmlP9)73+=;Vh7f$)AHjAN%oj^Dzv8{%+c zjL46q>5pZBc>VaA$WI$Zel7>Z>1V?Ir9PYxIZ6IKWdmt*iunA>bHC#5*M=geTfmb* zne^KTk>7dd_YXwQ>=HTqAt3Zw^7XmKBIlDuE~LOQkw3|61;|){j0J;X67y_+6ndAy zv}vxvrpl#l&<;}^%i9`7%dj@IhhOL|_W&~~UCiTmvEI`)P?Wnlu$nrg4csQm^EsTL zivb^7{M`u8I%#d;9hu4 zROB6^qWX)9en3gJxTPiA^k18c_ zOyv0_WK5?0lPZAw)PthZ_5%|z)59PgSl*fbzNidV*Ou)ls+=2=0Jr5AiK+k<`--Ym z5gG&GS9)Gl=4SW^j)G5A`S2WU6;+!! zWIqHi!zZHZHWyWo@atVGDrdH+`ki2qs0Qezp;uHRbdp;G&WLIpE~*JKHX*&5kX}uO z!&Jb(CNID?Ko3ocV^iYT6q%aR+t>_0n-3AyVwtFx$lsdlZFa&TI4>$M3OH}O7+wVK zwJpHj#{c%i;Aa-Qc80ycdB+e)hHOAzod$^N90Ta6iw9Dm4iK*{#H-6RQC-VJBj~{b zV%9Eps{-3abw`%&$k=_9s2;fM@i43v)pMk%UbL-xy(X&nI8l9wPoKKb0g$QBWLO}o z?{QK6ZxuC=@CR)cHRL-{!>a*djUb#6Wkp>}{6~_8*G&X;d>vtoLVu$@3o6Hu-4w^>DYSyO)Z(=VSOr z)SMOYChQe;?_2N%oD_B6c~SFhSR-ma={f&7*a|#1KVQ@WWLR(jPKdgnymCKz<$ltD z`c^Gm2k*jHq8=m;4-$umN&<2&BK;P17xnONI3wzj;=r{>a)9)C2X&YE?HF1=C@nsMX|^)jm;cN&&L0*$=<6fWZsf z;cNI^)H>q29=X?3#;hMK>P7Umfppps2bBOFY(NJa#se~LcnUU&+W4rbO~|w9URWY( z^DvkUbKq&%4CLjPb_3zQd|uQmq}P^Lfv~rn7WFE5`PD{n1Kb1n{VI9pHFWzraeCt? zQCoR-+YnK2q35?q-*-sgcd9{imVbPag1l&je9> zk#{fh?nSqIKZbl!U!=ivqQ2}6=xhG~!0rC~L>(ZW2fD!+QD21vasQh82WyJ@CJ~79 zw_RYQsPD+P-;IFVU?FhtyPa@c)S)oQ1Y|pO3!wi)t3`d!@$ghpN08|#anC;~>KOhX zyBQY2DpAKL0eU*V4EBjS(OuM!!vTMOiUR!osVVe<8~J7&@%ZH$cwf}Xwm|+kiOx^X z1^hTkTAo5Tr7i#nex z>Ow8}j4esXpMR#p6QT;pS3czN?WKn#8;*%q57RHnQe(EJ)2wpS))Bf=o3iI;W6|!V zbPF-c>^> z&EXwjUUB$g(IxMLbD|>{p^S)wO0Wv>H}ZA(P;}HNz-{y}I3>E&1kt6Dr8M_q?iL-( z^)kKTI?-`;g|A~nB;Z$kJ@{F4BHcTQD@7;W4)a7O)6ts3hksJ1i%!cCo$i89L}#pp zt)j~!Z#kYV*BS7)+^?d`e<8ZU$D%8q6kUl;WHO0cfEcpQ7s?6n>wPr5xXx;uLBL4NAd3y4!s^wx{~){A`7oAl}(C%R8x zz~8>1aIffoG4P=1{^ZmCOJF^0gHIVFXa)U654;TsZ%{g*vmxkyXeoGC^f1C4-a_<< zPNJ`^EqWw+9JxsJb;ve~utzn59zYt6!tH3%ZwxYytpUh4E=BZs!We&A^!3Eyh8soS zh)!=rr#G7O>7s8c4rQT%=$nb}E$Ds%@=r{IL!xh8E_%{H(UZv+lNXDgk|_GN1g2X> z!q1|oq5o;4p+NK<=>5*tqNmq{J#6p1Q1o4-`K()DCOjc}_5-5t#?3t;uvGM%o}%w1 zzV~KAQ$WA>A;*0Up*xI)sqhexXYboCdM^5!%d>M|gWd3>=y@(cwt2`rk91!^JQjQ< z`u>|mFC<+afCmZV!S6-W9@mRV`-iU;{RsKtkqU57^rM8c_#M%Y*MXCwpCDg8u}<`p zJ48RtyR?M#eC9gQ&khp3lsGL*hwnr$ze)6S8i?--(tX8a@B+Ll`uY1|iD>F*z497( zL-Y%CM6b#L(sk7c(W~DRz2-yFYx}{CaJT4n8%3`->=gYXZeE-KvqW!b1LU6#guCIC z=#7NC@mY99^d@w&iDx#GA6`PgFFh@qjj8o3q}3}tvt^m+SML=48oW;2U!N%Y4gB6p z9@=V-w*k6+bGYbjdquzXl<2n?!E({>5T|#^U+*;&{XY3>2Y&7>0mlJ-?;;I8coB93 z=O2<@AEDz)N6ZmJ$6;Rp7aAcZoh!P4xFq0%`dDyP^;85q)HX=%dJ&kK8|y|BqFIT<8v5J2pl1 z@mpaY5SQbx!3RKIIgTtR!bP(vRsR?Rb)f?cgUPT!^iNfwIiu8rg`I0epL79f_G=B% zr-{RF?M44io;gF_I5SD~+0KC5KN5gEc}?nR8L+=kNp=M*84oof4~D>GSO_b{ib#T`uu-f?{EJF} z4Pr$jTl6zxl^Q5k=?JI@jiD0^5-Y|FgcI|ISh3HFRfcEF5U( z4O#;7#Z7>DupD?c?jYbUJ{cOp0Jt5Vgg1b=Qa@S=A&?B&&;dpO?h+Qk8h95D!Wpp= z!=XGhf*vpqX2Ej6UE)!(l0u+7w1g2b3!a3{@DUsZpIFH;Pz`WLooppffO)VS-hjRE zvsfu1kPO+-0Y<>>un5+`yKoTBh?N=+<)IPufN?Mjo`lWt5gY}dSZOg(4O+qoz+KvM zco&X}l^z1+p`}K(D?*r`qQem-J701HsVpYn4xngBjSdReeeten1L)gLTY1M+ACWNX+K2*1%Lv2w|8 zxwpdIfM1O>#A<@fO%j28-Gn$d82~rK9C#YgW0McyFq{{wX%u8aQ^3Eb$lerpO_8PP zSAd&lWq^1$>jvnr*+SqQY4#@Ug&)OgZUOF^6PM=1sX5^`p8)p(?@RNS;Ugg2=J?ry zcc(=~Xaqd~8CyIE8(}y6DppI}w8X!b?O+rT&z36y*;?YJ<#DlEDTsk8Kpa~2f^l#c zEQS|hCmaI8ZBq|A!?iFK9so8}Y_k>iz)xc3xqjZ2>uR1KSR=>4j|_cCDet_y>B$b=logFY|{ zCc_+93@c#^?1cSr9L|e1Dh%Qw6LKIA`oJid40B*Htb{GF6ZXS#I4{=dFo=gt$bmfQ z1EXLv%z?$Q61Koj*bm3yyjWwxARc(9$56(MArFrw4~-))jJqJ#c=FKoMd|g ztlKHmrrjXc9ky6^Qszw00Lq&gw~2KZ?(ZV+&g=k3#loJqW_Jh`25K43PifZg57dN4^m2QDj{F7JMVtWB5aVp7q!icmy^9&pgI6jHy|V zQw}}e5{AMZKs+Ab244d2BScobfNFX5b6PsTw#=na$LQFukHr-AUlz9r~>$yTwR*(27owZ&S>JHPa8Kv&C1hh-gs_j?)fSzZQ40BQK#$3VPR zybF8bv{=taz)`VQZV~GR^2rN*;Bg?_7cPjkisx6=0@7;LbwE9^>M6iIV}91^OhC`8 zhXK#6-YwP|^3j?k=niw?IY2LKkZ;ZJVy&ee_LKknN&v(dQ+ew%0l)>A-1oHRxb7H+4D%N{# zp)ZVvDR3`51~0&?unP{r3AiBE`y6*H7HcQ*+ljt*wF7kb;qzjBv{bB*-x2GR(PDkN zT&&L~iS_wJv38Tc_S6(>?-H^0asI`faKBhz&H&=OznNGEW{P!?^!oeg&Y8$S3XciT@8=`++q6fv|rdp2v7kjx~U5VS!l3 zt3qG62S|tGGG;T5rddRwfYTSG4x3FNb1NZVh|igl8(Pwo`!S0&bI z^2KlW0_pG@Y5sd#AU?mNtKUi6Go-^A;(VqlbOF-y49}d|4DSN|o;fPkS<>n(a-K!b zv&eb&X;=qu0_lDBTR17!AB6cw1f)WBXbhcT5Fp1N#OV)o|Hp1PEY>;Vb1nyl!#p5w zoLeK-`ImwCUdV+H;488IB;5-3i!Il|B)A72g?Hd5C=gqffFx)QH^Gze9_)jBI4idH zKrB>%I?xJw!nLp(PKj-0!)@@P*f##zvB*&7R#+%@Tr|7{@4-IEhqGeGbB|9j+6jGOo7jo?kw`d6%!*HH2k0Z| z7qOF@z{6svAWI78DV^ayu~RePY4}y_G{Q)$4d^9p85|Njy#=6?jDEoLWy1h}%ia#8 z4Skq)IhI$Hn+T7HT^|3-?-sj4U6>9}!E0hy^gvl4?24a@U8x*2g@N#f*qJo}c``p1 zyK+nLiCu+wRp|{A-~sqZ?5bWs&sD2HBX~mWYRFV=nAlnP$$Tt33puh*i(Nexh66gH z4P@8AzZ%4?##dt3EDx=KyjAlt_*Cp#A%H)%4vT%wXn0cW+M!S%CIfD=8$w5z5BXx( z$%USPKXsFv1kiEa-^8v**!9XlCXg@cb%613 zCy<}&of12TY1=u>HOxWBIqd=65{Vn2sa0J^`n7wtp7ZqhX$pf4j?1_ymkZ9 zr(qVX6T1=V)MyO6EjBal?OejkMW?ysq1-({92*mE;}k#-%muR>-vskv36RGde<^m8 zkx(FZQ{vqeH%*bFS!WmrABo+ZeAFC2TT}&}YdJ*hR-Cs&pRI^XYvgO)2Z&FbVqlIZ z#LgqEyg$TlJ5}sp4>9inQ`=)-Cbh+@B$C`(8i#KJhqk&0H^fZq>wJa}Ddm zZh?DH1^>4&+@jPu-;e5q@B5(Nx*F@x4AsS@_7k3iub!TU{D!)cUU(k7W{%?}M#o4U z{T$~WiO_e6i}~B(&e5EMRf{+cm1OH-{7ofp{ryLCei7eK{&Sx%a6EkRUeKLyvAR#9 zRoB4p2EJF7;bz~hs*7)no`v5*9^{3`^Q$pdH20Lw^&K_Hd1)Fv|I2X^{*062I!Q7wgP}g> zT9v}<1CYU7E9*Okbx~SV$~eC#N}M(6C1c@$_kU;Ogb3-8g~=5=JiC25jdl!k)t+}>aiv5K@*s0K5-vj$8D>%okiJ#Z%#_>%szq?A9 zRWWdGerJo<4&&G=aLu^ox?Ku)NBu{ZO@xu(iv3@rexMG^7EwohM<_#!vrowpolY5B z%2!(r^UYN6kSD^4Z(+E;KXnqiYQfR+ZF2DXwrLl7D#q%VVZNmXYbak`ZiE|yCXIvV zMUVKQ&iKAmzexq>__JiGFQl~dn{(%x2I%lR@=G;FX^_u3n)9M$N=dzr_hY?8TWuK8 z!9w~gzH=(t_XV7SJ^uT?gGJnF@@wEZ-y+KP2-Veh0k?muNZ*`G7=T`S^98UzzL(8W z)7mNo>&-bY&-Z*%q@+P7_`X)X#Y3L3)f{upx6HZsqr|9R9XFx+GmcR{ALV>WbsC** zkTPn7?}FaP_ld8eQ=tP{66Ho(@l6UC_k(& ze3ob)ItJZ>chx!f}@0`Ct{cf&(>pN_q1=>7#e)&=N zAU}LZ9?CcQUBcB}4%!^87Qx@7IlpxXzpoEo<9C~j=jy2MC(1#W`pWm4y36++ix9*0 z@8-VmI4kQ)I*cN31<(KOaX!ypiOZjFMmbmXnt4ytARe@DhdxbNcNtc!x#rue+mIe^ z-@Dp_tXCqo$aQA31>Ec)oxcu(ABE>?d*FPh?|^gP=+%^+ChwAeoHXEBbpO4cLHRNU zM!~)C7G+I)XbW7|&jx;*^Y-X;CIpWziRAq>_G_dLC9RK;hlX=r-j}b#eOoD)MXmDH zQKz}~9pzqSDNXNzTg{eI>K5N5-J54wIZoM~s4H^LXgAl2Ynyh!e-k6))%-t!+(9ZJ zQ;;{1zme~>PT-n}_us+yc1_%=f84xVX9~{`;z#gayzfuyBey|)M0xhNP~QIS{mY&| zOgXy?n}0Jlf8aS?9$5^Q?+1gr!27$3-`mkYi=B&}^ZrL%l|0JSZ>5s%OPT&TZ3xm& zx24Q5#{dfZ`wD1PhWD}z^*|Zw3dfE4ebKFM5kv}@ntIX0_unBY5T+QLpd-n2z# za^18KP5Z>O(els{SpCRPrVT{G{*cE(yjZJ5W+nd&M{I2cWVg1VQSl=)D8^SYk-Aa84 z_G;|8bL7>V#AAIDh}(0xT?ltd3H=8$KaU>=_`MR|q+J+{OR)VmhQg^Qt zwpYTw0wb%Vv+4BRY&W_lemlVQYm7oqfqp8ZTc^ECo3~KMre7u4hhSt5f)0XubdLCC z(#zZ+4`QS2_##`HJbNT17U;zfTB?ZbmsTOf_BYtZ4t zw7F=vvTE96z0UQ|iO&G+7L$giEm)VfZEfOZY$L-;?0|ZgwtuXW*bJuKQq+bShacF= z4w=OJ0m=s2pN>sw+UwYm#;!2-bkJ_G8d857TPBWowUghrwnhZ(FZ%uTNZ!YD=sJ}C zmt^cqVB)5L__4S*aWU77?Pe%N zJQ{N}ajA^$$Y`8?-dA8SZ4RR|zSU>z@#x0r<#vce*T12sU>n?N>(K@=?Yy9lO} z<9cu35vvV4tjRrNe^w#SR6+Ok&|^6DylDsAf}2ymPdU%mS=4u$d-Q%=mB?>PX{(#Q zQQGuQ8EWjG3gp>018n1WIp4ORonekvP2Ude@h>l_U+=+Pg8*6R&D6!Fj5KwbIhr~P zo64ypT<8!iL1t4fV>fE*VC-eLRUdbztcinJ5^sfaEscDT%WqS634ZJ$FZu0@3&wWP zi*VPB`^mg3PjYVT&7PF$rhF++c~g($De}}5jyC;K_Yh(yFlE! zT7anPPC)U~neg7!=i`@rbJ=&}&}Gihh^Mx5s88pvdH97p@O zz;_P)RN|9X6-{2{9W&)e1pQd?)N6l|H@+rsf2}uieK)!^c7>@=Nmr{g?#FPwEbqEW z%L$ZiyXnj5YU1LnYx-`Tax+j@>2AI^o$}N4d71KcDP=n4uG6P$`r%A{WXe&K9;OTp z)Jdiv+o_W%$E_~B$EM8m*AKSNm%jRdbg>3Y7xF$Zh;K z{??})KEpMU6zZcl^=7WqmuK~nR_18ra>~&Tl(9ypUergNJI8OOoBmBkT03Q&^`1<& z7I0k3@qU?L&4W@hQ-5!EXD>3Y@ej}FUD8SKmcG=VouD87bfS*!r+;99{P)t@>dfyx z($}sgouD7>hfa11#{}tRAkNoX*U^Vz`r`k=t@=eesXx%!2ZZ?nVZ6xkb&jv_g$_e; z!t_XMqdNoje<$k}!fs2LtqC)dV!*WKF)zk9hoYBR^P+{C<%(W@D_sb;~;vrs-28ABE8G7HY~p#ViKexgPqTVpSOZ zSamt4&q&vC#y>*T>-2Y+GPf(`e>3{a_LGNtQugoXS_bdsNeRPNebT8Lg?^;hHe`VK6QK)1yiE{}QUP??JyGd>QbleZ`%K+&1LEzQ`ebt-qdY< zg|;})_}k(aocqB#%J{*3BZE`V5T-I^Vl&d*)Gsl}kw9KGN8G9dKwCl`<9)k;JU8G5 z*^Qjo8VQA%@QwU!z|;@;;ndC4*OcdOCmxyDpTTge$<+stTU%yvw%Ldc=pN=LE{Fg9!T={$}%$NkTk(#P@)K~54J22xxw0W_8 z_hD18B#^qlzQl387-`|c#x6^nFG}se#&A;)dwlQdisYFX`cRF#Z?IvEyByj|S=7;4 z*d|%N-{Bj$04KQ?1KD8eiE>aJD*Au>KEurkILz--f$J`gaYjB9Hs{9Q;%Wx()(pnh zXHZVfU@T;Y@AJUX^gX*d-vdAT-AEEg7r%dplYyg;Yw4W-$}tqmLo=uh2@n%FmgU$Q z%0L!Wg*>PMJn#5zj^??JkOJBAqOS^dVl!(?A(aE?34x>eZO&sZyKb%}U`Mo8TO?Io zkSTnSG)DE66#2z>7IxFFOV%HA{ylu_d!M@Xyt$_i(NFQMZ?}3|+R^9VPEPsu^1MwM zP>QnQZTgaT%3=EX5792;8T5R{fV^4s@0U<@sr%}o$GQ$5(+A?_d^`7V;(llDo#*$b z0Y2oui}QE5-;Vp4L3eymHI#5eDd#=r$k;@pf$JstU6S*3gSk&ymT;I&o|=vSv{e}^ zIYBEC%v( zC*ouJ;WM55iG0*qj9t3I>Hlbp{ut|{jp?FIT1rpGrWs7$%)stkMHwFN`^jp>yPZp$ z>>vF3SAJyi-el2_o8`ztUU%~SIU8G_bDyqh(gzuw`kOS&!j_xCdywTj%`t=D#@*$9 z{KmC_AI1)H{BQ^SF!oM%z>hxyevqfoA9>ZuV>8jgENMbIikeQD5X<}Sh7j~)j&Ahg zHt#+<^pFm2$|x_yVi$#wm)z)wXRL|R5aQGv-*{t3nzjbzq!%|oAw#mU1xQE2r1dgUGGWs=?hv)#N-0}i? z=lk@$=je4CnDULb8S%=(MxP-KUD49kxPkwTzrXUlDI7#lW6G9fhwsVz zB_)ae!UAi(w6vK!gneAWgkkTK@vaTh+x3k+#&HI-%PJVZ%=3lMY;6g?g(sO0Vqp;1w{jGiE6!d= z1;25Qd*>PBkMZ*sV7^{K9~cHaS1=JwT#XEOAy-d`1dHE~!qczP zYdM-YJ94T~zJu}={n}r%r_y=a!^Nq)21!4aEn^t>|5~A2`CJCl$K6kk_}-Hv(m@TE z9%`A4QoH!HNKfjKUDAtwiT-?CyPp~cACfLpq^qjsJHm4V)pqGFJ8?f+#;WCVEADR& zJU52t#;X_^$GtJ?0~w(v%P`Jw;F)XHb+Qnig9mXp7OTYWC(9$e=~1^*8EGF+;-~+wY1d{=zy%TI+r5TRYB9x9izW?OR>dN;FDr zlXy$wg2Xox-%oNSg(pQNB`1|ls+N?U)HtbSQoE!cNqv%rBwe3$Ytmgw3zMEm`Xf0c zIXt;ka$<7%V8r^KZs zrKF{lOUX*9m(nPuSxTFf@hP{a+@5lG%G{KvQY(}tzJlU^Y`GyTJ|Ys&7ZJiPLl z$~P{*Z~61fS1;eZvdek81$`zJilbX<6nP4rZPst-?Rtm)5S{JO-=H%VdZV)ltF)DF zRkLbYbqjSi-kN01KxcEU1=cgx^VT|RhxLmcZ)Y$~yP18DqqEVD&fZSaNuf!RNl8f= zNmY|-C)H1CmeeMxV^Z&=fl1dTO-!1WbU!+KDp`^}$t9CxlT(r_Biqeoz*SW*-a^vQl_QcJfD2LT3@^tW2TKhN81_g*qFG&aPj6H#%Fjd_6kj)!>g>AcWG9e8=8@!9VwB z=FGju`G2MRdG~Yf*rpSI zp4fYg8sne;zGHvAqdSk5Kl=I6%13u`{@Ky=qaPfNKN@$m48JJxi~i-WG{5p4dGlN4 z|B^o{zkYsXezl_qjvl}@^;CXBehU9b=9lFE&?CR)kI%n8zu(bQ`8|)ik9v-rHP0VS zfH09GC*bUn6GwI&d4V(9bVmjr-g;>Jq31oT$3jo>|Jl$BMO~Wn&|l1T=ghemYAWKt{Dq$IKks+zcW)dySMk~Z7y6U&FO)nL zdag)F+B42`v*&ux8{TB^B+o6LS)SRR5#A8bXwM^_8$1&|qdXIcQ<%57=SJ_Xl!j%c zvRot0WFU6TIGMmop}BIuJRwVDEo0CJX+~v8}Gt)cUGbyw< zpU|18?o{`xC)K-Zhx$t8s|(uJp*lgQ=^DD99->F+33`TpL~qis=xzEf{gG$7_YTht zZSuMIuCANvnmSwe z)D69%y1QPcAJtFjr}W!;u-;Cad@SwF?z9iaNfp{BS+onPGndJ<$LrCatj}BCU9FQA z>S_AbU%-CBhE+?bYd@0V*d5oYPh_O}7`x*e?2)hKZfw`P7<-sRT|Sf5SJUWoov417 zIn=@P`2<0TJfOqm5gj3m=ox-gN6F)idOgdG(&dc)EY)SPe^)X-^Z|VnFEU2EgT9Y1 z=(G8b`PAR*QF2IMC&!sj{4?{@f5P7Wk+J@>v|rCKmh!v4OC{?KDqgQ;XZ6Qal73N@ z(W_O0UZ=|GS5;O0j;f~W>W@{9{!G=QZk(>BNk!V&ckorHh4L9K{kyT+8ezRZsvg9K zIgRZy*z=Z*!ge_-vt+g`&>me}7n7&u1uXB4^0sa+JDDr=l^&$7QCdHMMY2UdC%m>2zw ztYQXc7_EoN>V$02wUtLduEO=Rs+fLS71v8t3H^+EgFfY9^kH0!O+NvfX+QSdhcZvQ zs77Qa7p5YK)qqyQx{~5w%FYq_(Oz)r)GQ+RXP?mHJeDsoJPr zdZhYZ9a7(^bLtP(PRHsJSWcyMs!q|#x{9uRa?p`g(n%9O@)hqg8zUQ4JuEyWs?}M zYOjZ?ed-JKn0iP(p%>|SdX{=$m(lU+c6FO#?jVb&a_uH|E4xjo^8V?)5ZX6Xdwrpy zp`K7zsO2pPwL``GhxfeqocBrZ6QLoY#X=)OONK^%1>|Uv?+BUvwwBH+Y}-u5>54H-`M_-sIlw ze#x`WbuKhFw23>)v(_E$F6A!mj&+xzhK_T`yVttcxz|%yuX3+&zu;c&Ug=)r&Tzls z-s&#vF6S=qe$&0p{kl8Z{jxj7{fax)y~Um8e$}1se$D-s`)&6-?(Oah?svT_+!fvL zxhuId-S4}1xGTG>xU1Sd?4I^CyNf;1o?uV1C)-o(o9$cd+w6gMKl?iSdb@+&(e7k- zw!7Kg?Ot|oyN})19$=5MN84lVG4?onynUm6lYN7It3B1e-QH(^VSj1wx4*Uz+TYoS z?C?sP|8AeP|FAFEf7<6=+7-elXuh$(b$RUrF6Cmlknha6>;l{8a@#-H zN98U1jVAt~mRCSG>K@m0&;MO0*wzCD{+T zl3l}G!|g?`RQnNEn*FFN-CpdXuIly*R}K4lS514RtCszO>l#;8dzGuUz1o%S8tJ;uUgN4` zuXWY6*SYH1>s>kai>~_i23G@nqpP94$<@f-?8>!Yay7PJb~UkIaW%EKxSH9ox|-Xs zxmwt-yIR_BxLVm;U9IgmU2W`bt~~oKS6lmSS3CP1S9^QAtAqWntE2s%tCRh{tFyhs z)y3ZF>T2(Db^Cvuy$76D#nnH4dwF(QwzCw?!YU#x_>}u>QAD;qbXY0EB4r=8!#1|i zM8q0Iqr@0uj2dH%QG@z`CAJuXy&DUb7-P^7V+-?c5ur|?(!0`I2%7w_YJrF~cVw|1#otlg`Q(;iVz)E-h#(tf2*#*g(D z!tOa7d*vb6s|{5fVJAt#hiw&Xw<}@WTnu|m1I|pB!sdE5d{&mgW_t(rt#>KQaPB%& z{h2Zwd(JuPt=OmDhCS&m%7yR^K41M*`HfbsJc=`>UuqS~1F-Wy2pj%G+GOQ^oZmhU z|MMr|XYmyFqEF-e=m~9_nyvjz&DDOc=4-d9h1xIFVcIUWNV`KV&~8^F+EZ#+ds2;Q z|v^VV!@jy2bsXVqJ0TJx<1Hhz%FHf{X$jP2O29kNzhjaJfHWi?sNR*ThYt+yxI zlk8LMupP0Z_-!xG+H9R`ZL!X?wp!;~7g!fsuUM~IA6kF44qN}UGwe)zxIMx?(H?8Z z?J}%GPq(I6XIN9MDy!P6!HWJrSl9p8`qKK!hDfZ%))K1$tJAZsW!7?Qg?*Ym**@K# zVxM78wX5uE>)X~g>r!jGb(wX!^&RU9Yrpln^``ZP^_KOT^`2E}ooba^71n8?TDvw> z6FM_A*ZR!*m-TP!2!6I}rZvl2Xf3kN3ME3*Lo@9xd#Igl=h#E+T&u%cZM9kLp=qHR zp;`7g`(%5(J;5GnkFrm)ORY`TIo1Yiqtzdp9hwuGXII)4_NjKcU1P1a`mBqvE4d_8 zAF6ZibsoU_`99~D&JUcO&i9>boG$0*&aKWZ?nUm!&T4mzYq^GVsk7avbw|6Vt2^gA z7dX#4Pdj^^eOPrr?)JEyZkOBb_Pf3ATDQ-=)Gcs_yCYr4Roqc-wma0l+}-YeNBN7| zr(Leyub!;^+Px0n2>VFes0=DQL#@i?*uRg1J>@0X!Lev9Elw$mmee&A7tgw1$vSgZ z%382=Ny;0U8rRU+TD*PHl9YC0@&QM2l%}SVRU=1_PALs3rKY5I5B3{1jnxxVYH6yt zv2|ifD=ls=PVKEv8Dp338K;J7>YD0OR^5`(DgDHT`DZT~T{3#)_9exs`g)+IHjFGz zRWPWcp`m!UpiVZY#sNj4;uL<+a&#)pDEHPcDF!#&lf|h}{gOstidkHUL1hdoYaH3w z(9ke4rA}yQC`l>xOIjKlCZ_b#;=1CLabgmjnKkuGQf5hY$||WwJsMJKvd)r^{^ z`we9kNWkpW#s)^xSj$;;O83|qN=;q$_|d-X-O{7mA|!HACxC?-)Vr~`ZhJ|RwF{S* zGLp$ORXh?*N-ohlCCOS*M8^M+Jaqz6A+cYz^hBAg3zbywf!PU-J+fqU!}!q?Q$tF3 zYg%2ZIaxa~l~sxg6c?v5Yi6=~0Vt_%NDX13`3Ma`Xkuz8vdQKmDTV}^z;-IDrm=W? zV{s}ALYtV%E}gY-$!?>$w&8@-kd~4S6H_^*v(8*HYk@$H91VOP$LE&rR)*FrTC#iS z(3+H*tWFJ`!1^qDa`o;^b{m3QN-ac7==g=C-K--+Sk>FnzO2~sqf3xX!srbwo+ZIh zV6hFT$u#gk4cMcb>VIg!-T2*`5{S4arA*nQsw(ddd8G=zDOtC0Nor_Gb#YxP1D!8a zf(}<*+=$}u&B;-fETy`7d*kk0YeMSM2_wfqO!=r=-h_#%g3{e8dlo{@>^ZD-x6YnL zrMnIG9A3KHWX}<$yDjz{S-RV1&rzkj9riq~bhpc%CznDBLhdQ65fUybo|ICTvjH+O zH9jq}(2razA}6Fpj`bt^MC9?MN@~c2|3m%0h58*2zKT&l_8g7+vF8}nk3CCJKlVHU z^<&QyQ9t$^i~6zWNvI!tjzj&}v$V8$G9Nw@OCi>r#^M^ZZ6oUoNjy`ftglWgO--DT znut+&3I@P5^we)0h9$|05~dOVpA_hZ6H{ToY1P8iDdTtJ9mcvPP-LtDBk7X)dUUk3 zIL`Tvfev5L|C%;{lKDpV7+xv7hg&;pr<7Fej;aN$avlT#j=wQYBSuBCVqz*@I%(MC ziK(*xKT`DICXkn-O_ahDizgLNVDNE z(NN74sRNyia#3U3Eemp(OBBU=I-TV>h2Q=lj&F)1ce*)>b*M`Fq> zp4>2L_arqR1N4leV&{*nKPq@dVa^Is47iWOh_k?iDZG*rK!pZ+tKw{|Jsfr z{Xg-B2A!0e1Qu&}m09yh$k!<9Yi3 zfS-Zv)cm|u95gdaQ{{NfVsfj4fQu8DSEZz8m$ELLngzkmDcz$ewE*S~4lORd8wPQPTLMVn8W^3*a7!5- zht6hn99qWcIJBIVSp%{atV{;1WMwj-k(J4SB%?_HSjA`<(8OpM(9CEU(8Bqu2Gq*= zVo)3Bi$U$2F9vmRz8JKc^TnVwoG%7-a=sYU1sR{}H()mprKTXFM}TJl>}5h{WT~kL zt;IA7kkRxBkkRyW8WzE529WqPKi5GX;wjb%kfm5JKt{d+`J5)Q+$casut|W7;2h9S z_Ve4!Lp;B81<1&^2#}GVhm?~=ep>~|2+kKEBe(#xr~CO`$U{88iv-BXFBTvpzXT~y z7x{f#fQ(?902#rhrFXlACKs#K6H-n~N zhwaVXn>97G*WQac z90m!tJ@{$PZO(wx=*)IbwM$_Pu`|ctuYPrL%J>du>e{=_W=pB9MYaCVe~&4T!6v;8 zb_ISujdv0b@iXK!d=Nu%Pbg2|bmR(luB;Wpqv1G~LVFILQsck+=&MmYeLBq-S|RWO z)fb$Ohmli|7wFP+(@+08o$}^a5iN}lzIG+wM28*nRL~`%6^b}_|4^g)1T87~fV{F% zGETt_7w~ns1gzo|m6vj+iZrols$0qqvTXDOaOg5Yet13Q=C9HmHa#CcVR(uQjQ z*CwS!X;zAHB@s>nVkcR>I0fqCRPDeP!$trPDBLF!REBe}Vr8Myj?~5QP3%EF9ZDzu zSq=$=2bFHhvjd@SV3QofQni4tMQP>u4wT2zEKnvXRk#w!r;ji!ML*)IdA?0J4Vl4t z>;z2{JP0RoZrG2s*C5wg(4FR|U%<=j2gl!>`u|-{@lhq61#bJmiL6ObvdrcGQd$SE z8>{;OuW>U<=>pe%sAn-`!_F)ICkfXez7MU$?yTJeXOkcYmc9>ok^8Z9thJ^otCab8 zj>T1nHfrHg?nR0gcHV^4jEipk7o$a{{jc);-{!@7(*XEB6(^3T;JlRmPvSiw;F^Vd zz{6~C)I{8gJ}UYYN;Mppaml+H3B@7Uor1p1DxV$ z{`yfq8wI_{wI3;1`c6Dqsy6UH54~-+-{V*x7CkoTaYy$fC_ZQ^oM3--FM94b{K1=t z(dfzv%G0Wbb36lQu9j-6j`AeVUPCy2%~Xe|S@5bFs%GOvHdnbr%~SK$0<{pnR!wRV zJmK$DcHpP!Mk*(&qi_azy!tJ*SRIYl{;%>CPUFU?B{+*dQ5_5G_ettF^<>xv$Mdu4 ziRvVrQijzC{CZ-_IGj9sI9V)Ho>I%z3bj%_RXt6etURNhu1-;&RnJhTs#R*WTBFvg zb!tMLrcTER)lB7Nc1DGBwK?isN)CW^<11IZ^1d(R-CS0pkAn6gwyFuaEiALXRNL8iQ2Bb zq+W(o_wOjbRj*L5RClP~RjT} zlloJfaQ{rbMg2K!?%##Y{Vw%(y#1TP>FqA{4)spuZ#ZAPONpx~b+@_)XNC9RwD3N> z?@@-+!v~c2mH(&@st@73?^o(0I7KbzCyM)UR{9t_n}rX+Q|i<319(<_4(HqO;Zt8w zU&IObYdGm{$9dx`I179Y-uwI2*ZJ8W-nLTThS$J5>L1j1)j#44@;#hI{s|tJ2XSV6 zD!d8)g0uL)svoI;gI=7h{1qpx58-6~6ZP-vr#PoSto{?{))~_jyuF~Eu1&#-`5D?&txBtge?hHQrzNy$ z+H`G(HWMfI)0JLrwl)W6_Z+;cwBdb-+((jn=7kY2EOe?!kBZX5!qo52rZ&IKdsnIqrIGgSJuI zq@AN}*3Q+oXy<8Lwe#V3cY$^xyfrS?F44ZNZPPA=AKqoq53gfhz8t4P>u?&h9w)Us za3VCQU8Q|byIT7`&V7G?)88M$m-kwn0AHtF4@WcC+_6YpS z_G-W3o+FQGkHg38N$n|R1GN7}?P>U%J*%7pPrc{iclM(8lJ;9=v-Yy~3VhIBQ#RrJ z`E~6L?M>}1?RVPS+VA1Z_Xl{U{ZTuhy{Eme{Yg8h{aN`5-Vr?)K7JqKz17`#OY|e{ zZ`vX4W4x`fQ2RvtyY?yG==_IvSo^1TMEjTanf7n(bL~G^U;S76QiJ2Gt}18gnyxE< zQoewfpb4KhTe(zsbXN~4i}egW6P|-v@Po^SCtNN(2=ny+e>Zj?G;h8u^KSQ6YoUJTVKGLg{2lZ;bMz4jpVnUy$PuKC5CcfhJ zXML7FTc4xP)#vH;`kDHCeSyAEU!gfhXI!AXT!U3xxPYQsW<9LWv}uZeU;v% zH|s5WtKO!!>mB-PeU09!cj?`FkKU`V)%)~*eLx@7*TE-pgT4_ye&^_$^>g(t@Q~c9 zpRZq_UkIf1v*b zpQHY({*nGS{gD2#{)zr~{ZsuP`eFT_`VswK`e*vT_0RSH=wImn)xXrg!bee6Lo;;4 zFigWTY{M~JBV=S4nZ^(!%NS~88#zXDX5hH5E49|!gWk$JCVN}8c^)z_LoDLtE zGvG&21y70^cvsfJD`FaaDrOinjakNQV~#P`_a|6@)A>d4DPaBw(yw4SPVZO3^B`%g zGMbELqs3@7+KhIi1D*(L;Bn9epMxHF9IS=E0rNUwo(k*Xxv-Hu7tZBA2wRQwjSGwm zjf;$njZ2Jg8{3RajqS!|#^uI$j4O;QjUC2!jjN3B8CM(MH+C97Fs?CvXk2Uj$hgk9 z-nhZ|v2mmE6XPc1r^e0feBb!FajS8gal7#gW0!G2_Ztrw4;l{{4;#NS9x;Ax>@|L4>@yxU9y1;{o-m#?o-&>`o-v*^o->{|UNBxX zUNU}byllK;ylT8=>^ENb{U+Xq#{%=6c-Q!&ae(|M4jO-k55-@M4~@SX9~pl$4jCUC zpBR5PK8242^Q<@m--^%RS@F5?AMRbjd?*z7RA|Dd!nByLh3T3hGsDa@hnQLBP&3=i zF>}p4Gv6#Q3(a9>kvZHPVU9FMna7#O!y}^D9BqyZm`lyG&1L3tbA`FmY&4VRDznLKX1*EB z|AP5Ym}|^Vv&-x@d(2*Qt=VVxn*-*cxz1c~ZZJ2Ro6K{}&E~o07V|uFt9ib8fq9{M zk$JIsiTQ1Fn|Z0Z-Mq}a-29Gtg?Xj9!~Cv!mH9pMYV-T%PV)!mHRcb^Yt0{-*O}Lw zH<&**Z!~{m-emsNyxIJjd5igT^H%dV^LFzW<}ULN^G@?FGiB~J_n3E^_n7yZ_nE&m z?>8SXA2c5_A2xqwK4Sjb+-v^E+-E*&K4v~{K4Cs-K4m^_K4U&>K4(5}zF@v+zGVK^ zeA#@(eARr-+;6^azG1#;zGeQ-eB1oJ`HuMq^Ih|g<^l6P^L_JA=0Wq%<_G3q%n!}K znje{eGY^>`o1d6}H$OH1VIDUBX&y2EWqxM<+x*=8kNJi9U-L`zEBLOe@Lts|!!qH+ zYFm!wS|KaL%Cv^Sn{}v_ZRJ?GRv!5o4db3hBj9H=3Z6;F!;h#KK15^SKXd~57mb7G z(0KR_l`@|p>l7<&MXab5vpg$qm2sbdO85qx_BH>5TC2`VSktWO)(q|+F#Bk42;nbq ztXIOax169;=so2J~A4)}Xb{TF<=)Ho=Qv^D({>7ct*~uX#0G zY3;DSYh7i1&$`09A< zbvwMScEJPdPWWD>xIfn2);-p}!g~vzR}aGL>S1_XJ;MF6egluJN6Gi>)gtrx5pt(UCdS}$`?j@P)4#T)Rlc+2{o^|tkU>mBP4*1Ogptpo75c;EVyb^!2>mSSq#5w{GjL+bM@%hod9=3L@uL<`S8RGk8}% zv#++lZ|}5!U|(bZ(7x9Gk$s(gy?ulIWBW$?C-zPDPwkuSpV_zAKeunSZ?kW=e_`*k z@38N*@3K?&ZhMb?w|$R&uYI5WOZ$HN0sBGwA^TzbSN0?JukF3|Z|r^cqxNI=-HP=oAz7w@9ekj-`nrlf3V-R z|7ahu-?QJh|70Ju|7?F?|Hb~${;U0w{WtrN{jvRt{dfCQ`ycjU`=9m^`(O5F_P_1V z?f=+c*#EV^w7-JK37kb7Uw)?EB6Pw z(76a+<(F_@b@&Q7mpPX^-*K*Ru5@-d-*v8XzUN#G-=dxHF}em`?AJO!a;|f(cW!Wg z?A+-5#JLGR;Ws-!b8g|DN4Gh*JHK#tId{Ob|1Kxx>~{7zcf;5GUhbuIKm3&*bRL4= z`LE!2{%hr7XRmVD`Hiy=?_3>m9(5jb9(SH_o`h%8)9_4x)_D$ZxtyUq3jgKfl%dY^ z3ci#DA7e|&fyenxcw;F9t7)$Df>Q0gh<68mi?;_}ab9&^bM`AM;88yX7Vr!u(|O%_ z!+Fzr%lRGNE%?3jj`IiSUFVO^0p)IGkMo}MzLM?y$vNo!8E+l@#re?rtMid^n{vDI zi1KUYapfL(O5dmaQhChzn{&wd*!jfyyYs2@59hG+PrRe>FTADjZ|8I8Kh77*Mb3Zm z#W>sf(qXR*-r}mR=IX8iuPaNr*tM0N@Tqd$5PbhL-641fU?{w+a@<@u&&`L=RiQh~ zErRFO2>4!&g2(;wcz>YS9qo>BOWYIO6Wy`yN$xoJWOuwf!7X(sx|7^f+^`#Qqi)Rg z+_+ojmb(>hrF*J-nmgG&-JRl|;ZAj{;PCM=-sQa?HmWO?(aN{ryL>f#wSNvf)6H(R za+PwOTjSQ^w@H4e{LHOWu7O+D6K=wt=1zBKxHH{Z?re9CJJ+4(*1KoA^W6pRLU)mS zmb=(p;x@QT-Lu_g?s9j9yV7lRlkO_F$!&I9+*Y^EZFf7|)$SVdF6$xhvVM2K9dy^Z z>)j3RMt75Yj=R}C*WKcthqn#R$6E*&GQTzV68GEgHh7|KcQ1qY*>~J4+$-H3?swg* z-0!(pyWe+rx<7EQQ66xA=w9po$h}S}QCyrQT%uftwu=3AGp`!J%oMk4epPX zD)=M+1b)arg(vdQ;EViocqQM)e2v{*@It-hIJ+(S6DNt^2b3iuFCH$o-pp$o<&;#QnSb zsrwK2u=`Kp?UC8JTo*uv>>!F zv?z2|XmMyss3Ej8bT)j+mxoq_R)!iw$Z!A5^4>#h1x?Mq1B-^q0UfOs5{gX z>J6<8^@aNJe$QZNU1)u1Lug}YQ|O$~=FquT)vCUhbuIQ_cSoeIs!lws%jg-VXOx~E zdxj%5wIW=_!$?;{VMfVIbcC;?a;kVa;b@pYqcvr26sQs_N_LZc8=|4se#k(O8vTRTqRKb;PR3B2pLTELN3Q6YCWb!IBr_ z&qzfSK1CgUO@m#noh=(eHO)N($)={3?g18!WRk30B#TvxWC@W?q()|2Y1K9*8KYc~ zktl+FJxQJmnBa22lglX_sgPkIk4S~gRn$LH6SwMkvsiV0rjQy*wVGO~hNM_S(yO7W z6Hn2w7pgm|I+40+nT2eaGP{lhTqgu9s#i%3Q$Y+?Rf_6+vSUz1s)bl0bwnrgk5IUh z#FQX0ReIJmUZad@fzUIjHT86LC56~S(~e>}9H|s75cMdlI+0a0Qe#YCmFyFIMd~u9 z2N{Ysh;qWJ@+w}}s`3inX~U63nKomlHN)@r=*|g|OPHh+l>(+_s^NHa%PM;YNo&SY z(&AD9tL4^=fsW4RmW-K4GlPC4S~lv5tRi(4nX}Sr&C8EeQe;iJH9P3i(HLhO6{)pm z``sZ@7puvfotA|$8-f!xj}bqDZ%|TwJZjZSYQ35&Yc4OxnwyrdSCu(8EnktP$AuZG z6CD6TtkCPa+lXxvY>nu}(WodU8jV`>(xhBV4Oq#g9jU9OZd*%Iuchu=OGVX+T108k zM5EMaMeAVXQ~DZGJ~egby!M_x8iBRcc2XbI5|vOv=&<1-^V$cYO8N%7I+KH3a^Z-t zfa>gd)Y5!B$BDN%FB8p460Q?GMe0bR6=fOo`a6^T?SAt?WFjsaB@W_Lzc}R~lxR5W zRax^zYs}}ZkvadERtQHUROL8{A|iVg&l>vDvljRzqsLcgEC@Pc=7MALi`11-eq~g> zN*cBm31cC~mbK9D7U77bDd%ax3-KU3R~ZSsj6@;lgfhyrn(!68`Vcj#4l(DT`ku8Y zy|>V?j}Un+k=F`M6saYZSsND}RHy~CYnizy=mmAuw-QuQ(O#gUwy3Kcvgm8QAQ~yN z7g6gkN+0Ld5pxlneyl}&l#7DPY0&y3JZ>%KZIH1zkiEOOxud18rN5)!THMx`6!UGg zrd+gNBvGEx5D<%e6Q0%JlZGQ=B8t={XjH@~X%&S%8smuyYbh^2wDc%N8mX(K&LZ?8 za*SuyaLP%YJx!hUvu9-qW#9+r9UUurmLDrhkwFLAU{Zg7IFiX12$i*dfb~j0fT=IS z0#QcBR5A~6H4?3)IYxA}aI})t32CdS=wQH;wk{VvBU(-psGyE1XZVVQmGnCl)+nTQ z#FT}pkgFp+c}K&OcO*;(B*-f2SXFYZ!#g1I;cVhb?1f3K)e>7#NhjwkDyND%beNuT z5g&zWNm6G^(i$gu)EWl@6s$#|eUdG_QMkmQ*hNv?>7bn?JryOY0Lh828Wlqm zZ6PEUsfcAX9o_xH(Re)6bW{fdIVGiFr-o93gUpf{^)I8PH+%=SY4RKS$bAiGp z8HMAamZR#4o*=W3EnIH5Pz$xBse@=-c2LrUags+|XuN1#R5%(Zxm8d_Dx~74bQQ#k zN32$pplW4$8W>XR(?EtUpn*ez5qx7{lO~Q(JT2ZL2`Z;7X0>sNWwZsYp4pZ*JA~Sf z5=l5JCJJOtRjZ`2S4m^9QdWUF!K+H+MAg zMvX{qSXpOvrVV*gijhj{J7qOir{DXb5Nb0!)AAMlBjy>MXirgZ;yOyxaui!EuCb*Y z%BWL|RWn8zjouiICt8L_%c+Isa-b|>b#p#5x|6*<{R4eHz3nYlcN%YAb!PY1dE@Pj zMUs3^ZZgy)DW>2uP5bF=DBxJ5!j>w(lR2Lc2^R<;l#GeEbb`NzmvA(2S#H0WX zPTjto#8D@BL-wLc<6cJ3*VdU77nM($C)HQz*>F@YSi}T}7N)V{QT=0;R$tKLqF7V* z@m9?2`&#QoNJLT-mdh3)5tb7x<&?FY8p=simQyeGBweM|?-z~bK}|+~FtRfHk0~GP zS1P}ZS2Y~1AoUYVn4LY{Z8*whtJnd*6QZ)TS`#TEb+Q{rWaYV@!IaCND1qbgBo6&m zD-Q!NY8sI`n{;_ZmLpdQa_*GNwF+wBib`uRz3-A|9_5SL2y}zVI8rf<>wvp;Y#>OC#P*;h#wb4(4`G?B~GardBMp<|? z>JpNzI%|{Pk)Vzvp-o54Xi&hEQcg6|;z2vRs26ry`HWGwxGt-S=Ox#=SwhkI!JeaI zMGy941s^gfmd90bz9QCJSGJnCR(A0FYJTtJ_W{Ip;98BV6W2fn!aNi31GrPdp;jLq zYW1->#BqOyp!s=dvF#@qxtn|T3toS(r zG*j7VP^2L)shw+P-4ZtgYvCrJQzvbT-cdlJme4` zc$5j-AoyT)c>qf8*-jzAq5&!EnmT}4$)MxkYKxl5bK+4$09*&Rsb5!xLGX&?RdCi&q4%j+ai$6YU?Az zvfZ#D3S=G*S|aZEyhsHrL6n;as#e1Y4Bp?w){T`S_AMNeHRB1fdjT@5(T5wbOSr)`s?-4&Z3L}#V#e-Ip+z6C;fNU#f%d0`{ugT68Yn}NV1tV#y!U^d&~ z_|%-ith9X&#o)k#B{mr68JMFwTl)JM>~{EiN^ES1p6zV_W_5h6k6?f^5oLCyH8vAI zN?^jtWV!O$0DB;TuVJm`b{yU8H96olk;7`v*fW@# zamA*ML$dD;P2aNlX(F3^qD#wr9iB727sIoRdfyqZcwNm$~2+LRNrn*?fXB ziDer%KZmqM7$3nR-?ZtdLdqTjPn*RUXbj@!4oaOYgu@rPuGqi%rPQ*nku~_WAqHMq z_L+mnjumY3g2ZxF%(i*~HmDh&Y23l1hfN(Dj}G4eQW}hvU=SyyxY$lGAdrG#`$1r{ zkJ=Iv8JHGhU2F_F*4O?H-xdPrik%^)VVgsM#ySdPO)g7i`$HDB9yeF)69HwVZ50vB z^mmJ#D!r;~&j=(n9OK&9z-}8EMTpgx2RUizC(V zhsC)`6AMR0JXc*jOvXH62Z;#J08DUVcODVO?{HL{ec(x^A9;3F$LXTsap&Bg_Ei$4nReDfsXr!VKV%Y0ne>7N8UMCXbGkJ+k_E5n)#GBEk~k zk^6#27IcqJv^{a85%!`&zFt%q5xlUldwF!U=8;js6K6r7CqAVd#34o4qazQG&7-qjkBrA28Gk*p(0X(v=h2azN2W%PPAoh+Ht^`!z@q~xkF41q9rbx+ z+4aaY>CrKQN7l2rlrve`JTg{$bg<>o>3~Q5+oS&Nk#WbP{_2U767*M+ADvNqbj;z= z`0;4`cr<=IIy~~k;ZoQm?Nq5lKYKEhsR!m+BHGx6V(3`q94a;oW-f1 z#HqiqoY8N z+>t!t`Vsboi5^d?Cz%7iIE_nkKk{PKuVXZRgd0cLqcd2K9A-Q^9Pwf#pBU*8I?40M zPs@YT8P_*-;^&c9m`5j~p77WKU!)hr;Yrvd2ON(MQ9O_MCTBE{P7XccZ3BAZSDXwY zOzlrzL>?U{d2ykyJ#sbiJmQZ``d(btL-H-T509+P9vN*tI&Spn zB-*3HGLKHjJUV{!$W_3j<4BK=U*b|flQrL?6Hq)vKfQ;-CQWG*8g+l1C@Y9(g%>bOi6w39?7#caO~NUV_pm zXg*4a`o?LVj?=sz7Y+*HIL%XWn&09yPsM4zj?=str*%S{)(3G~2gGTw#B6{L%awr};Kc^J84j&*Y-u(NUR4>miREEIi?=hW3c_k7a7x%Xt&}IQa8aBuw#!TK+W4R_~%FV|Hwi2kg02|ae9^~K!HTEqb$SkOk7gW;= z>c(wJf`@n-4*|bkP&d9wCfYQS1O)!38-hw>C#Z2?=7nzbD-@VIp&@;&msYocvv?o} ze-jMF8Hj|N)&-MgK@nvEzy78c$pX%Toh-Dd&qJ_Hf-ViPLB4#8CQ1u-CeW)sZDl~q zZEr*yRFk=QQ75Pjs#z8A5ExuAek3hauLM2+BqR(49AJYY{0%z@f+F}?j$p?>kqJX3 z`#Eq+F%kHgK{p2k0qee5ohfObpeAUnnxH>$Q@+TzCg_MYK{w)NIU)!;fp1xZo(P)T zH>WXe?icKv-hlO4hguH^0w%e!OO)mt#-Pdr`PK#b`qluZ>;23EgBCQtkM+$3SU(2* z@-4F{E!Z7n0tk`?`6dE>6Mnv!3?wb)g8=mT#jFru{d_Su1Xw>`%n&}-H)n-0PXyQ? zUov4}gNO+uAPDm1HhW$-%p5*JG~hSt=j#QBm6$~W+JLjb@`>prAYcXaMPsZyVODka zwkM71mVu->EeY3m5rN%NU2lH}JQs|mh|=p2y|5jSF#|6pn6r|-y-7HRcdcqpYI6p) zxr5r04!9|Iu=gXh`VM`5dyl!Gqpd5cFH8>Fi$qp>eS3#qgR8#3Llje08RF#+^mO<1 zXHtng;GjefxU4`CPx*@g<;eq~d0j1SM8wFYk!2_m$uLz~SQ=uqQ;g9LF-AL~80~~& zv=fTaPAEn@p%|^8VziTr(Ml*rGjNP{I5Aq8#Asy_qa99+Rwgmp;l#uW1-@H+rH?0H zA>+wcV0iKs4W4{wgePCw;K^6?c=8oQBtgD*39$l1nDQeZ!i3mS!d;&56;uwr0g@0q z3dB=6VugY*l_ORvk%ZVW;YsPm&Iw`SQ|zD+CO*maKOuIekp#Uvk|6iUgs?OKPw9mP z0%1x|uRtWkiYSs0D^om)o}BIzVh0~dh!r@VBtNkdN0{m*R^$j%z33%?gxG0C5@M%? zC#4rVDugM$*ij)&>B$`}L2mvDa>q*0%LEB>`bvnMQY0aEN_bNKVrPUfMwSL2va{G$MOWZ+9b&FJVCBF31LaWyC;+{dCMorzbGLrD~Kog z3kwUvl)vc5;ET!^JN8I|-n2@PS8_sFLVzba^1@G$7juH%@JduA%p_MrtDs-ZHl~Ek z=9bQZq}@U)XcHoI7CFFGPzO^%Yq$#P*^YVH50~XDlnaBT(#S~eVzd{F(OxV@d$Abp-C|@L ziqYOKCfpLkF|rZG$c7W6Jy?uvIWgLc#b_@UBU?_4_FysDGlUHXnu^y0Pi||#lkWxb z933}%xLB56wVN-&pqkM#I31P}d%rM}a;)N{G0T$d5lEY?{cA@~5}%668pppttT4VowhZM{*OkCxl7v!ghf$l_zW%2vd2&mH`b* z^{3aH66A)O5H>DoK;m22v=An~gbfQ}*?yF-=(mvsxeO-gwW|cV$0q2ts|2~nCPe>) zW~6!uTNT1o4`Hi9nCd~Ey9r_Ig`A}3qb^l0fb1AF(Rh8@r0Wbr{(IK;h9Rs)8R@S030dUQW6kf`o^l+-r4LPWcLls zSp+(h>vV?bWe5w(o#C17GsgEw4p;Fk3R<2=2}RE^(Dm#AbvgwLg$IKHXV{fVP<_0$4*Y{@wHZ57eZ$-dE zMZm9bn!qF#6ya}MfeniAcd)<)MR3mn)`X~hKJiVA20uR~0Peh$9TgiVJ&);DvqNio0%&Ek91fglj7?+6TRAk@GK zGT~cYG5H1U77L2-t*#&lD&*T&fek7Y3yLTYu;l^PA2^s&gSz>n5ZIt#-`)dkkb`e1 z#UvW=>l;de4MgHwM}ZAQQZ9!cT1Z+nF!Kd<^Q}ObKLaLx+cB^KlfEIE&B1=N_$Envttu$ZH-4ftR(aZV z@I_8lwOAD4eQ&YosikdeZFR!g)Y8{8si(iy#^*5jb6`CWy94cbhm2vI)}FyW0d%Yr zH2obL7{cwxr#`wl)Y8$`KER2(J18Tb^FXV`GRA}DJJ1TJGnVZ@tIcy|PnId-S)Pa& zSppC_f`Df@(CUi(7(+Zq2Jk!qgeX_WlgO7tJZDD7^Ja9EI|C_yMkq>P5HEw>hHwa| zNesy3p#c%d5&;>f8J>JOh$mm};mMb0cyfado|S@! z=I)*@UQZ6NdNP3O$v{z00kL{=I#y3kC+f*TQBO|D>&YQrh3>(wK3)a~SQ!kUG8ibz z5D+Va)3Gu*ohXBYq6|*R%V3a@3%PWJ>1Z=dt`lK#^al8e|5Axv@++YE$BE@B%1 zpEqv6z*ERIB9{3G3%N$bG9O_f*N8ZBMwo9S@T_vtdpN)CnY`BsxIcsSLxMAT)hHn9 zAzTgc4HQ0t@a{umXv>BsEP0!I)^|^8O7^$ptQ~CWAL!`m_Ayxy!>X1(tZDfe8Il$p zXdRj!LSLe8#O*cc2HY-%>QlJ9E^8GWGFv)ZS_gP(LwT@|k2+R*HVdz5fxkBqGGF*Iiz zzGwm5z7g+q3gPkhm_W;kvVy#rMj4V8gxu0Yh|O&q#0wlPUCh;;s-EYgg4%Jietc{J zwCQ9V6_B~f?w$cixg*JH5sryB5b?nw8m8o_5*E8L;JIB4Piik=$3>XhP1t)Ab##JV z7fTFj>VZYR3!QKv*|*VX#(RZAU{wjDZm^GAyP{!X^}v(5o7l}EO!r-YDh~zOP`lfZpeo7--Etx()-a8GaQoDNqeS z&MPp`%5vcR1I5{wC~)tCRXzybeQa$2R{9_qN0C0?k{Bn9n6nty1FgLCa;8y5SFjBz z_ZY^38WOOM5Z=$=;vZni1p9zkZlVGVEvn$7StWu1Sn~s{B7Oi)$Y}wv>c_C^ATT7T zP!J{P99}74dAE#;6M`r-CnP-3l^me)ElwDqp|~9b8jD6kd9~Bh)jP1Uzh!`D5D^A2 zyk5sOJ4TG00jcYjR}JatZtdvq7}&^1zuVh6*e_Bkb5O)H z(BbL9zbm3y{kjG_2ReE?snd6?>uBcd7+0iX6l~b@A`r;H8zV_{RMtry_5uw9vI*%^ z4Ph}sh?VLWI24BMzMc(!Y*rH9?DR$p^2+M$Y3pc8cA`)|D*XB*F0-S1fW0}@$%hDX zX&!9iR73g)VO3`n43Fu9aT{4MnCaqyj$~(ZM{BD{)zT+5z|h{7KKS_$_QNZl#o1gs zSY8QU(Y1Zqu+bz$!&YBh7>M=-gPt$tf}zF50&RShR4^0*p&$^*WS})GT_gjoL((LI zP?|tcrY{c;lQ>Ymlm@a6gaN#i1xiU51xrDaU@>WeKvjhtAdwJB0^pE976@fXX)q#^ z2O|n3f>5R}69il#6+k&h%LSOMG|8}FnrslvK1w=33{9603#Us6;UR&HL`X^rp-f*+ z2xO&6ipBY|LLmDnY4Ma&UOYBkVnEo*zP_IIgS{dC}d!E}(8bxui(d@>|8hl!r$pOykaRt-4fb0LMJ=<6k<)LCoc3bm{2L?Zy%;$G$H<89j|Xy(>L=;(iL?M-)?!;9 z!88nxX#r6K-l3xMbBuH{8kHaO@!vk7!6d&oNM8C;@|KO#)-_7rw^8z{jgnVww59^D zmcwUeQnGU(BwiX~oP@*+!Wna654~|P zC;e+19FsvWRIyxK_H_-BM7%f1vlfier`d7?HsuE$vIXksFEe0NO4A@fW>>;|2QJt^ zVF8|o0^&#@aIb=5Ae$AEN@E#7X|n>zOn#X`H;^YHzVRO8C!qGt$iOnD9LcaF-^6z0 z3sWH}WSqvNiI}|+9lW^CMm>p_9f5J-;=JZ4(c)Cge^U)Fmtxb#-Zr+mfRRXuR~p;M z`#$EyO@2}o66ZxnH7rN5Zi$lut`hL%DgtIZaz&x<10}?PKdj?~r!P$=M0bV-n9|c% zSQ28+06iUu3a4x2OZnG?*+60C^1dMgiMq4^-l1j8iWoQv1_6AOA_&x`2jJzH7Ly); z3t$if7d{pc0}@V5yvdq2X3~>KiUEV2X@66WY$v~i`53?d`54~ntP>V~Efvq#NBc>S zM*Hb~7V&M=I@X=pleIUKTP+>H*OF^ZExFdzl50&Zxz^N@qeCq@I@FQ_K`l8D)RF^0 zEja+xmY3nT;qcS6Uwx$v#Z$qrOtQbJ_`Nts(X~G)Dt@2okfLcHo6U-f-x*o0XyzIR zDV&GgU5bjYWq+pV?7PqSeK}1Tg7B{t4PVIq4dV8>`v5=cKC0;WPWB7HyyU)t``a$^ z#TT&OMeKX-KXE_e9sv!$a;>PyYl@=bJJM%xei%<7{65|h#i&ipUZ{*{+Su2rlwt+7 zMw!x?9Ozc+@%?xFp$6<}fbYySjEXP9yZB;!K%?PX@gaNzJ;3PriPQ|#Kf9^7zgJoH z_4}HZzHX)c>-Vl?-x{U&8}4hm)+n31zIF$HtUm15_*7hsTOF4PjuhN&@a}>)e4ifQ z=dV^;)n)oE!=EX83P0J=dEVIbF4_7K$;81kgcR&+_Zsrh)#=D=mhrlpFh94hP+vhl z>{moH@y-8HqO1$v63;6K#Pf$EK;z)I0Lt)9{Dd-BISb#%Z^dsOu2Z()yXjXbJCz%h zTkyMo_u;GePbe=a`|-{2gZLFL&iTz(i03c%iRZ2(;(6C&;(6po{!~N7;#r$1o=qa1 zI>>4ODeTxPp10j3p0|g@^Knl+e|w2|zP(yJ-`OUf?_DdNA5#3sQ+ZfZ#*1ebdK>cB za=sMLqC3TNavyJZ6*X5OokTLdt z5%_fi{5HW0{8t73fL{vu#5v5r(SMx#ZTz~Yvh^xl?YPF`nu4no*FjwPWyY-)xEPLw zYjMrQRgdc|T+48+!qu**TXx{uiR(ICHv!kJ=;uN{TW-bm1uoQO%RS;cZv>tX;@XSr z30%+NdKnkS*?C!bzJu$1Tp!~41Q*(g<#8TlQ}zL#kOQORS3b(ZZ$)n1glj9VOK@F| zi`D5GTsPpl8P`*|ZpW3vbsw&WaqYv!@Q~rwS8=_C>s{~-o*9ql6(f8Q&#_8&>-G&N zu>X#|-M#GDJEAwAJ(UaEv+>RTE0n86{QrbkcC{op{k8ZFgB#IDWq1$5k0_6=oZ6Dj z;#(KC&SlTuu_C|L+}2EH1AeY#>57!1<_(kI_ zsN9x|aBau61J_Pm43GYeeyyNSE9le4IgD?{=V64=uQz|L{%pm|gNMa`_JD+vN0Ofi zxbcyd+R70OZW_~n&*0(Z;|32mpU`}~h+RH^`BVXoe`EYR0?OVbp)}l95r`$H`iwZZL_#@_wPXogV{>CKK|zfU zH+=w(4mEu~e)9NgDsBGSrwH2L^pb#9E$e@O)hY%zjagetu|AZ2dG=L=Te9{A0j>OU zWmG^&^R|E{ESos_SSX0ixuBV1n`ZaV6?ECx475{3Gc}uPp8aaa6-4(|_PYcf6wkrKgLN$-NZ&(SW4;)Q3LH{!+Be z$}e*^3%cf9naelzlA!f-vLn2$1`p>H=8O_)a>g`LEb*zdbRJ%ZALJ|2wK zWe4S`4MyIo(p4y({pTcnXtwNOIZNcoTd|{$dPL3&Io@)bC6qi~j-H?`lgGsb z;_^Z{W|ke4P%w^idgVw7v_;N3+3$naZ}R0FjFdnRr9Jv@M77 z%Q+;qXwKpOy*ZyV%3NiDdS|XRFh!(oKEkwAOFm*VdwK<~t*Djw&&~CrA`v%ucuhSU zDXqw{b(;@umQe14xo-%{*2h|D)OKyp{bcZP=LemK)1X#~>wJc#WwD+6r7mgRCZW8U zvLEE`&3!`T+;wEoAn1!e@H}v^TWfhrrs%3(qfzXKUGEDh_tu_0glp|0EzspdxyOsR z!NXnCduY_Q9_raIumOL$CrJGgKxwh#W!l_uZW)z3dEyBIn)GS@e8N@dP8U$OGf*#} zQxffG2`F;knokAPK4s12gNNJEV(s}p)ZM;S#J271zo+dw2ItPrT_|v!&qS!^xl0EP z5xe@<)i;UQ+{VG#0$P2~AZdoS9db79xIdTrUv6h^AEnrkyM>^O+DJx|h&$E~##{WJo4u3h^=9&}A!e%=VF&GL#@V(hd3 zysg{r@=9T6}DYimt$GjEfaJt#r@QaJNM_U61Xm_ zi~94L`oYaqM!RhNyzaqlf$RKS_UBg8-QX0hK`Ay#sB3%w`vP85-$SFUXH3ty!NWal zq#YV0t=zLh#&(a5Ttc~Ql~5Y)KACgxhF);rdlAAnN~m|bgz`fJ2L)whYd(#^zGkLR z*?$_e;_JBl8(SPfmv@PT`ggWJOlimUc>?NhTwA)fg2DYo{m@+fbNiR}H?o%GM8{yvtW(MDhRmQX}<`m$FCxVG)~mRoD1qp&+*BZP^ne z*FkH|Lay|tJ0OJ1tw8WFqp^0mliEmEyr=0hnFH+VQG zqyHk=n+AKOw#{$OUo9xRySv*3G*ByN*vK{c+XOD}zMf|YdRX@HwAg)ez1vURq1i15W#&kh4MFyZx<#F0J*0 ze&Dx$9$(=x%Dj(cY2VZj276^MNrU{>&-+x4x3qo`l5_l^59NK9_vPT>d;_KVP|$8^ zwY**O67=V9tcTz0`uyG=jN0zEg`dvW@b` z$uXEeNkV;(`6J42U*M>v^F7%+^G}uID1WMif)SOUkfSHiAo;W9SV-#;zQhN8C>Tfi zE2K^g`g89FDaria{B=~{&G{DysP~Jtnt%qnSv~mwOM}$M1KAHwl_Mbkiu|huUH-L$ zrwXWlhp$VfN;wC;GyfK;k@9y*J=9$+$5Fqpck}m9`G@m;O&xF$v_7mq%QRR))NcJv z+;?*LdJg}U!N4=KpTn#9U0CHR^(Ek> zid*Oo@cRSYPInT&U%~IyJkOgrd@sMR=9tGhyph96mR5OIy9T+zTE*nRV`p>tEe>DF z;Yxi9Vl(wFw8%1s*S_NIQpRb{<}`ab{A~tn<6y;C)m0W)2X;{G(hui}{T z96noz6&5XmSo}IGqdbn|tNH!c{62=~a~!u$w(wei%66-Els_Vpr>>{LW(Y^~Jc)<(RpgayGv|&+jWa{qa1v+xh(*eus4xsqW@* z6NmS4Sd4-N9CIC~ZpZj*pN#m?=05(-9fkmbN0`98@YXu zKR!Q9xT$B~C!pz#%Z~_X_RQrkuRJij9+a!+TupR^`DFwp&VE=x`IGav2q^L8>=y`E zoj*N)E`#$I<}b}}qO`Z>Q!QtlC2Kin zh2&uR8_RQv?wzgLOb+U~7H}c=1GTxWCK=yO| zv;xXU>!eBi&~iv9{|j6nGMTd2{38-qFmutqg0ooO1KE*MepC5KW4#RXjE1^Wud7H~-ylomt_Dp>5S9Wz%KOkq%B!0&5@gyv)y z)QbLBFtecE=U|o3!GO=fB|Zn&_#E8sb8w%}!Bc{R!uw}0D|nTaJM86xw+h~6P~l63 zp@M_QK!*xGD)^M+4i$VR@+&lkyi8tq)TL*N2Viw;Vj z16*2uAIY2pT)=6NUm(dqR)K_udqtm$a)*zTTn*p9;!BAeZa|(PaR1rJO@Jl=`cmS8 z(uQZtw2SYN(D1?rq+|c{>Lsq8>b>&7nRl*SEwGEUga_ zdz|E8{<8Vq0z2HBPd#=iUNAG*SamiW*L zAM$6b;Rzo%+lS^4zm|Aj;zKKZsM&{B`%teBt@EMHK6HT(ZS$ckeCTQ)x>1gg;kWqE zE+5+CL-+g8BR=$)gl5c?(1;y!Y>n6{q2V9+&>>_eYRXoTWJmV}1C?L!BA=ouf{ zKO&c;_O=flkkE)7KD1Lp!$0t$Lq2rahd!6k2*rmiAIkKhB02I#9PdLX_|SMC3j0u* z4^8%=Y6-QyE1?n7eQ2%^E%c$K5(-9q0F7vru_H%FjWnXwhdOnX0=*VM zBR-U|BQ>cpM>;-~>-RH8KB&mdiBq6CJO_L-fNs{Cs$&pl& z)G3uZB}tN`k|rTXjwCrMIYM*4|Lec^UiUpir_T93@B2Q#=Y8+}TkHPsYhCMF*Sgln zzV_N*bprojVE(|MMs>Q@362(5xdQ^PB|+1!T4#;o@&@(_CC5>MrdnRyl5tzbEfm*z z;FhrF{d*1A?ANGH?<;}o!0V~gUnq58!8(IOTD-J6!4V1;*KIU#`GBAgUCE=Vq`?38PHUe+e^^p6mWQ(c&}f|73)DIhgJ0 zED6uXu$FrluNu_D!l_|kg%R;`QhsGTUnu4z#!X0BOFWVBm8ASa+(NEI7|)V|m0IBG zr1v4^m|*K7!R95T9A;{F;_u1-C*n55wHRL}6g7f4N3eMXdHznyJYI`=$iR~n#uQ^P zIQI%xUkEmy5+3tT#zlB<4fp?PfJSki!Hp9!3c+aXV>W z^BPj*84bv1i(f+h>ocxHo~Fc&iBAw8BmNulF5-j4-xBX9{<~oHwu#kpBU|Jfw6<{% zaZ~eslvso1_9f+4;ymIWChqJvJyN=o($w4vN@wC%S$DR(F^`nLkkX5Iw!~&<){EC@ ztoFnM$rEEL$A!h-Xz^N}`I*oytk~nuc=jJFgSkE-on_g)LT8>J{ZY~zFg{Gm-Hdsa z$6QMKSW>bjHnt1JILN7N9&@W;#Q6ELdMTZtlr~QzaA2+_o+``qaX0g zjEjY$mKhGD)nKkpl=cWQo<#w@5pfUloJl;Iad)dRQZKf;Aij`S9@9v#&g-h37>_~w z8%8^c)qchwl2VQMXW~NZTk!N`+?6uhvv$`owJAA2XZ!{!Ch=ZkhoxL4x$yjvXq!hJ znv#CG#OfFF?;?L=#xCRgSmM=;ucU-Kq+E5F{4X&c!uUeQ4>G=)@e#?THZfkqQZ`V+ z2VxENu2@5Du|9x4odSNbz!!pzvlz?BFpP%OvnS(wNMTvVZN%**R^Kt+LP~YwW5jn* z^Gg}mqJ#?=UrZbJV!L!_yIdifsDrf6YfOECoPVR7CmCPPIGgbV#)BFEo$~+6_!Z`z z#@1;mS0~lml*y~HcoIhJpT%pJV~p`geUtHD4CyDe$j_NseNN6RcolUC`Ekt>Jj2P^ ziJZe(ib890GzQOFHNz7!3yrO~`f1}?D~vBbWtGaOtTOnNRTrdH!&7U0AhDnNPW4vb zs~^>VbwtI~Ap=kCsN=?^#(1NfF~KZn+-641mPX8MWfq!E%p&tHbCh|vInf+rPBx3p zvF3L3EAs>MALdWy$L7zNr?#2DT6N8xR(hE*Ozrb|LIVH~`uzWnFLp7{0)To$!AY z;iMlf91NO?fLZ;*iU>&vwPD9({5L@8jnD)E$I=Tk5ZWQ+B0$cCU6pO5te6PH~#AZ$i}tywQTXW4Zh!a>xjGX8%=IEGMyeH#JK5DL9pb%eSI4H23_chOt) z9ESZg{ExzOqU)r!W0uj$u9082`OKEn3i=oH7u0OOMu!9y^at$-Y1M(s(j>?6kgvHS zA85^8jcPWpFBr56&8wmeNNFCYHEy09q^38|3Q$h-0$-QrU9^-Q8eOJQKO)GBYu|j3 zP93VzNR37dO4|Z$3N>wfh!Uhs4r$G4mkzTF`X{8$k<`3Z1^rXs2vPF|8Z8#o{Aq;M z8m%CDDWu6>%e|zn0d2jY^ol^6h^Am~I#D~I+z>VYM5AIs&3Bbb-P`;C_K~CcVM&!O zd8@>&q`pT5b%Z67!BNmZ7ZL=un3!xL^<;>WJwbVMk(z{1JC2wGI<}aYi+cEZ%cM47 zDryu+ZUU47+U(?vke06NmfQ(6)D0R4>ME%1j^u;*a3}N=l-yIJ-WnmzPfg$(l{`kM z$T2v182(oR#c4&!6N1z!$+Rj`XCd)scDPu=tpdYmR-)M6~qxR9^KRHV#6nB8K2LI0GYl(Go>O9f>vPpOcyAVe)t=YR%% zeAMDajb7F0%@*r|)Qy_9B}57Gwh67pj#6dp3He&=*XWQ&M?&OFX>lAnE7D$V*DuA@ zsZ|BZmQqur`YDYATC%34lP3p!1sY{(Y$XN zDI;6W1{$4Gm@+;g$K+CZ<5Ff)${d}#80cxCNt>svPFa((KBX9F6SWfbiAKAK_JVdm zPC}}WO7EY#Dv-QTke@@-mT9z7qhlfR zC5wisZ%|LE`Pxu&>TZoTXtY^S>Q;p9VU7g-n4>jXDs`Wviq%pNYV>26BlVb;R}!K$ zTTnK7XIfPFa?$%+t`1RJWsRx}N~?>|Fr@i>@irny8sk3T8=z69M%fz0Q!y`syK|`= z-GwH-B&}EJ9Ot%!)rSd9P}&fUMvxEVEg^Mm+Blytfi{tRQ$xPA8IXe7qcoJ6whm!q z88p8%Ee$haS-y@ZL0hV&EN2d}0p*GR(sDA(eNoe11$t9xnXqxoLY$RLIQi$egw4mkUfcCVetq_!h@zU}oK?x%u3$!&t6JM|8UX9jkw5jDML29wkTJ9>v zcR=$U*6654Ck1iO3~A|}MoC1YAbpHRwKd`#n=YwMNJ|O%xR)VuHu`grw;fO}Q#t`* z=0vRL;`oT7JeEd|B8khO3EYRBeSbHE}=E57Hez~w(`a;r{04)>L9@fe3McPWx zRtahi&D+ts;^n5lA+$EIPAiN}-_tsGyP&-3NL?$a)!0_!S`7$M`UZ_Q3qtz1^sW5Q z1}aNK-gL?%-)^0EpGL<7G4){jkN6iUaau_$8#K`%+N!e8*Q$D}x&f_WD5X_1jnXvA zB!axS_O0@DYG;kmVu3u`N?PVzwww47ZI|lQJ{oCjv>KvmoC(Y1m?)_QJt1!x`DUXW z+FAUPRx>nhKG7D?mTR<#2&MZp?!72+ZZT-v1d;YC<2ONDCn$d-5CUS6M?UG3em@Y@ zYKNo}?IGX(QmKbXJ5taeFF+3Yjtk0A2vvz(pbBBCFF9`|`cY2CwG?$1u|+1 zUpzIVe#jT6QD)srUqv`ov{KrsshDn zt25RFQr2f|3iv+Bfaa9EODIHpH99~9DG9n9)~QD|IvJwYW{CV8;*GSfD74l|2(^it z0Hp|$^YhjXO4INb#s1khk=72WxkR0Sx(ec6Pl;tdXx&?o9H(0|MYL}{OlWO)v>w%Z z%x|IWOyrm#sYFE@ktTbsS23P~xrr8UJqt9Hh*;2EqJ=<91hsn_=$J;!n7R@)N@407 zI(4l^8#IdN-ORjOk$1bG>};TezlCyOoz_1x$8Ml~rTOBias7nDpGyR_TOhF(Y8dim!hV_14E+Ut#YdU>kc_s&erE)!S<3>xm07C-+8bKRT8%bnv{|FAM39`I-)^0{ zFGSfxvQR@`dm`r0wA~u*3sKwr5c!ft!>k`eYh)b@CAV!DqO6h-wY3GcjUrT*9Br#3 z)D82-HTCnhZHCk|N$uDLC{v^CFh|>bExEHs-33X1Y1>Qq+6rRNX$$(f%SZ!iJ4B}YajDegFf}1ZI%%+wPivPIBB2MgevrJl-L!Ty+no;OAhm#{p;ZIE9vbN! z$^Z`DpG9lM;{^W2PckxEoiP`gd-K519nZkJDMw>L~}cR-`V8XeW>WQY>vnWv$7 zq*X0dZj$D!tx?9gm?;CT1o=5aT9Qt!tx;Ev;x%fb<)vuERGH0upMhm`(y3iF>P-ZT z`8}+opux0l&(PxS(H?$JJa-DvC`lz6qfwDY6EvDmGz+|Qi53Da5yZV^5+_JLhE$G< za|Nv;kDxa+T1&K{6yH{%k-nX=O^%* zr8Xq3SxDnv8sp56CSG55zR*bT%(y#fy@>h%4G|ABwrT#wCCqQu1$jS zR_3kBn~(>4i2s~Vc?C&GX(FkzWls%JM~nhU$UxsJ#(%qx7$qH8H}cJ3JR3RYBP^1u zBY9{s;H3!51#$01#;+pv$Lu$=*JW?SekanlfNz^1+1js{IKM99-h#w4%HAQU{mk}r z+D{8n_8yJ)3qtyw>_hy&45%y(d9#mbzT@N*c}kl`p4Ps7Kb<;AqoEp&)M&Iu@w|na23tb|jI9L83xw8j z4rq%tdRim29a3IGpq+`>zU|j&+9se+$cOfBze|vKmVSH4*=*38r1pCyRcP%G2x@=0 zRO(TkdQyFVHF?E|Z#*q-nK*8Xz>uNzt^7u%F5qP!4-o z4z$ndiqM~^H_^VFgE_lJmmEQZH5#VTD2?KL6NH952Xn^c6yg63pg3(x&h$Xutem+4 z-@=?F0d1Lxqxu>(W(q8no1;;(Msb>tvO+$wZtl?B(Yb|01%h(BfYu}T zvfO?Nsc6dtzIcv7%nQ3Gq>iMN@t{pE=$bn%cLC5$>LO^4MvIA_M$2p^Dn{z25OriN zb4$^3S1|RZM80^AT=wzYHKkHH*Oif?%gFsCEG>7Jp!l(osH+?$rC;Su2vc+Sl7?ew z?g5QX3If-v+{3v?@!u0j)AGzb4>URIR?JKC`SNP#H3(=;LMeGE8f9qIPNQ5RNcNB2 zl-FCQcG74<-rzuTS0X=0Nb9Xr`)jmBBYFkYa9CL1yir>66phAcRHPB}QY)WtI<%NY zDX?EYM*uCkP)lB-^Dfiq4MF*Jk#__6HUqJ5hzH*hwnYq-$GMJZH~IE~c2KAOC@8-! zXvYM}mRBNieqF@9LzHi86b(^AYGu-@Bi1?MD8C_7n?Yt8QFovL8f9vfO_X0MwX;r* z=jcURAIxa9CJ+6d{cpDFm<-3VRp=4L>gwn z{N+S1B5p#YHR#x-V~>tm9s8jb1XU1}zcGJH{l~Qz#P>%062fYtlbR-Iji#;FXcN&V zrTBJ{wimRcn(u%{hXskR7f&rPNlQY^e!#N?Ptz)DRGX-Q<`YRNq-7v(Mm}3t|Jf83Ey31Mtyur#rJOTHV$~&HL z2eWY}>Fb4VUSJOaWgU5@+arP35_gifeL>Dj#MA8y5l^*VNBju!IBPrbEb9lvldbm= zKOpy!8-;vt*8|oO;PLi;#QS+C?(NoMl+{*rHd~X2&oh7@GS%*qW8myX2`h!)G>HB8 zoxQ}Gu40WE^4(0YN?lBYby-8Lddpqr7N0t>_%wpGmHcBF^9c&$3VGTAc92@|u6^9A z3!T+IzCpjAVCz1)+uOo@tcaiC+qDL>^pUjl5K6n2)>}a<4W(6|rzY2szMNJ~rB#=a zXEd$)G;uPmI)qjo#k#-4x(}v33u(_0wC4b^lHwB=hW}gypLS6GGXQ*E!dODv4iwuO z7t>&;ul#9|GA(ySeKW`xr+M7sQ+AY;=W!;dy~3tBhDjzD&s!1;e6(; z%hUyw@OP1*POvUL$n$}unyJk7D=8Jo&*v`i7AjcVEH5$ckH>QnxSM|+;scb{n$lK? ztw2W)R6kOmt|DLU6I-d1Vk>n>Y^CVQxTkMb{Jea|M( zx1>MD8a1GXd`iSPhxlGeH9sZiKCz+tn*9D#SgQ;faXm@dK+Z-&QL9UKBi=&^%Z(D? zx2gFi^0blnnwjrg9gw#Z^FGd8CyB=}{)m$Kw34xvZ8w0@cC$_A5FZmxYXte{kY_G! z_>+`wET+Ydvqk2J#mu!*uGO36^4SvOVfLINO85(V#j~`-a`xn(*<+uh#g5Wq%Siu; zJ$wv%_z&cHjXnGy#5c2tKg%Be8t00asqDQA5@%3{mqm_Q zgL(PHmobC*KJwhpx?jRx_dPXyh??9^9^4NPnKu$oBL6+K_EFAA_tHvRXr%{f`7bD; z3Ugh@T*Jt}maWr`l+one%K4`fId3N2e?pH>b{Q>5f06NYNi|;}&jPmBZ0bCRrGLfJ z`_cZhY5%9}BIvxBmY*d$tE1Fv7A^lYEx(1*=Ch_VXxl=s)7O-k!RPCVBD zY4eHe5RW5nN&FJy2Ze$sIS?DeC01XNei12rmJH8ONvciyP+~rNsr=_Bd+=!@KK*4} zDaR}|K{%EFhQv-xZO-_1)_NSDx|wV>h0IkpzJ_HyW_^kH4j!9|tOmgEm~xb#NX|P* zStk_p61yDeZ!&d;wF~$y;`8NwkvQ_=2`*#0^&H|!GAF1bw8s6`Tcq?sypTHF$1AXb3N_$FzF?vTu08UDeW4myDH|m8^PzJevWNM-s@S5cZFXa=DQ=Wq7G@y`yHiy z#nJZ}DYtQ?bQB(QKIi0~q~Ac!A7oUjUr9Gezg}Xi4`ptVQp|IOV)A)Kt5CGUJ5Pmj zGx;0IJ28!Z)cGp5PJe2?pPFCEmRiCVxh6=J)_js}m%+AsoT)dm?G_O?VcYd(+YRAN zK7{h`VmyE?bp@Xm`-pa{C)%p7iCaEEtV~st32ZSSc^=?=P+*@ z#tZls(LU13YN9E1Y(aW^_Q^Vwxs(#RQ`#Wn(X{r>#78M}l<2J9C8Zf9+)O*%L^-z+ z7qU%1CeIj3<1@oXRq{8WoW6{Ek}`z&Y+8P-%v$Pa*0j(%4n5ztrh>ASeXk!mYY3+* zru@5wqP7rMWc(y$-bD%fnff7h-XglGkJy^qi04VW;Q2jyD)Mvk{K)uYwn%SEJHWbZ zWb1rRe7#6k%cK;1-AwRC#>bfY4DkoF^EOgekaIK3EfAUNGnSrB`Ax|)iuej@dp&t# zLN^}e9DWz+KZ;}{m(u2u=WlidluMY(=aAtq!5YQ@#w(0lfvYmtg{1sdV)G24t6?&x z)CQrbndF&k;9Gj?MzOPckNngGGnMc>&k{G0KA74brH1WExu0dVC4QFi2~y6ZBTX+48@Ag%fWrTvZk!)b^8wC63BsWFOu^j z;(5f~7&m6zg`AgA!UdGDfFmxMslAw*L3{)8`Rv1A)BgEFS0560=4`o}rF3CWOC^6x zw)-mbv}KDwLirKqoyE3zi@D0PlnSJON6LA`M~MrVnk}(;7IAH+u41bHy}lb+ZZ4lg zZp`>kO#O!VEu%iPrT?r}kWz*5#pGEo*ffm`z;hwB9Yy+E0Sfc=$zQ8s#u(cQWRaX0IH#Iwy$5%(fzcTye^irLUk0sTRy4zw-cnZ(uQUD!rfK1Y3( z^$GA5)|JrYb=s=GwHK7`Ed567PT(Fay(`~m-Pe+H;V$;|;Qx|3r--&{2k|1t7g`12 z`H;0ZKsnz@UiA}GN3g6FHqcgGAi2OP{3paRYCA2nTS@_^^q*IWr?Qk{;$g(kGX9MAVY{pES;~59coTJV zg~u=%U&_3nvaEf~`!PAsV?2*GxzAXD68WxqoC!h)qZ#Az9J7a+>q}CeApb<-$7#vd zEaf@hV#LE)_pQ=Pao!~L{gPH1N&fDV*NRH4@QglqhI0gsWh>l5{cmMYdy_qC9O+|8 zd5e9oJNw>iOudhNZ#8i~``#G#y?Z&*@1|DwS({MG6l)CPTYNiEpRv?up4i{Kfi?P^ zaUt7cj9mfz6YVn)_a=P|+l6mVG15qJsQ;~$a|>&6vyC$d!#}$D$LQNEoX45j`}Yei+HAnV_$caTaywv#_@#%>E~Cm zExzP@GL-$~0C}!wySz_3ot=XE_u{Fn7zoIThY}27qFSVWe z3}+puvjrzn&h@mzb<$GCg`|w-96preMlcO!m+x#%0Hzmd|4dHa%QF!T1~Jg|ZK=PC4`gM>%1`sqKgXm5U1({JyR| z9p6qc?A59__8UdsjJy?D6L}lo6n{6eKJs2fYeO_9y`e)GqXPa>a2wnjdS zY>RvzDaKnyc1CtZzKR@+{1R1BI~s}Bh_;Mosz#~{zIuHb-ZU}@-@P8GMyo=6f_Ji- zhBK=M1G~!4J zdRWQ!7;0a#x#S;+KbDbD^7oRTC63iW9Frbj@sr6Ot=dzN7^7cVZFXs`Ri& zi-zhp(N@(J`Dy^@E+*teD{sUXm`!yi-qErW?`U~3@;ctvB42W^$S<~6!uwhds>+c= z_-=dcNJ%878b+WtrtB@ zwT(84Hc{EpX3Y8kebYL$9Jt#vlx ztYEX+sE7hR5q#`b&ZBbGb7E&G_s9+qqEW7=w=> zH8xJxZ)3N}ife4TtXIcgkX4A-O|l*vdqmEpV(-YxEhy6dKa0-lIOEl#l{zBWXvFh^ z6rS(2A#Nu%g;#)@s-MUolJX`3AYfR7+zJ#nESLTXw z4X%x3iB_P)KB|PXM^ny1tvJ(W6X$S7+R2&ZpX9MP|3o-*Hpk54T0zgn?2rUW4e%{{ zeDyu@PUI;5ZTugK9F5jQZ&pfX_{ymLEpiSKn}$_S8??%*x~hx)rKG+qwTu0gE20kp z>-h)rGa)hCxD2vf%s+2qWURyY;%&?~#i|nKn6FgL$UpJD_`1=&Xr4k3Q3n3cLaE|8 zPDT(9dnSThQIeybTti#z2SbigPa~{AkQJBJ2x}15BZxP$2|*DVoEjo47eQhTFh8*yL8)k)zw2<&gfn&C}Rdj5fx(_pu*#tK;3 z!Tf`jQ_eh9IP+A+%=5FVhBrm!swUvDiB$Bw=y|a9`O$95jP{83RS|_68PeXn5#;P| z6~YqG2H<}g0_HWLasLhAwFny!#M74*TJh$0BkV(vI?EcK9DhrY$M$6#mGO_-79u_>hV zWz08d#vUf-HN2RdnV+drR6CV{kju~sZ_(N{zu*glz&gBgR!bwO-yz zrru}#F5ghrknbkT58@Ay%6U@F!ss)M##~|ei@Y;Yy~y_i)-vA*Jzw63h_{mA{Z_aL zh8Bqoi1xuqhTUVuv4gP%2>!Mb`^B-9*xN(2C$Qf91ov^pSXa3`HY>$?A6i8&EjvDO&1svFipT;_~c0@;g?mu4EZ*iW^Vt!3x zGLrtiU(%`Up$(;8i9gm=ES414AmmNtI~`_Ql+iAbVU^<*?Uz5^l|IXeY)#qQx?1|Z@=c(y_KR}I-V&uyxTp8PpAoGBX-aXh0<^%GG zt&;qf7rQ0e6Lyz#A^wp2G%Xj_Ledzd#ZJQ)N=f_=OA6%ck`j3Yi?;Ee8ECpLo?B{J zHqU>uU#1++Tk&%L6N&#iPgsNSAO75L{J?=(^*0igI?hd!m*Mz5NAo42H92oeoA|B5 z(I9QLIfgTE*%RB6D#wsLDvG!`_6_Om|Hz4+BoegT0BDT@y>&g9US^NELmFhs_=%4% z?1lTMDJRaCAX%3l)}k!eDf%+=ABs@p&760FW2j^jZKau;soqt;QcX-MsqwfeQp^eINoVp*SZKUQupx5vyExiX)eh_O? zo^Lss(SJa{`vLvUx0LuW=;gGWpHr+`N^?q*vz%0Kt+&p5*L%;~;BE9i@HTl{z0bUD zUa|Lu_ocVP+Zl;O%10_h&WKcuRFBk%)Qy}KX%J}?Nr|LI&W+?mawB<>+apDhagjSC zcSR;dCP(g#JQ$f7c_{KQeC+0szE+h(3G0-HQr=Zjl=Pmegwi&s$|!N8s)|xSP)R6x zlR6WnZw3En-e=(7=4}Iiv4=AxX!8a5zx2KY{|;{l_;-3cvC4oS&Zx>qDk82PsgAft zq=t$>&$?J~I4g3NssMc(s578*Bc!H8aK-@L(-5BMS4GwLs(MwCx0+W?RrHd)B;>`13SqTmFBv7a@LE7Zn%7p< z_1bwIRc)`pyIj@ruJDE;zRtT2r+CA>VaoDGcq5eU-RRw@8hW>Qx2W=7p;ri7-|pQG z$wl5Bs+M=RHxY6sd6QI{H`$wv7QM&2N44~(cvDoecdvJ^O82IEQ&kJ^K5rW2-|yWI z>HCa6aHY0L~fS3~)Z^JqXU3-b`>l&i0=0o=|6bOS~n(PkK)R zFZY%MKj%FMyuw=n{Ji%(u=J-S_NUhDPv>~+z4a=Cy{Z*^RR#8{>g-ji>{V60PrXl7 z3j0O`D~1MEgzVCi{{ z+4CB+=QWm*p`wwqBWHuBVWc5=q|Y^uG>$aET36FZb5NxJHD>>7EMo`!es3#^6sdZV z@saV$U~j9!p412nN-O0I#XVSVB32vP$T-I6Pm&F@0!F%wdSINXkcM*=jC4s|fPeD- zr*j?s93Ck-Tc9+|DDZj^hcl4&6_|!q2h2kUV^g7-cuD?@zfN=mF5^v$oZtDCnz2wP zc=9?&=`@f>yqvyg$zFo23Os!BC=a z=h7+%9CEajS^adsxK&P<`iE)1A^msq2gf4a6Hdn-`p99LpC{Zq{eQ?qo3QWr`h`}A zoq!c#SM1Yr=~*Q%Y$d5=xcw+v7<~@K+F!PkQPCzr_=3 z5}pBIUP^4QP}g{AaTKQc|9)GDe9SFqbFqqVY2Qksv22>#KR@$5aS)k9JW*%@J~{^w-^1a^K%H<#Ngdb0Lg??HOhu5|7RRQFR8mO;=6FMDm?tb zN$`E@!p9f}-{MB^ChunW6=UF4z?bmu^v1)FxCcJN{qPJP#F76A9PyvTk^VUx;h&cy zAG{J=1A%ND@q(YDT&&0{+{aoWpj5B}{xFISPiTpE432z|L$^yM1Smuo>^t{Q#0a`fVw z(u=D^FD{KGa}S(Tl51FRmuNxLWk$Y9)Aa_2|Xbrx)kI;y1zLy4kxKezSOV z=fL`7R0aBVmFd@2qF;9=TH{W5p5wjo;1nOPHodzH`gN`8(Ph%3t3_WfgI-)~`fr)^ z-)ho-t406KqyLsn|IMTSmQ4T6qyLsn|IMTSmQ4TcZ2E60^xsnHvo)d5R)s!Wb^2^I z=(E}M+0LfVmO`H`m3~?i`e{|@r&Xt)R)c<8ZTe}o=%>}DpH_?K1I_81HKuP?o4#2s zdSx}~mDS>zKy&(IjT8K_I`sa}O7O~>@f@H5&jBp@{SD~%TlCiID%0yDeb-xpGleAa z)^HYklt(K6EKX*wqc~eT$g^7-<50ogglCV*}KU2}40Y%TK37#6Lp-@SeQp5e<`wvTkWaQxt>CZMt z^}LCB2NGqjml_qLMxtAM#W#wX;t$j?uA@i_0=+h|6ZRLxkEB{_$PH%Fpx)RI)`m3C zDFAhnHj;Zb@PpRAEu~LLIY%+amg*5v zxC$pncUjMjLJR44_?N!O~5 z&)311#Jq_;F|4Kb=*o%+bC;!`ZeK>aPZ#Y_6W`GvLILN8T78wxk4WNm#TkRuEc%uDTDbj%2^ccgfirehq_BW0)Eb-LCG?Ld>#DW zA}bEz@Aqa~Ne_7>pT8f4CLuMH#D937QW|D>`IWM0$dA>Jg!1)KD98~Wn>gMf0Y?bb zDXy>2_8-Ocj{PH$oM)^QZ=8Zex@Z@y{0dFm(?1hp9B_s85H|i`_07ynt01QdAI`+O zA(j%c(&xZOY=Kq3G_32L>Gi?7UI+Si-Ra3)M8EA~cxkiMCGd(|bvgW=hN>?-p62RG z$ZAY~wi5kWm;US-^k>V{pEc>vM(NLb^ki*%vQ_EHmZK+Ik)CV?da@Q*B@OzsQTnqH zda|NrGFB61J+dl2*=qD;E7Oy$LcM*TG(x?rQSU1BE-TZ!tU{lz8hyGd^y#Y6r>jCg zt{VNgD)i$j(~qlyx?RP(rLu12Shq^7+u5w!Ijmc4)~!5!_3Esl!y49Q4L#PdGHZAS zYuK1Iv{}R2tYHOu?A2LMm-S3#J?pZb^;pkpr>wiy=enywk3ESVdn5YlE$FL9=&QG+ zuik*|S%JQK6?*9{Xrp@c(p%9>Z%8k_b+GO#E3U2Rr8lIP-kNr-maxiNBVm=bM#3s< zjf7R!8VRec7QOUjdg(Q}zS@ModX&C;3VrqTg!NUEzPd$UJ(<3GO|Gmqp~oJj$DTru zJw0J%wO+!?YQ11(Ro3n^>9N;hOVaZ;opaMXD)1_6&OL z^|_8(kskY*^w`trv7bqgJ&hha?w7-zHgdK(*BTw)%u#~P>E@hrS>{S}y}8NUXDMrR zxvW#R^m2N$3V};=B$rDLDbA0Hn>9Y9|LcDzCBFS@&eEyYqHYFd+#YTpceFbW+caz|-RQGvCmEBCd+=4- zsm3(pe&Ye$Rr!eV67HpZ%UEN)XKXM&H9j*wH@?Ap0it;GL}jyzS>OMhnS*O0bG&&t!kJ#R*gEfaAosWUlw-Ue zn~GEgDGCx4B;d9%;{hDgBv*aV>qB}JY4wp-AJU^tDMU&kQVNk$h?GL46k@ezckpA?2sqY7k`Y=Uq#|S? zv_(L^h~(Rja2&@ngLRef0UyNStVq3t>r5{}^XbrUI`os7Y&!It4*jN6^CYAsAtebZ zNk~aTN|H{gg_Qb1N-d<+haIP=A>bRL@^SxN)NG7!J1kOwoaZ5QLO36xGr|Q3T@Wrr z=!(z{p*zAw2t5!kM(Bxf2|_P~OA#(ZxE$dMggyv;5&9uqiO?V6Due+D0}%!xT#Yao z;TnV?2-hMEMYt6@jYXJ@Yfw`VrXt)2`ZR>;z%vkLB0P-!*$7X8_i2P@5SHP}k*$(& zbWg&uJt@)@p&3GRgvXHftBOVqw0s4*0}&Qbuz*5|3MDE?Qjnw|NkNiA4uu>FIdG{7 z`h*q_?J5?>J*ft)!t`d)w^?BKX3(=4(k4mjq3fH0LJgA7y9IaL%xI#a81MT3O?<>?dMJ?Ij2} z&tjiEeVfT#z&Qi?c3~|@+C56zbo^s3`2+24A!pS2O654epamTJZI$E<24#pU1hqb> zg~}Bw`O2mUe-!*l0e=$t4K<6l>txi&^9DoBCFT+w4R;y)am0J^G~0S}7Pp(so0vKU zN2%!u60bk)Cj5}fG?5r`#gR~6C4Gyz1+Cf1t>o5q8@S1Cs{4@pM7e(DhQpt2>7{$E zybQ0km+7_fvb?t5a2(}Ed864%SUWDYs{e>L$NQ5v*PG|f_a5~Yc#nAty~n+!-m~6c zy^kUo)9~q?NIBg25RFuWcb6P#5lM|?MHWULk31XM9yuNz9vy`?85!H`jY1fWP!wB< zF}2cL3jAzra|A&}+%saE-HNedw=(|g;Qt(iCJ0RtiV*I=xtQmih!r~}*mDpXA)Jel zjnF<;9H|A4GrcrOZHbVM&`z2k3jAzrUBrS` z4#L^g4o7l#aqJuSC9M8PO^T7P82O4(lXa-cI^-)xzGBp*Sk)@mC$_m<-&k?ED-o_n z7>sZY!fgnJ2)83_L--s4*LKQ%fv_FnON1Q=I}vsve1)(Z;cp1IVp;BMguMuVM=6e5 zDYnvG5L@6bimfcyFSf4SP4F`ecOyoC#P#t_V9bl)+U!1r)PBfg0j+i)jji^N*x1_) zS|W#OD6gtTW?ZltLJgnyE(QK=i9Q$T}-%JlB?meW+E$HvPL3w z+`)kJU0DH>yXEA*1!#=DgQ^m9%9^#$E34d5u3(Eye?3_w$l1MI$Cvd!tST^uTL1HZ zQg5yai3PYO18c|{M{u{CSSGYWxGqHgU?quIR@eRYbAMIG-xC=^^{-fPB}n!}8vf<_ zyIjYRYZ^Y6TZMR+Uy#-%)ak$TKQx9te4Wv|_@hm5l{MTuz5c=Kn4d$e zD{|s%qW*maa&;Hh4ANw!SN426(aJ#?w3(C}@M;@^Ce{vCFp(OzgxFhFxD%wDUeEuV zROm-5vR<48e2t|Rs0(_Q)JQbMT(J`&usQa5HwOOwd$IkizLEuL8tAMJvkMFQhPyeIB{}5hAjr zjU?4?p@W2WXV&^FoRoH-hpL>+t(Hw3}aB$m3WH_b55E zgl}O-)`(>;3A7On{aHqyDxeOs)(y<-S3!-XmvH{U8uRAZYN-?CB(xf22u1pt+@In1 ze7U1Uu2#r6k|3pur3FJCWlNt6?pc>qSZ$}s6&;x_EiZlFA60TZkQqnh@5Clos6;pR zdgMPE+v!U|EJp^mfLIZH>%b+x0CZw4BxfM^baoE=Jh+3ISEL{WJvG6`3E4wELlWCL zo?rR}dvZKI>_k!xqpp1=9REO>2b_lo<%aq>Wk3N&T!$-D zW|HcR?f?IN&jP2|NX9V(`ZbOt3;Z#NF)MWcc!0aPMXZcaiubQw;yNWpuEe;Hk?C?= zk^2~#4sMag;}TPGrIi0+jI%%P`{OD&N()7Palg;s_hWyik5gn!qI4VwgY?9sqezrG zh2CLs2V^`q(u7Bjj0wjFNW<~WPm`GW<$nABp}+rDHT&N&GbojVE&TZ<{B}8|Q%diN z44=|76!$y-i6#FI>u)AE`^}X9JfVJ>tWvAEjeKDo7x;Jv#FSFUT>qGj^u*(} zjC6X^_zyfrXcf#17{#S#1{u}h6Mt7~B=>OeJb}6fXB?o5w=HW^{7D{v{*iKF3t7!d zm^;GKkrwFT=L=($lHmUcRdn*p4a*=+&IL~^K}+J9jK3$GJi8106Tftk;LBk8Y3HsW zJ;8>)PGKqk$-ghNbk0zd($xPGd!bcv2EtlG6RZrw;z2uv>CnYLqERWKg0oaxvBhac zKTi;|mB1@~C~OBgQ}WNAgL5gQ`Mzh^);zO93yCIdCB$s;K&tevgckF8;`Tb7jpM04 zN*ozw)8hM~B>z9GaY*&+6vpvfL^59>upG=K&{r&2pR=PsL;4)`wN$YuW-{6LX<HgSbn|-(~567ZGOg{RUW;^OH~$ZOMHZv%&fS_jzt0=yX46 zyRvkll#*}?hvX>R2ELqlt;r)f6Kg0${=#zEx5Q@Bdt{Ca%JS=}xzVo$3lD0p=R)*% z&U?Wu9q^Dd?0NqBh`%=;d6$MVP($gWPtiGk1Hg8HWN4jGMtn^;l>8e4PU)M!#rN;ip<80h`gW3IrK};b zzeu~BPQRcI9^%u^6v?Mrn?`1yet^TzM|0pl>y00gCCdM@P zQ#9Irz(%0BG zks|ikjAOK{@rx~_eWc7!u_rYVedWrSSXuUEWRz-o?E98L&ljD*N&ETwNl98$-M>Rh zD9ayL3Dh$E&+n&kNi0R?L8%+%L$k2_)085TeHrmGgd%xQrE4B|c91IVFTFeXAs5DQ zxF`SrLP9)GU}XBq#}igE5zHVP~u_4GrW&qqOv{f5O@?!QPYEA8LkFKx$o z{@=GKbz`l>n(Wd3RlHKx4ciUr3H3-kW+&1q^Iu#witCq%{+NUWu7vZ21S&`A-phUtUjOcoV7`OwQrAyWHspjdkS1eZW?WboaX2IS z$26HgIF~Y=v%2UiT-xT)h2u+}T&4AqL*{)-Vtya#7V~Qs@P@UOvpdc@w1tdE)PiLN z;~u4)2+!a_m#6u{xlQzz*^47qtl`V}SFtZU{P{OzX8CrlkF!$V^MUhHId0*7e4t<@k^gc$ zlH-$XSg)iszOhf*K;#7Lka8@e-xnJXIkL*hz8+dA_C6@`tgal#a0ZM$zPEvLMK)@ilQ|ZB8vA}&0`cRK0yYdS3>k9l06*fOub@1v z;`sc2tW&T`P>QZw0}`aqP}3j}>>SEu8Pe-m0(hlN|A@vb3E>`diucDOlLC;^#x-@K(dg3?Ld zs`Aur>QQyGdJIo?%)yfr->IeQdlgfA4ZIUy{nHqaEzf$+dd|qVbL>2$qut%^Zk%uT zurDz>+r90pjIQ=TdzjJ79%0{L^tW%cZ!`wkH{0WktL^djUB(Ue-S$1kjrLS~sxii% zW=}V6wI8w{G79a7?MIB;@f^lu#yESCy~vngKVd&%+-*N;KZP&FJYzp&++#m$KWj{} zpR?b@7p&IUYm9mJT6?`Q-`-$T&w~_IYdyadDvBi7cd);h`X9WIgHuK){-ZGne zA9^2}$=*laM`jD}WA9@#B~mL=%S?^biPSOEBJCsX&6bfVktt?6p8EY-)xqYehN>~{ zKR-t$<7tK#*i1a3*a|kzz*dh>C|YWHW{-9r_@aAAm$VQl5qZ1kHm&~F|?yihGt71f{dWdKh-fvr5A!dV9VEVlCK zS<8V};LdyxZ?S&|bzi66$9n}gVylGj+I#@|CVVBJ624vj1!}!r?Nn9pEaxsfP&v&q^4mR7AUq+Rn;=8 z88ua9qZZzLU(2Xx)Kiu41WW_qvyHP=ZG45JA#h`(nW|$nH=3)u_>xz$s$#S-TBv$P ziqT5dH!_S2&|4dsz-^2+>MSG6XbarV$W;yS#AzO$tjfpR^F5=Z(Gl_si~?27IL|l_ zsh#l5l!xzobXHZ33;5NiE*M>&j4oA4MwhB2qf2=*x>P-kt{%WW?VifCFOje4Vx-|6 zKXzZcFH-y2cq6@irF|862HJx_x!S%Oc(6TKRkW|MuK^xn4}r{U?Q4OD+CxJrWXbux|h-Mla%K zQ`PVURUzcuZr_f)MfiTSXWwDpp(6G;dz>ndF^?MAciDG=ez$!$@I-qe@=mfRAs1!= zXgbX8a80#Gm)K!^GEeDFMKKMD=;be5_w^8(~xUI71-_LIO%?WN#+%64fgwpH`*KVY}E($2f&-`O_2Pd{ULZZ+aG~{i@gPukL`~k^Ar0M zRR=TCHgJA!f3B*?e59(&e57p5N5@rp=cIE|8BWZJDci*$RSjGNAL;O1e6~eZa`A~! zVB57-Jr_S!(JklVEns+Is|S8OoDQC-8wI7jTV7RhE4UR@l6!`GhN|vXbStX*czz0R zCUYyhl_4R?O+v0S-Rj`4;no1Xrdty{wcXlydZ~_E2N)Yt&vMT~D&|ByrE`wk6!d0p zGfO3QC%r2HeT*hElq_!ysq4I|7ogcSnPMi+c++ z9OK@B=NB=z;t4v;t$61v=2pBp0&^=Um|H=?+={2_F{|RqQOv4{F{@$}n^qcT!rC}4 z$=vGVJ11uY%M6>Znq!M_Zgn}gcH!LWB0UdunNP3bOge-!X-CeaojHeg;~Y99VfL(; zFnihwvu9;~10sSM^j6H{GC!8*oLIow@I20j1)T4$!+iH=q^`s_PF#HT>Ql_+TQPsR zn7wvFA3TW;EVI@5cpCN~o>!MS>wL~uE@rD=F{71W!=ugEJVW6z*dCm@qMW%r%v^O< zdCpcYXRGp@t`a#pIyS*a^$C71J&%lYVh&PQDh znSD&-LgPX;2~Wy*Qx(#z;_ZFm3>4lyM927-Ni@ zVccrmriS79`f=)Z&SI`SV-GyhxDPzjjA?2Cp0R%s_%Fsw>PF*b<7L&)SY@mNz{f8s9wn z0I8ddP0;N_;}hUdjZYzMtFcuz#Pj=~0dF(5sj+yH|8wACqZsrrj4wdhZhQ&;9mWpT z$Jl9n4Q=-tdr_Ca8~af1H^w)h>^JtSMaH+rx2W#{;0UWW-3T6d$w|RzH5#P|RWL5#Cs#z7Ocqaky znfOZM1hcwX1GuJH6FjxdTAj2j^&w~60=Gkh7+0bkR+!)Vfw=~Z&Q-D+P z{O>}%-Jlh4hIyHqjCT}VuAahs3i<aycKw?ITrXfvrye<-i{~3Tbf1Y zUBDB}39!lC=0xC0<|H*5-%Wf--H#_pA4aa(=4^E<-i+`kQ0AF0pe}f>R6S(=#e5lf zmAMK!ykfor{3^coGT400d`(?ut~TFN51VVuHNbD1Z$r*nb1f|Vj`<;YHk+G4|Hv#> zv+-tyFVrn~yTW$V>r3-XaPBa70Pi$+LZ4mcF7WI&4?(McnEz1sn1{{7s>u8S-~GJD z{L%bT^)!Dne^T?!BjyoMel~wb>QVEk>TUiL&r%neznH(MZ1cEzTxFRj%oD1ndD1)y z`mg4%YNi>(>m!Tcs2J)V3qN4nvVk3|uIg^pv+4oYw;BOAwwkC%t)}>9aFLa4C95o} z1->j*WTje};AvxJ1Gl%@gPw!0UKLrnR<63i%Cjy5?rrr}H(OU&SEwhgK2~2)`r!*z z_gMX{t5l9P&>9HJU~35CYps!>-(cOK8sVF!qkwO;ZdC29oA52GB5S;L7vj6EyAe;a zCLzAZnu2($HC2tbrdiVv-*3$XWtKG$@q7zkq_ZBg9#b=|h1N1qp0$=krg%KAwZi%U zc$2kBEwMhdJ_X)tZ3EBe*5{~2F}_k;Jx?;SWoMqbrAS_>u1&4I%*vS z=Rd7~0w2Q{+>5Le)(PN~b`3Stu4&g)v+P=SE#TUAZPnebV>eLC?6d8&RgvA$Zm4?O zjqFsFZKvV;xby8cc#6HqZfCbsHSKflbAh|r-PD!z$>!P@*%zt)_Qm$aD$l;$zFf_v zH`ayTST}lL{po>SN8ih(zva^3^6cU8w<^%za_Mh%p}%F?x4_2|@9I`a7VqkOdRH#J zt8VnD3hX=WJHaC!)m8QcdjhcdRWALiO7>)XGW3~ZPf-`z;$3yK@3Zey<>+I%^s&yc zAFv+)|4e(P>Oz03oBas4vG=x=p{r}Y{r;%QZ&r)AQ|>H;6@U3IO!-hK~HvTv|A zKw8|#^5|m?fseHrbn&jPqIc!eySl*MYHtO-*e+I+?Jw*v)b;ju8>7|!(%zwNwRhS( z)g*hD{Wnnd*n8CF_Sg2;s-L~r{zlEP_uH7s?F04!HPHUf{!Tq+AG8mG^1b~%_z&5K zfDhY;fq$@n0RGYbNe#A-*hfJ5+5Q>Qj@n1nNc*4maY#F1p8(HE`=n}P|7!mVTw<3% za?FmYNe)iW)P0WO;H%?~>6ogYgJG-|Iksb~c@BQ+PRDgH^E>4n%=~yUzo+iN%iSZO zly@-aI~AM?pr7HKp)PYOIu(H{Ih9mjr?OKSxT;fC&2XwY)gV8~Ia3XGsyo$zYdAI3 ztxip+CU|N&wbbQKZKpO$ujAAOrJhp{lIuJ5RU79l=WI|KI*pL4vC|m%9H$B7GL6Z~zQHtI1a%gKh! z_D*|n<~TVhy@S(1o#o^@dC)oEDL`r`r!&gBz_|dqx;R~+^My`V$m!;EN3M&U9^kpy z>8Z|fE^#hFDZL!{A{qI=!7MklM%TgVerGU)Zpp(+@mXI#;TP zo&HXL(64f?0?z>FYT&`nHNZpgCWJ|N|Ikpx*E!eWDg9y2Fvt{7J>MDOj8Maz>z(UW zcW0z?lPYpXJNOoubE|W!>g|km#^OB;w>jfLxzo8*)pf=@S*(^jPdHBiFL9PY=9A8oD%Dx)EJd!ToTt?+=Nac2 z;APIU;92f0hqli-&w+D=vl5gSoEK2ai_TwwUv^$byvlh6{I5E%g8rJbT4g)0JFg?x z8_r)*$2Xm~z_Z4ATh(^fI%|R7ao$1dI%gg5yUx3)?|SDw;0?|O@W1c84|{HOK7h`f zoK5Oc=R@a1q;7UTLMdCEEy(+^^9l6%)Y%I9XU^xKf8l%y3-54tK*CPE6{E=6?fea# zdz`P;v(7$eA4>Vg`3Cg;&VKNJ>wF7szjF?P{=M@(=!cv`u;D)(9NC@2&SAC8`N8=C zbi6kUJU=-&nmflFd?C^K#rXyJxN}?;I47JFD$gl#N>m=t=(_S;&c)z%K#{Y!>v;aw zk>_tN&)GWjoXz7oTScC;xjbj<;#P61sB&&qx2hVzGqj3sJ+~g-k8qaTK)G&1x1ky; zt5%RK=V=vrp62ol&E*-|bv#4s#4|LPXK0<=bKUmfFT$BvMfXAXK{eT(>CRNQ;|&`R zslo0ncNQoQyAP`y-P!JJ^(Xfc_YpP8o#W0?)7?M0e^N8tx$az0=DG9K-R^vMKJcUN zqsY6!eGGXQx(ii``?&kKn(8ic{|w4vcd^QJpKzZ*-X-o5P@Z(3R2R8R-KGDFyf=Zb ztE}_?&$;)Udv4Yyz1eP?q)8Lfq)S4&kfcpFN=hg#fs#}qCTvBZECvMu5lRsSl@XT_ zbwp>>QE`F6-EjeBP~2v59p^VP&bTo@W!B$}8;<@z-}iIQy(eu7RnVDv{cm5rIrllw zdCqg5^Q@oG^Z9-i^3L2l74oj!yS+E$-jlmWA@}C)Q^@;r?^7P$pZkE)|6uNeO5sDf z59#>Bxet5q%zY&H5ykmv?xQ;X)7-~&{PEn!b;nQSKH>G`KAHQZcSi31-2ICGK<)wW z(%h$VpYnb$_vxHg5V;3)4|=!e{w()rI{Q%WAzk&E+-DU2+1zKn8*&fl9@g>aa-UO~ zd_MPi?@hTcAH0JG&c192x ziD*J`PLEFa-Wr_|ouQDu(O&P$=*;L$#hHwz6tXYUoGp50^h|GEbXIhhw^8;{&eqxK zXxiHsJu7;awLpBG)AIQyghigRIfp~9aXJzICVD7r*v4@3vN#nGkF zr8>SWy3G6I=!a(vTcaDI8&n!MMmH+tV06&CF}f*IuNWPQG*^snj&9a7z9`a+ zF}fwXOKH9-`l61%6lvBMeJ%RBj=vFoUupgz`i1iR%jlQhp6FN6ue@8ZtoT|iEB0Yo zaTv>r=LsIk$xls`kG#{culO?TD-L2`@e1rKuE4(Ho!D1giG9Tp>?`iYzG5f#6|cg+ z;>)nFxEA}0S72YU7yF8@#lGU5*jLoat+90&UB$9PYLC#zfCTK>vHD3&+3V4HC>mN&Nu{>piq&2o>*mB&0EyvAx#+k!*=R2_IxY;ZLDFyS7Gbf8c zYjkX0n&xC1Xh_F~Ozp(d;{hx^UV^2^cVX$VfThPFaH|}49qTLZs<=zucHSh*W&>th zNGZIl;$7a^74NQ4*~-$8%2w8f{*S_cE_-3!6^~auuK52YD`*3iatW>Piz_eoZjm*j zOT6nU4^$q|@fEU6^dc{#nOGo8Id7G%vQWQ`K{7iH?3m!&ST56a7)xrrX>#NkRTt0p zp1>aRSN3mUr;J^*T_(mF*;!*#?bz|JD3CY>dZ-}L)cM(2**SK3$Q;n6m+3x3ZU(k%TA!>}8qUNY2 zDn?6e?y5O!e>5PQx`WZ$XkD~E+8~>}L(y7TFCzenH3e`NIzcBx2> zOUS??WW*o5K*ui>i;(e+KggI>UVXpTf33dX=)Xz!;XWw-AOl;FF-yHVHpD*z)}I08 z&w$-$K;(Teci-NftVU*qw)=X6&H6S>JkXmQ(DB;LNnS=)dgXmxmU?BKTzL2S`hK?1 z?F`s-7ECzF^l`?v3|Dt0gBiUTyBxX+WWsa9b7jxZ)@d2N-#6*o)>;{R&-&Jz z*0)*6z zyBeCj3-zyFdlxR#yvFt|6g>03UIX*C56&$I=N7@aIfkuL%-SQ0W2{;gwQ3ElT9s#f zS~YxH4SZU)Uccvcz^6S6KCK$|Y>{ug*(AJK9gJB$j9ER5StBf26)agJEZIKzu{oHr zIXJOVII%g{usQ1SA=t28a9?w9Ul+iA&B1+L4EHq#_caIi)kkff^NssDCB=R9!+p)c zeYL}VEra`NhxM9+^%{lsnxhT$!FqMl68d1hmeU^kV7)qFy_Umz&B1z|2;X%GzN;U0 zs|#MM3r4F8E~^U`>k#}^7tB?cUa#j}21B(KR;mY9>I!(LD`1?ifMq%aza(Bs%+e`p zW0T$-oKhd0(i}X}91PMN+|ekkQ9pdq08G&U9MJ$A(ID+`4II%R?9d>*&<41m4RAq+ z;DT<33pxZBG)lWY1Q#?47ql5JXbW7>W>}!Dut1}*K$~HKPJ;iLqixT@{0!2JP~GYh+NA^gcs*pEwLKQ4urxCTbz8n}pSU?Hx9f0%)7*an~Q4ETgBe8MDr z!ZTnJnqU&#K8oCRl@9{Lm<(Pb zexLz%j7}VEJ>P_;Volb0GIyLGH&u?hk?4x6+@^fzZ!^&5zQn z&VkKu1(iPp9zO&U-wFml2nIh#&pQVC-UZga2V{LSnEDRT^h5N;bD-&?py_iU=vzV1 z$3V@8z{}@CL&`@%%C~}uZv_i)1^J!>`Q8fhJqGgK4)T2n(NYICnQV zcPst=90>Oi2=~Px+^viRd%(8mz_z!5YPW)Cw}N3;gJBPWVNZc!?*hY~0kPf*R(%m@ z^fjQ-*Md4<1KxZQ=<-f*&40Rd|wHgdnsHt$%vq4PjW5m?3(h9KBNwCs-kkLvo(MmAUNiflRFwr^C&{0O& zIndCH!9EXxdiH>Kj)Hg2fp@NA4897ya}K=o1n|y7;GJ{eokj4@L*Sir;GJFIorl0X z=fFEJ2I)M3k-HC!a}JEN4~%mTjPoim&f~y1*D|8dF`{1uia7^P2U1KjRvaJzNjcF#`Xb}t0C zI}O}!FSy+q;C82i*j)``cRGmOv%%`F2djG_SlyXmbti+>jf2&VgVi;I)wO`t-2_&5 zBUs%*u(}Dbx(QIa=YY~pfYPnTN6K@VC#?aiI|x>{9<1(ku)0n7Hhdmf-E+X|&IGGF z53KHdP`YtYy7NHk&Ig}68GLRWeC{UjxdY&HyTRuUfY0p)pPOKQwg!A|0(|ZO_}p&r zxdY&HyTRvf0-rkwJ~sz4R|PUR$K0+4Zz{**P38IEbKAk^=0N7EK<4I{|1HIX%JFzm zc|KU(cCfme!0K)St2+~{ZXB%cOt89fu)3Q->23m_y9rEg5=?Fy|0*lN8wZU$ z88mJjH0~yFxSK%WZUTXu#^cILaJX~9;cftdYX*TE!Pm+Xe68%q*UA!nt?UPrI|oee zAamI@U~)Gxqa9;Ly9P{d0!;2EFu9w+2 zi*5a@e^UBrW$xDT-}%)6{dO3fX>LpnV=)W|v9-LZA7r6SA$FB%6wH<-9{9Av{g{5a z_(xe+C+pwe=3mQeIeq2mQQ5^d6r&VgUVWEV_l8)oV_jE@2v=;U)-z-y#)QBuQ0bLZ z|L;9Yo-=uha&C@>Ys4{xA0=hLb3a8KrhMOHIZ`?6{gm!sLP!)AV|y+Y7en>QVmnMY zj;j=?U#fBF@RGFR>p*P4Tfkft`>Xcu?TsEw{(hY}x{INR()id_x{F~@@m&;Z8V<|7 zRA+Gwboxm{$}IkOTwT-AJcWqbm#{Hnl+<1>1q;(rN`0t%3aeDz4DIf^%C03hF79vg zZKYklu3WpUZCg0cJ3v;#fQyi+C2a$e|@{;-@{ z$;J7Ou{?KKT(gu@o=0V-x8PKtiM@))%%XmrLb~o)8KZgP%7=6%B~wNp?TwVnffPy_ zDSlbG8UC3nXP2x0_1|ghQ&0LZYVi)iM&TrMUe>FuOzoZN%g}5ajj%tVV?&>W@Vj(X(5g%&w=6r)I?uHLI0E{Dd|t6DM`cqqd)NJ5}r> zV;vciO7w{jlTxx+u6#KvkEiASC=MgnLjTk0s&zeH?z!9<+DNI-EI)z0{li;F`K->B z?wH(x-tS3UQ>niuX56-2-)(+0tiQH9TYqglhJ`t+jqYtSOW@hl{k4q%iJC6e!<2hr zdrHMoo>h9*OULz4S0%kXkKulC7=J15v5#7^54Z3qX&b4tYrXxcU*2KA&gR?|QePeI z6Swl@Nsbmx;ir@K{JX97iqb%|^ZyAhwNs@YGO>P_e#hj(#fa;r%U5sds&wk6CUZ|3 z=RSQ>`oUxSxSrtf=Q+x?YQLssw>~KDO>`VvHnM)qe(4#_(k9AXV!Qcu+#e)8fX=A* zBR#t=8HrQ#gQH}@1wVz>pH4R}>-g?=rd((B3`zU3zsw=*t=KjC6?0*63TgqIE6qIP z@MD@^ySV9m{pQD(|76~o?qSHE>9Osf<<^w(N$*C_Z86+`;?5h(bq()ZEzhaV-Mm75 zip#04l)oKIJN{kj6XM^Tb7lDJJR5IgZ9H1FGlweGb^6R=InRuqre2nUUM+E_?z2>oeef( zr$2EIof@~(XOBEC-Sx;*3R&>%lZ@=;{`bf+=kS}j^yl9tdBf$nR(_NxLHZ>Njqa?Q z5hVF^;mnY%{XC*pZ*y(NMc41D20hMLmF^SEH=1{(_m&!)=ACjsl6SDcsiOzQZ#}8S z{4GDR9hHAsDsjHCfN=CwiOI}Nxi+f?@&1kU6-j@Zgw4Ot;rC5qE%evr$(_-i$g}>^ zhgqoIU*EE)V5wRRep@Rriw)RZARem(mNSFAfd@$p% zJCe4gL{PElM zI`nVlgmrXyD)UY*@WaJFvVXIv&bqI==&*FDbEO$=xh5wyGwC1f;K0Z8|-^y=hE+r(xesLT1 zmuj`(H0APEe{Ay}S#Z=pTj{yD=37r6i)Tmt*M1*XX${g1+vlkLukL8Gy!q$TztYEc zmwD)qyEAvNbCv^#+QzY%f4Z814I<02a_)Qw+Ritdt(uJ;^>v(aah+`*#xdp3{wAYK zX#{uqp!bXCzLtx)th9Hmd<|iGucdQIcFU=jLgpX1@>PCIY&+rdNn5wGrM{(fi_$?7rxfsOA1su5l2dvsTe+3z_11oA!>U`Fee$fXKXRpR z-$F!)QC*EI^c3(y{f$*eIHRysGFe)7Dd3?_g+8$-|W$+ryC$%eURBl#|p^saK8kCy zi&;+Hep{cbZ!59*DU~PJS}a_+ft_FIGyj}RCmpXe^Sn#Qa&*AWQPbCy zkB@%eRGd00PyHB1+dx|+v{fJ|5rIo(oC9`i^2e|c*p>l3@Z6mC`>%(Te zgfSw-w^Z+}n8{mBusb&=N#a?ZombzIUuHwN{8^|^x0!h=M)G7XZ~CS4R-g68^=)$k z+v#i1YvGKFia0 zo5NE|zn%2C!|RQmb8*w(geJ8leffXeak&Q|Z>74o(DM)@Zi(e`C?6g95LO?ozEUIO zE3I4>s`<&)<$f&*Ikvy#W4@<|QXNqqZ2TcNmKRIW)m62pqz`m;`|uiWZJAzGX~Zln z&*SDwHjj04*3#3dr5%Q|$9J+A+x9Tx%GV zO51jM#80YmCGKq%W~hYK6U)6RW-Jdjju;>8Y;Uqo)$dsOVL7zC#_3!CcKEwXZp~k% zYi|%QnD6X+b3A0l! z@8p?X5{IWyzFE8yv=U7Rx?_9m@ljku^h-0j1)ef4XWkDvB3F+xe@o`qu5MRq7B@dX z<@RIqH}@v34l@46_oo(cU-Rx)S*qo6O0LYvuWLVL3$96wd1G5VqFX5$yB_zquD--~ zEbEc%d8}qxt+$?vySuXCdyzY9*XcZUOeq=CeJu6O?xXQE$%DIloR+F4YTQ}Z2bZ#Mf$a&fdZ3VmHEABV?E zTXs!SDn)+c1LcRgqKichh%YGh4Ds8u;8YI*B69ducKwlM7AKhcL)%QHn>zKIA7;G$ z*b(#mQ)Ma4M-|b99-_~`-oM^kEmg$r-WvZ7|M$IN|4#o8yeA{6ca}5| z_j}LsKP^jM=c8u03LV4MQZW2L7Q6mYmbP9jUBctuYtSORKBJFpEd`k-?~T$QEb;D@ zm8*X5eVOBB$LgWXSZ0^^+05?DZtqK(XUUG$pG$3Uq4yWES9PuTWhn_h?0q-$(afj( z4(R~?!tcv`CG!>k1X+OkTYt!Q{rej;-_HDlzbW(G%=i5*nMX7KEPJQ2p5vclJJx0C z^#26k@=p!E9sIyQO_pVT=?B8QHApCo6 z2ekhu+5!DW|GwPaxqJK%XwUNd{Xf;7iQBrA8HliktJ%hp{Rsvp^{^}pox zO7-()*}(gX+DSF-q=9zQh|;G4rB5SDpJgb02C#3}CcV%1b=42lmTItU*Mw!e9<)Er zShj0I0o06TyC!r%&FFxdv1!+Y8fXbN?V8X8HPa58X@}L=u`6Q7ZVh(qil~H^$&Ou> zw*;-wQnW&?vS7E!%V+9j$8HIB>?*Khw*)(Oi)6>H$*Vz6)QTOuPEo8wy48f zmg&rNdOextnH64JrZ>~;Rb=|q^4n@dQc>FqDAV&UR?o2QYZH6s-;VMiPxRE zHKRI~xh?ZD9ltyy3%Z%xGq2F`9hp0nhgZs`UAJu7y;@K48d_Xquy%tO)I5uy5C!sc|aEL zR-R8F7sdNZHTd|u&Sklnjp6i+Ly*Yo z_g;PGA2R=-yMH(HUA?vMWxl6;en0blg*=*hR3ZPE`A3EP-^~A2$PY6=RLGAqKhp7I zna6bePnmzx@jqw&SvFVA0$DGrpB7X%vA?kCZ{b^14t4b)pOk z)FaC>Fv_52EOND>59+}dR~xpty0FC+NHJ9Ftwbx-hDvBPDxqF%ZY{> zQAvHb?xlZTfMTc@#n2k{;C)_?Y-_Fb+OVp%1P##|tZMaGpRTiJPpe0L`jD&{4Tr;C zC90w|sEYbf6)i$l)PtU=7fV__SkhXIC9NLy{=1cjJ>ecN3Qr3sloO2v`ZnuXU1*D{ zq%GQ~yF5eIv(}(3T86f0m5mUJqY*;kW-F@)Jy9iggR&@PdeO*KVJoN&rA!M-nWfkV za(bCwjTv`)Eht}_QNFaHd8v|(A6ex^`O<-npB9ua0rq=Zu+!6mwk1H@5};?P!Uj(p zs+Jb1S}MKfs7jW2TB2%M;%P?D(uQT4P8(?yZZ>047XiD4Bj-KwDJ=F_QhhE4yG>I0ph^^E~6rn|IrB0?spd$L_Nyecf z>d+oWqke3q&Z2UjMJZZj1e!o8T0|*2h*ESLO3@f)S(w0Vf?5^FFL{~QpYG#&nQx46j{kAGK*@o z2i52@l-9G1CHommCK*fiGM4OTEZNIgvY)YJFPiNAj3|2LiNRB8t`#6s<+9q)uke$(*CB z&XtwaV&**Q$Y;^G78!3QQ{&Afqd(W z=wtUVTGTLF6d5fh(aIJXGtNLOy9X<&PC`vDP?==Chd6d~QSY z>H7Ui`u%-aYrKfwe-agFkuhMBF`&p8Fd2^lrn4``iqIbiKlXN@3$-!eac>fJ=rkk2 zBpT6uSZkbQJUD~#pomg*8>7O0MuolT_0M5!m_@Ze$q4ZbMu=HPh*?I6Ni?M!u+}(< zvh7c)*5Hgolaw|aT4`uF*Iw9lc^D9 zE7lr!V6AZ$TLLFBuFS^TRI}DNi9&TB)*2@nU3Ort@gg*<#gt}s8>35AJi3^*#$sxW z*})idGGokSO2t}4#djIWc7uRW+n z_o5ozi)yrpYV>SI*&bA*MXbG@h5qww)Sfv;+#+hvRj56ep!VFHveLE)wdd)mJ(r{Q z>_F|ANA1~+m9{mgJ(r^P+=be+8@1<7thCjl`CN|XvlGo{9xH7vC_h)B{9J?bb1llx z(@=h{M)|oK)W(0{gKtL;owpckM5ZAAszhW@i1 z{pVOp|JjNDa|_DP3s8QpMfo{^^7DACv`wM^T#f#70R89jSZSL=1$r7P(AB6w8&H8R zMg>|x1-cj&XaN;yD=N@-RG_V>Ko_F|EuaEjj0&`X3bX+g=omAhBKprFGoflUpQkb( zDl#7`qU}5tZD#}8&IYudYteSDM%%d-ZRcvVoekJwt3ct|fE~69be;{^VXI(vHHpsi zTy&mm(Rr@M_F4sM&(lzQu14+IfbF#kG@lLFUaLU)*?{KrTr{8C(R}*YUW-tEW>J0~ zS8=G~X75?(JTvG#$IyAUqw{P)=eZ4?XFEF2R&<^X=sX+Hd5)p;Y)9wW&Wx~#U6Wbn zg+;8JOnRBZy{7qW+*RD=E%VNBh@4@JLK($S3Rg31(CjvW)eGG-OyAC#|0vsAVd%cY z;oUwY+p|&LN%xzhZ%4h-@W2w5X!tFkIDdv0I@ZB)RF8_IP|g*KohcnB*s=Hx{j;aS zlb4Rl|J)PBDIYZ>PjEtch*3~WHO^s)_pws5FvT*zVzzfvzZKIM6FURunmift49n(y zaE(1B*tWh8W2W4_j^UfVHA=_WXG664Sh*@k?0K*-hrg0LO4`ayp{`_N<|~e+axLfB z5_56mqjK581aY$``??lw$n8n_Df;b7HRhL8FWu)_3)RPcyD;~?KmJkLbH?v$(@_pT zE~ReP()R1lqf&)jd(`@zlp*g!X<3Om?vQ$x%DKHS#j+1ff3nNKh1m6R`K8L2bM6e+ zC2t^3$A!g_j`pX)J<(xr#_pH25@QPv`#5fi{F<*v+of!+-1LvsI*U$CiFa*~cdI!( zqg|Ig>%1fC{9(7Ul#U25u|=g)Bh5$c{_gs?y&T4Yxu-#Bw#QC90RmsJF?I z)uUnw-=V*>Fc(w5tY*3%-g>K&t{~O-Svsxk74Jm-r3(u zjZg8huCo1_HZ$XTHw#gZ*z5J`I`hk$RvN^kslB7aK29C&>Ww>_AP`EUX_b-Ym9rO!*e_@?R1_O?7@<&_2hBcT03xQ zs1)4}D#}mc>?$G;mfu)+YI9SaNk+ZWo+3-bg(hWK&RKGYa>!ASO0zFgiQls2TKRDA zs@$8zPhj`uygf%;{*WdmljJV_oN*cIA}g!J@2u{XlwrJ% zDV3z9?>^+tv>&Gaa922=y|#;p9ounzb$yq$^H>*>#7|Os;=l8I8;e^Gp~S4z_^+~X z_d-vn-h;il`fIB!+rRDhtZRMaN?O<5rEvA9@l)DUms)j_tN7U{|5BK%U&+tk_;2#2 zR5tGY(!TT@rI{^vC-gVIiI-Zx@RpBEDQ+*W*DLjX7B5)~D2F_=<&-w`ZyHHb{f5gw zSCsn0AAYci0sDYRCbzF>do4LlJDYU@g8hKeE`?((P)U zW3{O7k1^Z*C1*>|O03d|>GGu*rgpbfO7V2;a%lZW(n{?P(!dcjZksx1Z8ollx;t^X zOS-?cOG-79vo4-eS*Q#Zn#zfc)t-c>K2JXS?_HAJFHd)uX0OTK;9ZlwDSNYg+1--8#XFR}HG8XfbM~d# zmwGRfce~elw`AWSzjm*}m)&dS#qJ^Rb=l8m|Hivle(HYWJ(&Gj_GjL=vyTTGyuT0R zN6ud=o1B;Xt@0@Ke1BPZefUDZ+x$oQJ?1&eUlHCM-s1O$F9~n+SB0+#@9_I&pYyf; z@!{*j*ZCXF*OPyO{5!qHA2Ms4{;0e*z02Qhb~yd*;h%)>^G^&v5PrZP3qKNm%-<=W zOP}(0nYShXR9WNvioaXFlK$48GS5iF&-}7f>hx3R2x#45szxo%3{}KMDcBlO$ z{E2^=Y(nnzFPBZoUH)^-Q;q-J=(Ol`|9SFDbEg0NXeyfauZ_-$_WK8A6Y?Ve#quHZ z9RF7H7~{X(>_hsu%RkHu{NFP_F#fCM0p^eW*F+CTpYuN|PcPq>wd0KUZr)86|B1Eu zPb}a+u^rEeKAsa>^d*VuFtO5@dnj{TGfMXUVC=C z{3M3iDbowplF{c`Hp6-6W>P=4dMth9pIq_02%3db_ zi2?o-^Y~AU@So^Yt175f71XK>hPA>EN_W_qj2+p{TcUg=%3ETK{3I^ZuAPpcL%xm8TVfsF5?f`zxL5v< z`+`1&uMF1c*gPk;%X8ue`D|8Qm;Lg~!pro1d3d?(otqD}5Fcu-Sfur>_RE)+c~7gs zZ(6Nt|IJ=qXnxbOSgLJOOL&R+NAsIji{G?XYZYFjTE(mNZT`^;_(#iP!M4`giC2M7 zv|9Y2)#3-O5kF{IEZF*ZI;+Kk?NU6Q6|rOMTl-Od)PA%d=p*uImc^!R6E4cq zMum8cs#W`(^6Kyy)qpM6CTzL3;W4Tfk5R2^z2|xr*mZ5gOH{2qLtW&Bc!R3N8&p=_ zpq}H^;s?t4d#c6iYa9NaYVq-u#k*4$?@rBlcdEg=Q=R-e{jpM0o7Y{;yHhRRo$9a; z+opXsmF%!-Vu#I%?6hcNmqQc%LLL1=9sR;;`h^bss@Bmjtc&}CpJ#sVwctxNqDNRt zkI+Y7P)GZ(!(w+g{!{C)+uco%a2%dfTkx4$hqu%gEP0R6@;Blqbp`Ez4=ulrmcN0P zzfmpxGPShJvzM!Vns3xP+V(Q+fA?blyO(ym1&^moX}xuLIjzIX=_QnRZx5J8Z|EbT{^-*V7s|U{AV%Hd#lTY^6=s;dgKyEpr1Frkn9H zSVx;|j@zVp8C(~dm%#}Cf_d8KI_ysm;Y~2Yo8T5~QFmjD`Z(Hc9qo15N&vvHe5#=UW+yBq439{ywcK! zE3s@ngstUnY%O=wk~?V0b=Y0*rX_EoC9j|*yEeRsHr$+Q!*#Ubb=YQZ!0X$}R7;ajlu z+)b;F+cVzUR>J+C4EJ9T_rDYFe+)~{r^5Z82=~7m?tcy3|8}_lli>ch!Tm3W`#&A- z|9H6naajM|u>Sq9{@Y>wx5E0L4C}uQ*1rqZzZ2GfIjsM3SpN*He-_ri2G&0Z>t6xu zUx4o~!1q_d^cP_I8)5pJVEQXy`UkM|+z-<~2*=+A#~;A)hj9F-!0|7K;}78YLpc6Z z;P^Y?_?N@+*TC_Q!tw8b;~$0N-vP&8fa7n1<1fJRkHYcqfa4#95>q`x==0O)&R0F!!6_>`#NU?}D>m4rjj!&b|}Q zemR_d4V?WZIQtqn`%Q56HE{N)!P!s1+4sQKXJG4#@btUj=_}yro8akdVCb7*=nF9P zH8AuwF!U8L^i44IP4ZjvTw~&+kI94HBKZ{&rlA$izy0d{P7|bWr;;UCXsd&!x8U^n8Ak=YRU{{+m3*(_ibJEEm5?8CjZ7eBBeDeX=|~ z`T3_O{rT9qZlZ$8%`c{IG?7&5L);?exjtyPn5s z|3&Q{{CfTy`ESZM#NXz>m48GtimHn0ikgaA%^{XmbZEw~S~G$z68iekT7JsWKkUKkQZFi=ql&6xB-mi(U=86Ki#kuPf#^^50O*Z|22Q z;)|jRUli54@3$25k^CcGEi;;sxlG6`CR8q#d3oie!>eHa5;9u}nWu!x*%qDMTCr7U zudBGu%iujCz;Gt9h=9q&^t^2dhmGGhsU!j?*i@B+Jep`?>*bQRLAE1EaP3Se_QZ@R)G(+5Fcnh zKG3rGKwE(iw5)fZ_Z7wbs{ZwQU-SM($L0?$^uF!=y^hT*+Gf_*EqF!S?EQ!SZNWEM zfN!)A-)I4=@5OjU3;Z^}O`6#_WPu3T;;FwR-%E)qk+leA+6Hi>Tgy2 z?f!OspXi_HZN^(#CEn6}6f*s2WBO6Ww4uxFM-S7F5~kX}(Z5mG-YgYnKkAo$bT22M zd+A5_vKHM-KZ=)H6fZ>-Fa5D%^0WSDrO13(D#<#uF8yd-+VG9mkJe>vtdjh?|8;LI zT9+oYE^AYY$tJWe{b*g5qi=Eg#r3F4)__j5p!(=X^|2P!M?XrBel#Bas5{!wbrg@{ z$7~(=MhhyAb?7(Nq2H*(o7wRwHwq{>jz`8suaI^l7 z^77zzFNZR6OYq9zl}huTKE;23@P37VAo!rt`AG1m3b{YHUvVA`{!HOt2)>|@F9u&!`d<#d ztmCf)U-2TeI{m10`cdf=(C74{&smQy^8^$){b+CcQQfrRhpivg&3d#n>(J8lqop|k zRm>pjmwwbQZKz-RQNI+>y{tz!c>?;Dev~b3XeHO9U|Ekwr5}yTdK8c+#0p4Lr}U#v zX+xJ%K#{T@ziR#HPx?`q^rJ9YhM%+m4{67tA*luv>i`qm1P;~=`rHf-<`A%E5U>sq zuo@7sC7@o-pkA9my@o)&mVkFH0q<%C-P#1M)eNrH4zASxYiPI ztA=SBRuMZz<0ZN;EZc%QL!s~K%-bz$A`P{Nx zheEn?U0yc|oP4e~*Q=0~xt01}om=ho=GNra=(s=Euj7&2CdGU~?s_keN~a%vP8(j= z`qAF3L3PuH>ZTv1O+V_IeiSwRsA&38%dAB$(~nwaEozy5lra71UiwkI^rLU-N5RsM zYNa2{Z6lalGYDHVDESBo+Y%7APEhh@5Vj6bwNCKyW-zp2Ftlbcv|%u`W>lwJK+l>% z&pN@!n?cW-LC=Oj&zeEZnnA!jQOoq_WoEz|1sPim*3<&#(}G%~KmW=6C%r9r?%IrU zqaV***i7*1P;T_+|1$rViu2|Cm%YuXIQsFj)s2^}KD=i2;hBC5NJ~q_A64A#jiQJ+ z0lcN9;=L8`RmjgOex~nVRQy8U=7+we;+L90j)J$eNN5@AST-5FeiRY?UZ#4tAu!di ztQqwdd(U9yYMirn;^?30Ak6lRAqmF9+wLJ*Lf8D%ow+X#Y0yqPx3|l&^}kbez^w{F zYK)_{|HiA^UeMAi-gy-uq=bpMnKzh=&=x&`Lyu4-SP5ti|Fo@k7n)ItIsa)@kpZmnt#i?L@Y1u zbXr;c*21UEn+8x)m*Egsc*vr<2@ZN z6Y*K6O0ZgP_@wQkv%g26i?jomp6v~>y(5MJ+CGxh&Qh216MkbC@(E)sd~%^$v2e`a zN+^8+&tH0T><~HPU*Ls8(9m>ps=bQ%~U-a^PyBYT&#bL3Uws zW}!q>^Wyq#N69~TRnjKP*YWE`F{Ezfi#xB41{4R&YH@u(cim$hp7UzC`zK;B*wrPIjQn5?NNv-WoP_fb( z%g5m(nsEo#(#_&}X^&NMzj7(NoV)OJJg&1|f~%A3eyzXh{`Sc)oUh?Y#)|#)x9;lw zPkD5B@?0DlhiqcoXf_o zg;OnurehpEw<=poE_I#T&26E^xY;wf(v&JIE_LY)7cD>~?*>!HM`Zi{)mTS9rqKUHIvs|4n z4W0jv=}P1Jpc#XAy6z&+wfOjQy^GcMc&}>e=JBEB-5px)q*u{BOTQn}d}zN)-1j=f z(qAlI{&I2fb5h(tPo9>qHI_a9Litm^G5@0ci}SbUU!MQH{2k)V-zKj7?PA355flC= zVwO$)o$*@X`2ASZZ#w=AjDAij&Iv!hGJmC41+QO&ALm*a{W`e(dfn%RULN1gi%{@a z>7Lq&ru)9w3v};Wy=vY68`j=XGn!QWTF-&exlSHRy_!q!*7)>p#TSHRX+ z#yQQ%LX2U_K3MV?ShDbSVapk?Ke9^=~bx^E&V4 z`nMMBxd-fdo%a^~I~4?a385$=;tK(-k1o>p`Y_L8f~_rdNVY zkAX~&flQBpOs@o)&SJr79DKTf1*dUP>H-#=#=)wWf>jr=;4}_mUBH6VuGpTS;nri| z)&*=goeX+iz;@FfFzoGM*aa}`9bni6Y&Q+2knARq>;g#k3D|BL#dgyP;Mt47vkTza zOTn`X;MqICvsYoeX$N@rYVhnG;MuFN-Lx7!y8xbj5>}gbfoeOef8$tcT8xdR#aL%r zj9sS1SY+CTEvCiTVp@YOro|amOIa53Gg)s9R+z@Iztkb?ewE%nF!C)}Uh2o@(mt#$ z?ZeJeKX#V(VP~lyJ4^epvowyKrCr!r8V6r*#Lm(EG&(K!7s(4-#AEo6Bd@n!Q-2;ur!W^rDiNFjbmY{84F9NfXz38&7XpW zr8OY*r-0Be0--NrVQCzk{xopUdvvpY}FCBl`@mga_{}9Z>F#E0@|1hlG z*RRysS7l$Nv#-|f>j`#oo(?auH~Z%7yA|@D?0c0HV<*O7Ck9|A8ek^|vf39mE&pz%s24in(zvo`|dseaEa~V6a zC*U+X;WU=RX>8N(>mhFfW@9&du*GPI)9~Rm*28IRg3}m-(-?!($iZoh!D+0A)5yYU zeA~Y#f%O0L#$<%ds6RWV^6FIgaJAad?jcmdD0nKMGhL z8;1i~3I|ev1L?r#*e-02jbm+W96Mv-LP@km8GyN9k44M z*qt25GT1mwO97^(1Eys=Ov?#a1KSlE-%@~YSqk5B8g{_OVO=_4T?*L#8i#u+VD)Pc z_P)m9VG8gt?O6I6$Hvz<*1g8D?llfSlY^hhIE$0)U#^mlV9uLBK`;Sh(+Oj9Vt9=d z1QYCHK0Q1bs_nz!41|ZIBbb268AvfX128$AFgd%!mxZrToI9i@SQ5T6RI3kP9ll!M zrYSfBhGzhV=fv>N@J@xBvS0|dXEUbx@1r4P3I1hyH4&S4*?+xGUb;1ap7~UJ+r;ztaiLfMmzmy0Q;fKNx>HEXd zBMhWCqUCTzop40E!~4Sr6z9S4L4BJ-p)-6ad`QQi4IkF`=fclg(Y*Hs|(uv_$!>=j)>)~JPj^7HurE4DvzpW6dhLrN7(lSiIFAc=}(mzSX zFcJPs_%Dk8ui?LX%ff#P|4kwPPx^(4@Mq!A^!@Yj=h~_Lc=))KAioTM>G`lvD`B6; zV4r;0rx5mO4EAXw>{AZ*sTcNX4EAY#Zb@#5w-yen7Y=F+4$6mv5(6a;Y77o)3=V1q z9Ml*b)CxE#KX*y)fKo6fsuw1z028$oCaQp?xINg2bJpQ@VI6K9hH4Ae;l|;qmcmmN z;He7Og4+dKRlo||E;y?KR^S$61#TDoRRJq-d$0mGj{UcB7_A*JS_K%b9WYu2ti6rH zYZb8VHV(U0z^dCCIIaR5R{~cNX-p>ApI*iO^wXm=qB9h-H`*)J$(hlaiZdy_ z$plPVONvQb4wE(jlhzr{Mze}zs*@pDwdJsC1ME_-lJ?{hoxL==RNt3Hmw65FYy3@_IRFV_e!SAdrrgO?kDmn*=_ISaFk;N=SNa%1pv zBk*zscsUqQ#$o3+!p=E+WsUH1+u`LJVc{C#-x^`w3NUX4Y>|zNf7=HCc6-gm z!VON-8r{%4+db^CdWYi~a$snl3$@+QDO5CBiT^JCmUqR1W*G7y{zBiND&)R|e*P}< zlfH+Qn{r@fl;9-Eo^fYc!#EPNykcc%J8+E$Dec=$r}Xq6gKZhk5(-l?Uva`>Vw}d| zKV}O-C8zKb(xTYLraD`6#$>u*Ft1MoOAtRKrBSMHy1&`4u=-|YW9X8~)IP~y_sfO2 z9CHjFM0|&b%i741SCp?k)}y#~S$V~I(YrNtTW!JerAS^nKGmxfE- zLg&?7OKahe+NHB3qU+-}@MAr@wFNL~OP^=95-8teo~1-rYA*e!w_cP}wmjG!;@r@u zx!)G%?)^mHPj9}sGj%07;!VVTtjl$|ycW!#d)rTx<)?5?@6P(mxOVW@)i%D#v(@9c zj+8B=9Q~GxP5EByyY^s5#+V>Q@)tenUvA+9}Gh?N)Tj^Vu~X+0f(-5awS=I*a= z>O8+?LnB=V>HE2oDVL9(h!)P=iInEmvQ+p& zx3L+((LS1|7PC1ZTz+UUXCq-OR}<4sC)Z_ySvBboY?az z=e9JTDc!{qh(E5r@je*q^%jkBw_c4F9M?B`^5mN2Z=8oDrFr!}iF5S7aeh-zqkGOv zLpf;hV5ar^A*ft29#cH^oya>p2ta z!R@p%%ZKf|yN^6r3~P7xX0h|4Yc!td+Wm@^5qp)%=RA>K`9?34l6I9>kcM{3Ys^10 z|7`6hye@y8w;PS?9u%z;(y#u$cZQUuId4kp(B)S{5TZ!to0==*0a;3Kjz3*c5z6JEY zb?ANT$#)(3t{~q9@?DSawhrBGJ-XNey4ZSju?2Lo^{8D7s9o#Pxz?d`t(WfOKjG@y z;pztA>e}JzmciBK;pztUhSsW7P4_VfSC@yYJ07lX7hIhWOIHI+w+ohT5SFeAmToYm z0U3m)tA?e^!_u|H%-qYw$~h%S5Gz5-Y}_DhTnHOC2pgA&jT?lG%fZGihKMCTV&eu=Y+OZ(jcbREE5gQA!p2p>##O<_b->0A!p054#^qq+ zI$+~kVB>~h~i<2J*_twu#M2pcyH4>t@Cw;mp@ z2_9}39&RH%+%P=cZg{vZ6eR_CxM6s>T6nl_c(_`4xFzs#!|-qo@NmQMa2w&_7Qw@9 zgomqxhua7bw+J4t4jyh89q;RfL0j)R9A zfQRdWhdT})ZU`Q(4F;|r2JQq{w-eyoPJn3}f@#|f(>4Utwiu>u2&Qc}OxqAl+b~Sq zMwqr?n6@F9wjr3dVVJgIn6@F9wg#BCA(*xTOxqAl+X|SrA(*xmFl|FHZ7X2fdSTiY z!?g9nv>gZ2)(g|N1g7mIn6@F9wrwzNC&9FBhH2XZ)3zC=tpTQOGfZ0pOj{pJ+fJCa zKA5&4n6@^Uwg#BCKA5(ZFl|d=+J<4;hG5!;VcL3O+E&7}ErDqpfnytiW7`DBb_yKZ z2<+Ncc(rDDwNZGrPURH3&yF0!K9tM>PUFH3}~^0wc8vE@})N z%_v;d7%bEn{L>nkr?oIoC&M{yg>!0#b2)ieQ)q zVVEKqrYabwN*JaV7^X@XrWP2cb{M8X7^X@XrWzQgK^UeM7^X@Xra>5{2!?4F4AUSC zQxS$~7=~#WhG`oN(+~{PFbq>03{w*f(`Fc^AsD717^YzurXd)nVHl<%7^VgorePSS zHW;SOFib-*OhYhCLoiIeFigWROwO~}01VS{Fib-*OhYhCeK1TzFib-*Oq*ethGCc* zV3>wsn6|+%4Z$!uFK10KOhYhCLoiIkFib-*ObswhZ7@u2Fib-*OhYhC!!S&3FicG_ zOtmmfn_-xSVVD|Vn6|+%4Z$$A!7vTOFb%;l4Z|?4hhZ9mVH$>E+6lun1j950!!!iL zGz7yG!7wd@VOkBtv=&xrE38sKe9|76q!Boz5jdnV?BR^SA#H_2S{@pEGzMd|3C3sy z#;6~bXag+K82r!}{Ll!@&|27_e%PQ9*q}8igGS(iw!#DT!vKxJ`i#K(jG+u_hV|JB z>$4oDXDjT^a@d_cusdsEcRJy9M&Na}!t3ThjqsGYDJL4qM~H)(pbaMDR3K@HB()G?g$kRWLMzFf{EjG*vJ(gD^CMFf<_y z%^(a-2t(5jH&X>SGYmJ=05>xXH?tmYW(dzco8e}L;AZOKW`^Kq8sKJz;bw;6W;Vmk z48zTAhMO6Nn;C$c*$g)`3^%hLZe|E>W(aO(Bizg|+{{L}nPIq@A-I`gxS1iinPIq@ za48hH8hMO6Hn;C$c8HStL3^y|jH?tO2W-WZoDKIf3a4>7(VD`Yf zjKH|;fN>c^yVMNhG6LhW6_%wLmSqH%Wi8CgILyij%*r^-$_SjwTG*69*pw02lxEnJ z5!jRw*pv;hDI@SGdtgx3!kvu3nl!_j48xkV!kR3GHCYU6G7M`n2y2pqH5rCA$>WV? z39QL5tjQp(NeVb!;}oelniNg(qv4D zR#21Lai@(ftfVqt1?o=^^=E_RD6+gjZGlIvp_g`Pb1Ne~#&A6v;A)?;h< z^6q|FohA*3RNJ>Z0`1^9<^fa5{x=`~>Htr0->L0DI+l-1qns}J0cnn{+{2?BmQsxV84l%gDxAyVfuLOU$ks4J{jMG)i5=VD@^c?ugDRcTre z=X4v!OdDQJ`=zCWT-#f>Csp`e3VmFEg&`}9a<(gMT(I||IB+UDC(GMzv>-K$lkhFp zgII59cXH{+rAG~F7*-92BKZ{qpQ zgGlMUDhF{*(siWouHjBej#Lu*o%lttHXH8~u`oN<|KuNi3cu_b+-OKWD5skoksI~^ zCg?j@@s+PMX9d}%Qeuewqir~~>Pp~&QGnfpfg4y7b;EG^Q zJ7{kTUJ~3Iyfk=4aEH)~R|j_nuM1u;)Z)!TDBcphHMl!?cktfef#B1@!@*aBuLWNZ z|0`FYGnL44rFg1#_U;Mxcp0TU>1CDjltN~MS%q8@T;k<*mn(EU7tHDVhTsNS__!&! zN#DAwX1^~DUMjmIuLxeDYwrl|P`Fti36+mm>-)~&PF?l7;B^Xreeil6zae;o?1h;1 zkx=>jLxsF0c#F=yHF&Fz?+)(P_q&64>-)XId-eT5@PJbObnt0?KO8))tMml2)%suI ze|cFwN4=NJb?a$DFOzvU82cy~dmkA4C>Xo5s?-O%ejVt#v!S#T{JanRyaN2Z4}D7? zXnC*qX77)Lznhh$K2Y%;pyGYt;eFuYCxM5zgNL649^MBY?vQYqW$-<3FBo_pElM9M zlvU_YM!~wT1M98;>#hLh?gQoS1LZyme7hHXdm4Ou27G%Oe0v6bdm4PZ3w(P9e0v&v zdj@>_0QmOF;M;xR+cV(XGvM0=@a?O?w`ah&&jH__0nMHP%{~Jh`wS5584&C)5bPNc z>~p}b&jGbQ2c&uijQRlR^fV~+0r2M*Fy|I9=V>tKIWXt5K$xdNm=Az3PlGT!pV`x3 z%hO=XGhoZ-fGy8}El-0jPlGMbfGy8}El-0jcY!TWgDOvhCr^VUPlF*Z14DNHu$O@$ zw}2rp12>)qHx59I4}cXP04weSD?X4hRYn(B@#SE}SAZ2?4pux3Ry+q*+yz#AIr#7l z`0zCN@C^9yGBDv;)E84A!?Pg67k~`k2r@j2`eF)v_)63lQ=r7%;KRGnT{x}96j<>r zT8k+VdtBzYDL zc{XbbiYc@cQ>Z4U&`V6Al$ZirE`lu=QAbRni?ELw;u zR1j03&9kT=rofypKm{=c@_Z1?`C!)c4^tq|2SJ`MOKBdSgXUoh{P{}o=Wg)l8__&W zfkN*>^Dq_c4t9H+=^3|xOOMhsZU&vc4s?2Fa9(hptR9^oobPQ1sqO=*?gOdLtM@!0 zD@kVSsSmvRI`HaV@alYUb#S$=y(YNEI|+r2oAZ9J>!3dlfi#AHDE(;MhCCvGd^Aec;%6aO?_t;p@P$dxN(H zf2@AoEJ0mIFT4dzyO&;gJIMAZ$aWvd_H`iJJ3+Slf{zEE)RUTRs9x~x>w<@Z&uA3+ ztorLH_+0QgJ?R%@EvgU1J0JXc@D~dCtKhHnjHayUQ=k4dg?uykrZXF$IL z(C=x`?-|hVIneK`LB9`xeoy1&y$&z$i$TJtLBeN1!lyyPXF$TILBhL0!e>Cj=K}Nc zUJD+606cseFYg_o;?sC}uLB#O1{+@nHa-J3el@6g3#j-sKHc|$jZcG(Uk)}tjUV^t zfsjvwkRJdcp8+B70wJFPArC;vr$NZ)&|q8*LOzWL_YQFKX>jrxaPnzz@-A@lIXt-6 z;=BELF!MPu^J%=c*MXc*=Rnb~21P#u6#W1w`b@YZ+@YQKCxtt` zuJGjWWZ5tu568U#M12}WeGWu@2H)*#@!ehrx;_oMK7;S}4lwotzT4|S+Nbf|z7M>8 z2E6?W@b+nZx7UHXPvg724(xpz?0p*SJ&yeN2Jj zUjT+b3xaa3zeuE_5JM zSi(OQHOLek!Ih{%rm%`%k0xXa)?gQ`!PzNINHv;}DY%1KxPvR<4vs?;G6jP$i=F&S z;SqMB48fm_cO};HpMjnHdQ>7)@C&o>3kR{2Umu!QWD0Bf%`gtLFb>Z_F*1eC{CadF zQ&`KdM?EryZe$cDViXRd4-R59r;oQC4#HU~%fmrbz(MrEL0rcy^V;0v++y!U_=pPl zh`!wN+;VRlti&j+La2aiUTkd(=Zfg!B9-YP;|ji%;f$s_lMs3@Dww-x8~mJJsY;-0Bprf z?(Mm^d%NK*4!~K=z*Zc9t(bwWD8N=s=RTPGpsxK;?nB-*oW(hC7Bg@b=fGLaHn9RbMbiFtJLnPIQhM)q1QVXxK2?6rCUd#%odf7#29t6_Froq(T(J@{Ez$G)rQv+rst`>rlw z-&H63t{T~Q)xf^1VfI}O;ca0LyRX)>`)VV*ub$8Ds}=0N>S6cQCcG_d!rMYWmKbXA zw$Ow@+OLHp8>n z-L(SG3mH5wWbwSv%6_j+cwWfhc_EAEg;sWe^{@kM6P_2Eu-q_+<%UTtHw^ zZSYp@cwT73mct;n944{lFo-RONjxt!;dx;Z4A%?{S04=5NibY9uv#;)T79ruC&6mX zRCw~#(1fRkCU&H)U`N^}cBHLfN7^PlH8f$@_%u8G0u_6((6Xosmz{I`4z6@FaElA*MQ@*0}OUP^@WW^BnG{BZZi4J^fZL zVw}%HRkD^l5d5bjN5b`DTv|Azm4xgAS!r3?!coB$l@H^O${uG^$hGoj2)prYX3x^_ z#79+v@-a(3o%YLNj>hCXX})!L=kK?~TUcIVELA>WIiKX%-YOU-xuukJKH10YbR1=* zH)cDOn%*wolruSw5lKrY{6|nds7Xld>T z$xY(F)<)82j?yAZ=^b{t?pxvxbac3Nv(($th3We&kj@c73Q#GdQA?dOB;By_6sKWz zKyj_c@V@Mw#phLODj7q(t;CJ-GL?{FC;Gw0{@;omTLV29FAT{Za5E;jupnexl=_1wWH-JEiI6S*_-j@=`BnsVjVWxLls; zy2EZA_lCXtUKOs=_h2}v?{(oieQyXi==;?0R9$s?c)GsN3(u3X`-1QSg)1jQckj&I z=|#*CwI9N70Bh|AQ(XfVngs>Tf`4{`e`Y~Gvml=xAfGG1JhNb)SuoGlV4fSnJhNb) z+rd1uV4hhpPiI4C6wEUV=Gh76nFaIQ4(7QX%yT=KXBNz}1GKXPw6hkpvlg6lD>&yi z5Y7&;&2I3_EO_R2@XRb2W)=)H3wqfJN?8D<>}IEH0hF>9l(GOmIRHM{0Y2FQKG_LA z*#SP;2|hUtK6xDY$K?f}adf7q^0(Yy>lD04>RalXQZUYy~F?!AWx9BwMMMd9aa? zdRYNBk_8*t3O2G4Y-AK{qyuau3o6nHDiVT<41kAh1rN!Bhb#pT$%BMsK|&fpLRN!> z%=VU#MP_~J6IKNV?Ef(dN9jMFw07C z87sjKR)Sepf=gHlcCZr6vJ&iIC75L;xSBQKGFE@vS^Z^M{cUIUmu1CwB5S?ntn#v~ z>9VZpYFX1|X|WZo=CZ8jR%ob1=qm}F3Wmk3G0z8>ye$TM;5Uj8Dc$h0_%}} z)+1|JkE~}s(#CpZ73-1BtVcGn9%*GgvW4|XBkPfB)+1G{N7l0*X=gpMiuK4^)+0Mv zk8EN+Qe-{S!g{2K^+*rvkv`TVLCX8vNvuaA)+6<-N9tLRRI(mf$9klm^@y{}-OYL= zVm-2f^+-GGk!IE->sXHzS&#UvM>4EO>R6BTupaSQk7QVn)Uh6EVLj55@&wn#dgOT4 zBVDXVj%Phm&w8Yr^+-MIkuKIF$Fm;kVm)$v$`f3~dL+vlB+D8k%eo`Wx+Co&uE@Hh zhjmAhbw^LiL)=)(L)=)(L);jvj3TRy9#$D+tTI|yW%Q(c!;PhU!;Qth;mq60N>&-Y ztTOsoWi+wA*unZDVtvsadxd*f#k;(XtS`D*U(_Gr8!lpf(arjzoApJO^+i^r-s^2; z5&SUxnC1x^HU2KZ^ClzmZ}G4Af8F2qx4Cb(Vkphuek*rQW_9c_)1A>i$Foaz+G*b6 z=CqDUw^__%QbL;o-|5hP&1`8#t$kc}ky6%NY5qs&9B=QqeLES?3fa>jEATcu*PZ2= zot(J2_czfh|5)d2?}F*LkDS@YH?p~vJ8N?>#V^gZ=I6x4I$Ao1U!`=!|IZ7xnX~O^ z(ym1Nt8e?Sd8m~qc2;edl9g?0rK3EU1y+0JSP7~4@je&3HvYIWiA#pqoKR}Xb1z^Y zL3fRxJV_==(Y+6qsn$R`r*!Ada9!HA6NR->>1uc2o>Rx}=`7IAfq6gWJiDDYr9CW) zWp6Rj1MrT-(kXLUio*Sz66xMdb2p_p;~YuN_+{Tk9!*;!=v= z5Ib6QQhP$eE5hf5bMnsn0=KaEZn&UuyX2~mo3nt_|YUtg)dK)A|_!xw9w|FZC9I=(%; zUEgmA-=IAhX16M`yLlDx5;@&ddoXn0_bA+KQiZzzz50HC_}A1gbJ+ILszD0I$Mmnrth>lux(Mgq2;1HW+kQMedm{{cHQag)-1;K;^hTKU zMws*r+N(yG^bFdoEbMtBEO{d=`8t?!=bxw%?mG|normvU4b$BS$K8mcsvoAi5q7%~ zUi)|$?J5}UD!A;b*bmW?V2MVf<-u~V8veQl&Uz92SB7_12lG`8^R*7nD}wV{4cpZS z&(#ReRRz!03eVLD&s7c2wFri*3T`Wc)jA$ls}WXf9eh@v8c+q3wUT;J1(VeXlT{0c zl?mS(zSVPDm386U!?$}I;H?_NcZPR+&X-LiwWJ!xY8_lv75r2q{8SbER1LMH8h&aK z%v26es+w97!9y*gmaK+{%Aj7!!ay~`Kvly)t%G}NgnMd*ds>8sr5e`B$47Go+*1VW z)ClWT1?v>SH?4$kYJ_8QHE#&N%yrbi2tFbM6On;;XoPXdpte{I*U$*dPzB3S1Iy3| z%TP_N-2lt527aLiexVV5VGaC32IWORoI)eYi+-4eMmU94a0(fCghqIT8hC_8xPwNx zgFM_pBdoz{_<{^fK_eVN4IIH5X5dZCz(<&S_c7ldW{$m{Id(Ji>cz~ZmoRf)&&;`# zne#Gc&K=C0%_8$f(sf^)zu4LMP|qY%#aJr zjSI|*8$jt#VD{Sp>fQkA-pTB@gV}EM8zYU=7^~`=7K;7$^{WgHQJFU3%?^3{< zpTjQCDaMyE`|V)%+W^L1&+NAWjJ=-OZvz~GyCmk_PdnXZx^%Q6PW!Lnf*2} z?=3R#9bn$u0IuEuu6_dZ-XinfqI%4a+FaNBnxEI-M#eAm@nL%8@fXQJN7Yqn#UPNoN6M+OBjlEuN0cGZx>gp65N%d5$!%k>)Kj z&%4O-7P6FomNL&$!dc2T8+&kkjjr%@%>a9VD%b;5$?l&DcKlSbvnR_Ao=W!R1nkIJ z%wC)fJ869O&{VQBCd+P^D)zxtviGHu{VtW@CIxVi95_e;yrUMRqYnHc2R2avO=tj3 zD1am6KoANb2(_RF1yF+mdn0o6`!)3M5&d`#{c@fjxt_i_q$hQKXbpX0L_fHQ9F{k>}=z#B;|Iwyk@*wO3ruwrX&9B0QdZDwfTVSxZpbw4fwjIcLP< zC-dA?taO~C9&0^wv~%u_mhzUy$d7i3)hm7U#8v}r;XOlbk=mugAPDcV02<>btb6@Vyp|T;@yQ%90O(C-EPk9;1f%QcA1<2qRAd6psJbnQ(_yx$~7a-606oTgD7^OncoE#%l2zHZW zd~Irc67JVb2ZX)73sMe>A8xjo~y_n!xs9lCG=lGs{d-G|0<^XFSnboj$W)t zFIHp+UkiO%k-jVk2D~&zd4Cc7LbKFg2EP=xFDOqdh(+Nd?I3Fp+r8=(3R_PfmrLQV zOJh`ZLcBnMUN1+lS52>%qu0yR>*eV6a`bxD%zvBWIq!?Zmv}Yt9QKXj8@*)e@f2;W43BRkg%=fgusElWVKMEhyD&wESe^v_r9{#(Ie-i%0YjQI_ z*C&E^E~RIz((GLOxr#jP)}|xp69T?hW^03{(tR#33yahw)MI9+`3ajsw#vE2_XrP1cHP> z!c4$0V?h)!LB$bJoKO&Oim0flNJSJI#R2D`ZMD0d+E&{E=Xt^jP;hAHS=(8ZxAwYK zl>*{xZMy&WzW1B@YUkFiTX(8c=j^@K+WTz1hb@ka2tD~(Ih*9S#{C3XK)PSV-4Q&1 zsFdt+>+d)4RJJ}=@H%*p#|^%lG`rjO_FJwE?q=!^abKCER(Q*;w|vFVCfkFwN_jW1 zTW%-Uv&|Z89b9G5p845rw%Ynrt*_;?={`99Ii6AauC{KyK0zWWR>fajb%*W@{*j`!dE=lCLdp{&@2W6~>< zaSMN`b3zTT^eg#w$@XueFV7((f&?7Y*D}C-WFuQV2UWH_R@sUo;%Y*zEvd3KlyOm< z5zz$3KMja>R;XPNpV(?wR@vH(RkrrPe!FtN?HJ)@kz?@~=LPk(Tt<5~d6l5PR)ma7 zHW?Lvo61@)qd+I4vQ|4rgb_xBQAUJ0j0nR#*BqX!!*h-DT*Hjaau}I~8Bs+UQH2>% zMHx|r$rVHyErrPv8q8#}=j(NHC_k%Gnm&i;Z z$Gjqrc?BHv@;K&o;+U69uRj>`I&jSE%rP&QzJD&qyh4t7xg70sIofG*e-Vy(9XaOZ z;XA;r)@Z|XQESXVC9}W>7UW$}QbA>qaGkeB|wZyfEYCZ1~mXNY5-!?0A!K< zkCFEeX3&X|>yMG;4`y#=0Ef_PdUneM&$CjB(E<48d>9Ku!Nv-}Np+l5G7CT1%I!69Fi#q2W$X^Gw zR$^2#7m~k@k+Y7Gr;d@Kj*+3xA}bvuA049_xsa@M5nHBB1#%a1(=n=!3&~K&$WXT@ zLmgx5^{F~8Bu^b9Pn|`EI!2{&AsOlz^|t{-9bjT*>@mBt$IKxs-7bTVcG*jIV=o!b z;F?|bhCSIE_F!*VNqnr5_?Twg5F$Pn&ES;tiHzkF8Ovro(Si6_{x79}zkR7mW}e!P^<1CR}ujWu&)61iV~l( zhtf88z5cL45TZcNLQ3dSCmLs!0;xKE;76^GQ2Tm>ZQapZrAT1lXMUCVB-A> zn<$>2cm@G4B|1Y<+lfx=YgU$!J_J_t)qmuVo*#YD)b4rD`9h8? zXPLYT`7d`|ytg1)moY^6G+wp*=PUBNxSk+eUHr`;62eyhslT?p=iq2;G4z^o)BUb_?GpyWM=C$L$d=v6c;N467F!6TF_8;I*uYT1zjbKQqB=nF(IcOz^slnFxn5AAC6T!TT{EydP_ymM|;4 zo>}4bta@6)eDDZ;o+$IdBlLWt%m^QhP?Y)L5&A+=sv?`130_Z+C`ykgN{`5) zDzb)tQIx94GI~c*sv@KGj-pgT4xx_}r4q7?O2{%QA_>Rzn z%3-c|gi6RJ=6XlyQ{}OmXoR`m5o#l&)JB%k%Zf7BJHlM=2tBSSJ+3Hoy(3gh4q>i$ zgt^`k=6Xk%>m8v#mdBj#2-T8JR7*BdEjfg0$tF{>xrZ=!J3?*b5c+0O=4(gjp+(6W zH!xE>PVTsYIof^69XBvXJ5C0)cyY4H4b0AtlT&WU;FKGZoU+V; z7iV5}oXm0q^Rna2%Z@WIJI)#J#^M2-24-hBFgrWW?CdzR zv*XOpjx#$u&W!9hGqU4ksKd<2j+3WuU`BR5+3E(e)q}`ZH!v?d&b;h6nd=7TWyhJ3 z9VdT1nEdr%W@N|7Vh?66w#h8)I9cp!veAbv<*dhcm0XmYLM`%%QHe7Fml_EwiWVnKx}POS+y}(sj&|u4k6?aOOwXGC#VW z`O&q^kM76(=;6$X9-c9KTsQ$ zY~=`}fGG8}HOx?sFgH2EtmFvukt5X8HZdZIQcpXCaY2-s$Pp@OYnX!^VfJx^kwTQ( z?g&-2Lzrb8=5P-M;KE?nJFA$OcA9r)?s#VgmFZa z8Nop=aF7KYVHR+NS-`bP&4bMA7H7_HoXUr4X8Xpec?dJlH%{e41M__2)IT&(|1g-! zhXyJis+rpxr}AMib9>{=>Wx$R(7;UII5iK0nZp~W=3y{34-L%QjVCn^mxnIL`N*7Y zaYo#esd;D!{UP)R)xa#>I5iK|%+HNe^DvnCxp69E;?zGhQ2#KP`iDN$KU6a_H_n{g zIQ0+J%*l;28#ljxEf%&#^Dj%wuV;iU1p@C|L!OX6W zQ|HjYjM_MJY2(bIjc+siS_yM$>oaCwD`GBfJ!fAlW>wExX4Lj$Mr}PaYKL=#AHiJO ze$1t<=h(hu#vE+@m`hvFT-thO(ROAQZ9TJSJ16I0liAn$F|LeK9X*86Wt7pS!|1XT zvuGpCCD@gE=_cmVMi_PGFqbw$?eq|8r=#{I_9bc;#-SY;heoNRuB48-i7{!EI_j>} zQ8zI@jZ#P5#3(h&DAi#`ZG>v-N@mnXsHrYv^ctn6x{NVwlrd}vX4Fn#BpYK!ZG`dc zXvVXRjAx_FsGY=&+6ZIY4vcN1jB2BdYHdcf9T?R{8Pz(>rHxR7-NXnt$_TdumDo*; zbE8S^ip=E}Pbye;a(2Qp9;z>MY2(ziG%%Moo}p|BGnY2bx!lH6<buSInz2qi!FEX!NoO!jS%&U!42{VXFm`d&nH&KNhh${G0v+qPT`xGJ!-Kk~|5rLgZHTzT|u)7m;C?w{v z8!?9hVh#nw94ulEU5GhkQ$irA_a@rGlXiwz9CFancm_s==IeFCNj3uj?Pt2h^ zxy_D58w!aw6cBCLjc7vw(S~52^DOe21Bf|fkZb|ZpOKm;S33X^fv@MKeG zGL9OaY|h(POiW`GF%3;j!=jR>7qeySsplCbwr7EM42rcQKs{mARcbq{gcX3;}NY%EGo6wBvwxHlvtMe>LiZ- zJh>!s^bc5O3eSSjt#N=OaK61q1*}5J_YE#=FTT&e% z*i7)WpaJmaE+IkH_V9sk;&E30EX%L>7tfV6PH!!v>k3Y5jxj zkK4AMfnXEqZxQ?8QL)G1I2(B1B<`1po=E;y=Ojl-T^at%oe#FaQt~Ltvur(P`gq(@ z7`-i7y%d)x>$iL-ShMZg^hwF}2Y=EYl1n^Z>TGb1ay__~j5AN4Tk<0~1G$dWwWRly z{7!;T<9#_sGXJ&p$f>RIJ~5Nvb+9k)b&GqBtpxAkc?ZXoUqD7BK)D0SJF@lpw7!#Z zjN~0_z24xx)PEjPzL%6DO|a8cOD5jcdJt*jsqI?Vrk6ww^)uIt zZ#nf%rjCPrgkWv@j-_`bcL2XSVaD*6Y_XD0E_XtdC0rjY!v^bvo?FfkOX*$7=jBs! zg~^^e*}adf7nuT>RAt5{>ynL_tn}WMDrp#ieOD^Pm`%} zgEo+#lwMkTb5X!i5s78A(Ety{JA!utcjb{qT_a2Q{!+)}yTSR$r)2DsKe<0R-{iTa zGC$;eSP!1tq;r9i=aE$ENI!zT$XVxsJKX_s(h9^rs}SK_W?zmN=0^J#`%Xk3cOmLn zjo9J|`$_vL`)T_b`&s)rdyW0P{eu0X{gVB%z1Ci5ueV>ZU$r;b8|~NZ*X=j#H|@W} zfBp#=Y=n_kJH}NO_P(GnbfWE-}wAG0zgBoh4+AtH~Ny z6Z34xIhFcwPNhDaQ>hQ}&k`b^wM09^L_2edc7};?hKX>7iEWPJj7a@B7g9gYg4B;( zbAMu+wag9gPp-L|TyuZooF&9LONeuhBFuc!fgFE5rYyU24NxwB}5FuL=0SF1%*Tja)}azi4x=zB?$A^663EWo4=NP z;sX|cGeyJ)!u;jr5gCXP83>d0t|mSZCO+U0ABYhj2ooQ0i42qw83+>@h!GhmAuo8w+kcOVT^ExGQzE6gj<)9b)p&JW--DI zF~Y52gj>T1w}uh!a7MT_jBq=laS&UeN{OejqtTl{S zvly{vF=DM?#9GUUwU!ZUm=P;9UdCw>s~Y#42dSva!q_KcsXQ3bB*(zuUr<>IJ{QJx zj<&KIqbVxxaLg2sC+TfvelCb`GS~2P)Q@Mb1zUd2=0TZjg5|*L*lPV2o>S|4ZEj1C ztaY2z63%>^vlSl(+JkNWGQ6aW_u5{Idy$M@GB(Beru~tO)pDot5*1}ITg`*+L+&H) zqweGG6Yi6kvF1hhC3mg6&V9vw)!pC~d39(R&ED}qF&24?z0BO0CY|eD! zU>^@*%FsvLM^qN}^(bZ$ecXLqwZlH2z|5Rax=*SIXTz~M8;*lxyoBx7x@)ohI(Hqm zf5nAf8^?SV+i!3;s0fZ-qY_SG;7^hjZOa zaShkF*FeE}y?Z_EjqZ(DbCY|Ma`=07`FnNwyL9=xbosk<`TKME`*ZpGbCb%KOFZn8 zzbB8sCzrn`H&DCacSDQ^o<}`=$UgXX#XrqMi;_4@^mRYLa*h(LO=1oiU;M9Ll$L@A z5QpTSv?$5iz`n6ojwrubSrP;xg(3tB07hb|5B~gr>|u+REA5-UwEUOfco55r#~(xl zsn_zJ#6dwEl~y2cc_i_mxBbOsZiC||BPr~QOTlj@>7jE|{zBziGb4ArBS&WhliVS; z2)z8j&(A!}Hp|#neueV4MZdx;l56@1Ub0O*T@gJuoP(W1fb-3D<|>Prc!)T)O;n-NDMp*v{m3&`YR$=yjLTQ!S&nSw~=*$XQpBv#w&^bQk7LcOfg?m3(v+ndmAq(RpN|tH?fA zk#R03<6KUzxttl(m1LX^&O6zYjB^DU=k8>jOUNM_^kpZkA_g7B7uZnzM zIr+ZsBsN6CnHnEY~?CuD|aCmQ$-f0EBP0L%u5wH zm+ow%z3G3pr~lcR{%0Y*&3t;8)$}mC(ZejJhuMi9W}sQ`NFTDAK4h3aWGQ{f9Qu$s z8OqF{=8vD@L)!Eqv)IdL(T8-{*Jsg(jM0Y-s{PpXA+za2cBBv4jy`0V9%Byu!&3T( zIrI99MjfD>la!pW}*8KQK%`Fo%9%n0{am z#~YvHjnDDMrym%mADBZwu#|pa4#y#%R)Avi(-ce>=vG{v=mvy)Y{@zOTc*HP7Wr^NX#tA`1e*62GJAe_lbp#gF zKggcMX!|oC_-%FDci^{H*7kjAd#yxXzx{1}2imB!B%5UZLbv|N|HrR`HWaj@%+@5o zM8+)W`F;53qQ@7`gBoJK6GSz^Hq1`NTA%R^vWvJZY>TX;s-H`k<1GD1XSJr*V4O+4 z`@i!G`K@=_uJ0uk<)x#l?b_S_tq&ublnT|Uxk6KMCob|gA7a~YT6zlHtt1wi*`B1A zXUtDj0$WHe6Umd1?1vx&Bk_$devaRT(g3rplvB4wb zRM{$mZP9EBrG>i^<>+Oog?XIHpY zUu38qfz2KSUjGmaxR(NDy%Ol^)j(CR2aftj;HQ5EZh8~&Qd96yprP#r?F8020Q~kUVX?up ztp{fL19*|@WTmfz-Gjm79pWB>+AN2P$R#QJ3SfkU6`} z%-Nm9oZV(r2i}0szNTKs`Fx;0RFlbfE#rL7lbOZa%q-q~^%EYuGM6`>xxAIk<;^!N zqev}eMsKrGY?NZTi_t|D7+sC7Sng(YQxT)gs8q)@ySI_qy@kx~Eo63YXJ+>{GrPB$ zb3RXIj&Enq{CqT(ZV4*g5>&d4q|z-xrCWkZx8+p2?Z&*`X6oG%RJtWH=5|g{<5okB zTf+F8@i(=nahGwII*59=1m`^2i>kN1IotDI#v{gKP|Q7UJfRX)z>TB=Ew=6>x^|+v)*_GpMBMMRn4P5Zn^Qc@eYpoo$;MoPLvI(2gc%~Q-%RCjZ+xm*q9{3`pH=b9_A ze1UnBT5jHK-mK1{s%|+|bt9>&TW*S~ZX{K8qdC{g7*=^1&AC>_QDHZd3cJzfGv-T1?)xg}iGq>s6QNp1P+RP7bz357k4lJXKFs)5ydQArsre zI@S}($F}Ih^kHgWva&6Dj-I3DlbfAEZgvJ)*%oFAHERAwYMGb6bpXJbB^dC85eVs#9wSmkjZ=4R$7=d+?!9xGby%zWi$<|`l1>Q;Hw zekPc;d?K}<3C;qv4;7#Z&H^+pV;<(^tWi`(9cY3&&;)g$BdG&TaQ>fhtdF&bn$YE} zS~QGRvdX9r9Y}p>g8I;4UghZ-`q0s=U9^Dt%FC$_O;8^?lKRjD=l|J<^Z$%X&YUcD zCWkR!IYGtfNY4K=j`g<|Q9as~^Z$%v-J>#A;aWr`X@WEVjLVo6c`xQMFQ=+BK~?EU zR_a>BnSb`-%s=C(Gfl8|*GyJRDx>B!!D>mvSSP8Bb&>+*X@Yb9jA6B;GFD3}V`g(c zYbFij{KiqLQ+K0Ip_n>_IjrnHkrltnsa9yATA_t%g*vJg4x?J3g=&R4tm%FdH4AmD zhgr^=?t`dbXkktFiBvJnpo*c6mBXs3WvHW;p@mh%=2Fp6%vxeQaW3MCR5zSSbwdl) z4Wp=TXra1c4r{tkq{g9+8iy8Y9O|fX7*CDE9M*I{i8aZ(QSUH^mC4Fk)BPl>9*SAb zy@c9_7HS{nu$ucsDj-^@fH;iR+)ttoVh$^roz6;T<he;)xiAbX683fVSaNy^P3Bq-`vdn z=0;XZJC0e-=Q7K=FsUmmK^>E3<~kqCT;~Yq4K8G^b2D?Do0;o8iMh_r%ypi`T;~X9 z3@)TjIYFKBNa~amN$tJNm3B52%FC%x-k%EPkyI!rsALOKq3lqhoS>@Br9yc*70QXE z!tEOS8nv7X0)FvmW zO}42`cBoBGP@6oR+T;XP$qrS?3F?uTQ;(dW9@(KDc{%mS3F=vjsb?vso@D~{EG^Wt z6jRAEjY^glDp`h5$x=rp%XlhTTBu~1LnX_ZRI;2$CChj!Sz4%MIgd(~;-toJwliDR zQpwUnB}*-pEG<;BWK+pf%najZ>RDQ-XBkgDOAFQ0Hr3M(wJj~ww#=ZmrG=`NVyaqN zsA?HcRm*vSs*pPC1a;QGqt2xdbuP21bJ>xZ#679AuB6WTEGl0HQ(=7ol`nm%d>KLI zOFfk@fvWl}s;UpBo_ZxBEf`@GtNTGa|_Rja5~T|$-W z0P0i6QlEOnHcFhMsKi-8CC*V);;d*xi6e9Kp3BVRh}X&Mq^5W!Ua6Wzh0ak_=&YbN zXGI&@oT1)OY(L!F5!;JWdv_{gPo`e`1nOcBr6TqeW*awC3wsJaP;|uzH6;bVhbqLoW`BuU`WH3uxqX5_{ znbQU|B&oREW}83<9%OG(?YZ?9@*3!q9Fe+B;3|S-hndyY*2c1Z8cl9p+ICZ%eKKDx z^*?i)0JFdqNL4jt3?idTj?CI|t=q}4nxi8QhQb8*MJ6j)$YS`3aEwwOBa6rQ@2ltL z@Tk9}Zf+L!h&dU0#BBD*?Rb8Hf-tC?8)ygHQ9GE;zO!A1wy#}=wy#}=lCK?=eA(7QgLJ(I3>S7p+d2s7I$H^XPhp|{{i?tNqk)dKYUxvGSF4uZXHWa{ zT6*bGv)Nm2tEl(c;{}TP0Nct`)Jyv{@bt~E{YGVt9y_s770x_%-fY!);JgD4Rm)~i zUvRj3RQfx#$jz!F{$&A!>H@@Tpc<(f)b2pEj#Z1*S?WS{HSnmvsfX2b>Q(iw`a=E4 z8CO!D#C#?yAE;TC8l*<4oq>(*4~*(mb+)=lU88PNcd19z8lYG2seh=S3@_uDrfP>H zcT>I9U^N=p*EHZ~$EnlQaHBP}A>Br=H zHEKx|s4`WJSrW&nNor4^b_;>Youe*R*Q#5fCw~mc+iSquz52xRYgwM6|+U84S=ZdLcH$JL8K={{6n8-|h1&lze?^7A2#ES*#ZP{lgT z`!3kwL8wK1f;vO3P?xIf)L+zU^@Ms!y#aLZ8^bi(B|m>e^7A%SrbVhd5XoVvgt04- z$Ai^8bs|v2bJb<)dUcz+Pd%w#R&N3q{1&)hPV)2flb?4`>Ay2(i>p<`)lRBW?W+y} zCb>u@)Oo-iZ$PEu`_)rwt@^wAM12Ru5E;e1ZWrTWF%Z#yKtJQEN$sZ&1&VnRaLbkI z3iU_K#Pfi9TCG!WsZZ7SM#zXHKj)zrEm1vHe^sw0041FcO!O#qGLX*m)s^Z`>JIgw zdPc2RZ>!JL4~A_-ljnPM^7B3r)KayB8lXm~iRjN}08c$eouZbh3)EHW&+1O~ka||V zqTW%Tt4)SuX zaHnw2cG$Uc4qdm$&d0CP>9Jk*u$gn6-t)J|&hOLL={JA-Y>hJnd)OXZ>(pZp|GGVL z#(Zb&{Oz)H=Q|VUANjA_1=1d-Y>#a|VBQ>O_wBK8gg_3_-;#R0m~0FlLIp-?S=X7b zdtmJBi6s+bZzb1DT@C}Ixon+_(N&@k17oGwd|LPpSaxYW+Q6%WFM{=e{9wg@Gn7Ls zwL+x+gjh`r?*Ypgi(w04G4B(6Jb5Mlo&j%9Y!Pi&TA5$UfLA0Iz5}e(6fxlWh%JSW zw^#Pg1xpK-c3jhO4eUo)9*gHC1rHXySD0Hkyl`3Jot?~1u})>3W_P-^(@RAscfO=} zQ|YYon|m#-npgEg)u!IXcueelc<+;|>-y~1clVm?n)7OIu6Z5%mt(ldhPA8{wXGfP zYESz*OK0nLI!A|fL`QY5ZjZU#I_Q|r*By0%F4UcLk@+QfqY_=JyXdaE8`z_AU7@?{ z9=g)}N-ETXL#oz&bYER#eywYDKUAvSQP-Q_=mC159;65BA>fzl^l(|LN9d7ylpd|e z=&^d79jhxJHt8c#*Y;?Aj6PO3>*Mr7eZ17X)r(N`_GGc8o`^xgU% zeXm}v@6-3|2lRvbA^os^L_ew@155X~egZt%Q~GKBjDA)>r=LeX-52#s;LFwuTZUS? zuj&nYqkc`luHV#u2Y2?4eow!zKhPhd!tS16(LT|i>d*BT`XBmB{T2AMZ%}9VJN-S_ zv`zX){gd8oDa)`-OIwx|vTVyiIP6)zm1SjH?W`OtY(=c7m20)P@~}wm09Ihh1K2aVO3f^tsS&!^|GqK%=NMQS~XU!)lZwhu4RFh z{F#;oc5;iBm26jAwy0tMa+{ildl$5;8PcY|Cp|4KXBx)rTSx1()a(Hm{Fqkn5F`gLt+>lOrtx4$(Q ztoLWu0Baz4?=MW5m--v9Gv9&znjJbUJ=68P(EQK>aA8NG((f^$V=+hdaiN9a!%jf8 z-$hd87kt=a;laRyEdl$rG?c)s)n|s5fde}m4A?o~zgB?vIxn;myw?S&=X(*@u8YBP zT?&rtaxh$1g5SCtycXsu2BQ_sqy0zJ>-}@+M(|lTqfYOw!f1idx+8Qan5?@(cXMX# z)uH=PpZ5XO<$Xx1@`A;BOgOC2Q^H<>yLv9PMk?`wxq2z|a%e5MtM#E*z+G(!ZN$vh zuZP}{`R9bc0(1 zEXx=N)oh)ez!3>Uv@`gjNvKpi1>8^*IH74^f%bCtb!JGGJgUmhLH_#@K&Iwn=J2DP zW1M60nUlcSoQyo?!@&9kdmEqLUjz3T?5`1foa*d`z3#!i?u~l3`#Sr9Rhr?<1gmra z*rWrUgOW!I_Lq6QBf%RrgDF}FH0%VN`63+oWYnEq?40VH=A7;7dfk(i=9iHOP$M{%bhEnE1j#HtDS3{-#gbj ze{imIu6J&5{^3&gu4*hxT#R{wLs6eEUn^8>h_Rv{H6Dm z_qE^0AL@7UyZR&iDgLg0qu=CD^>_1k_xJFp`Fr{Y!c#jAzFiM^L_LAXl>;HG!>i%I zY6b#7xe}Pu)j*3@0eSf|@RytLxEh$%d%)X1z~fb*KOX~e`&4}c^z1uhkb2h`VhlIB zW7dVq&~-H#vyCdzWf^0j$Z9qw7z^>3Y%GE%Yl^YhI1O7YG0re{hdS#_W14Z6vE10( zSb@iW#!BNNW4duM9-KlOgBKQbUSoO4?=_Vto4%hs`V!3JNN|ppzopou`xG6E@mAl#@qruF{i)) zsBcC>U9&UPGt)x*q4NK1RQW#!qx@ow=x1Z}UWJkRT8zrKVhmo5@%BlKu4^%pzJ*cq zGx!dhpxtnx&B()dR%%y3S5adRvWMHF?YKS3o@(!9&#>p&i|l34NL&Xs!^5a{_@@1t zqa54Gc5rQm1 zfcx3!pKsyr51xKDTHFG(w1w^>)F)elzVd8$1$57=+{?hDU+dlmhWl~%S$CuRmivMG znftZ73CdsB%klD1JE^PJ1J$Yfc|*K%@bo8s;6?c?q59pcUPj`9|ICwoi0W!?(! zLhmx~8t(@0X0+FPya#{PwvT&HduzOxz#eb(-t^w_KJY&AzVN<=diW>b^ljhwbNpOC z<`??K=*4^B(c7=_2l>PO(SF>Ygx-9w^#2)X?T4V2^*sL={{(-rztlh5KhIy~U*TWt z|H;4AztdmsKk7g2zu>R;U-#efKk~ouzx990vM|?IPh*@ijU9Dwu+u*n3;bHO64g2z>*VwJ{dUBlX)DJ3iCz!hWwm!x9qDAezp8Hv+_f^{XTpww? zkIyYJe#ASk$X>0X`g$zC%Kg1;zJ}!uvOn{9*`K*o_GfOC{h1%?{a`=R(_uf>Ghsi` z`y+BMaBz-JgI$Q_LZ=b7lLHpg*~9LH<&MtYSe_MvF5NjWv>Emw+koB2Mg<>df0O_* zo#}QC>;ZNz>|$J%e^BZGyIi_DtHdXwRlyPP>BkT-x(!SJIwOdjai* zv=`A{%rm@%_EOr*XfLO|g7!+mT z?O$kbqx~!G?X-8$-bs5G@7vw9_t4%;yPEbs+WToApnZ_`A=*c1AEkYgcm65br)i&| zeU|n)+BLM#)4phD;oEtc-_$zVS7@`Y!EzwC~e?K>H!>N3KH0N24$6=;q*6Uw0RG4E(wRH;h*`?j-bZb#9>>!K+$#vO5m`UMDw- zSN+iMjfd}7g$`g*t6&BLpKZj(C!{$U9?eGN_?bs>}g zdx7=WZWma~1+xv!R5w`LErWI3a#+``fc4z&u)f;^Hp{Jq&33Dx8)%1T4xV8=BX~yf z%*C@ko~Wja$kZ^A-?0d{_uQ9Z z-$x}p6TSF4*bm+Hupglwp6Py!dU&S$3F_gQ?%&)`VefL$zd--=IqW^|7qIub|A1ZX zehGV@`xWf{?$@vny5GP)ksiKDZxnJ+;E+KvRq0iDqdoN8-WU&kCdQvWu;aYGu;aZN*qyvu z*tpjZc7oR*b|P|DOs~Nkh-!d4dxJc*1aB8_Fzh662<&9&q)d!>b+Eg7!(bb|;jm3m zPDwV^Gdx#QDL(uo;%>#3s1C8 zT)%;G$%`F8wMG?b7ecsV!-YEHedR%K@F7%7pWuasLE|Ka& zrEynkjJrXx19gR6Z7);3ICD`8wYz7c=c`o9m}zz!^2Zjbzq+TpOVpj{b5^RmknMK4 zx*Pq${c1IS<(t)`Xw!Lyg;tnvf)OVaO{h{1D_`&5t2r;)}eWW&6IT$l~WfdK{>;D7l35zXThx%j@W!ng7v?*1vb zyS2EV&my|J6!F~KRyB^C=l3OdW8&K?<2P-B`@ydSRu~Zcc9dcI$#)95wy^abWbxsB zs8mvHiJZ45>+r3n)cYO|EPO0kCPo`m zuE2DUa<9YxBo~7#vZ3iL#IL@i*V(=g@7STA@O@|F8@|xKDr3thQQx#T#??L;KWi{f z_QQBM0OQ_C?#bvkL!QpqwgOd9uf>SmfN^&hjIWb1j_!)_vPtx8=wofq!nuW*v8B*v zve5rZJISK%v>kf1EHG28XE_PS9*OaMG{)_*7@x;u9FAkW{hceC(;m>mwQgI6ZQDX_ zmb>SmXD|0K)*?qzj;VM|pU0HBcCx^UrS^mSuz4e187_LHAxx>psj1yN?AmcI7@{-0^XzvN6u&V0?*ST*;M6eew%tD=Nb87rJ2lau?#a zir*>D(t#(_0e3sdC%qJ&N0$2(##_<8?Wj8A_kEPAm0vUNWb3)Uqvp1GuGvtO=Ripw zL3Qq2=*RP*9zO#6UWwl2pI!rw`!uxE&q6u928!vRYVgaf8@xVQIr!IHrR3%ILSAZb zuiES5_4R7JT12k>r6M6l_rZu^hoTPfFi}3^j!5*%dxC3~YQz|)aBpJhF%>+xMJf;e z+2tw*uM7${_#lU>As82rfo2+g9F$~R-kTVF+m7&I3*oC4!6z+-?^)`0LFC@eEpyA= z3b#9A_)6Kc>=%1|4L;r*@a_H%pYCn=a__>2dmp~rhw#}xhOhQ1V)4)2FWi5)U%Fo* zD*wj)*8R@?-u=PdAp-?`2nb zElu83Z#P8ldwA2lJ-xlWy%EFj>+R=F_hxuA5zQaq&GHWP4)P90Tz{xsC9d&YjPxtL z^SuiY+h2rxlZ)?P+RYK}5x6(fdOC0%iQ${RRONFV>4q*yM8#zs zfo4`(*d!T8a2KVW9Vp|7I!MM5buioKA#8cGx4OG+wX(MEF2*<+)&6LzQ>ojmu1}JC!sXn=zgMP-t@NbbiLPnC#|vP1uUT7VR1+xvf&9^i-ns3PFfHn?2T1zZnhzzzRTwE-IH zfVY9qzT1XE;Isd6jX-s)O5is>_h-uF<=(AW)*)4r+DKwY+_qnqA-bDbBHg3KU@dyFklYfaNcZ_G5maMuF&u1m-*#> zh2I@0ai!nW-@)(YR{<}s1`F615o0YP#r}v82O=^YjEHb3;=y6$0JGrV)xmokj@WL9 z`q&t*-m@lHFB?Nb2ZUxBj|dlJJQn)iUS>QY@r}73;+tp8LlI@NV4V#yyJKHd41{Z&s|?m$hmR5M_j#1(fbvbr_Tp zo74%Sj8G?uGD4j!$_TYYlo4vFC?ixtlo4u~C?nL_tU$9|lo6=@(#7nq&J|6BS|yqY zbvZNqHHq){7cKy}~*)uR;s4NNp4y zgnApe;8OLT=pfXGqJvPMhz>&igSBVA6di=oPIM4PuIM0)0;nLKGb%&@VN{9&!ssPv zqERJiqS0G0DWlq28`|IK3+{ZDagS7zFz&U_az+`eIj$YaacvRDwNp5*0m)6G8Ubb@ zs+*MN<}9$usp?rN-3`!QaJV0OA9){x$^F#(%=;XC?mq%Gj`xlCEpWLG;B)i+j(!1H z-A;ay-x=I)N!tn?#GX-6O(6D!Y66JODZr*o(Mw>K9OxwwFF`K>{37PXfOP%QyIn;^ zF99qAdI?o5IHW4U^@LRy!6DTSqLffoqLfg*MJb`GMJa*2r&jc4A+Fg4)|Usxb{X)X ze((wEk%czVd;?g}BgT8?oBY4Y{JZ=|OL>d`7n`qx2L}EJ`=0p@>?WYNCf3vQ41l*c#|Kut=apK#p7Qcn5#TRA*91fO*od}i=O)t$(FCCU%Iy}8JC%rT` zy>vu+Xk0cMzMx3`fuVCUQ57=X1;P?mkDJr79y0{b{s2|s(f z>dRUYHR64vGQ?u%Ow}K{yya>~C_XMyBca2)DmhR56!^C=f0x$g0K6U z+FLYo$oRwkcN)^?v3tgOWTnpoj0ev{^E^s<>>fOJC6B!WkKLcg9>inUv!=v&?tPE+ zJu1bwIu^%5H;n8+1DTT27JBjM^;mv1ee__P+t6xz5JeBR5=>oM^A+jsaQ4{7R56Uf zO-dm)*%vvz&^@X`oaI5Pi09XZ=eGmTuQ$%`Pig@4FgL34h#KxxJ3$xokeVzyL)@V! zo#%0HUUXhm2k_3#;+;E?ckUqGxr2Gc_;pgfYL-9GoFNJa7A(_1g|eb>j~E3dN4|W>qMQqd%XLULf`Tvu-&J<*Hn)8hWDl_ z^>_4lL}o7VZ1h2QV~hK}`_U7ofWbaBMhRVOcEX zG@E2nEVF%b$;5~$J)PVI^npfPT>-V&P-_S@ia%OIq0H)pnme0q{6?8BP?n~HHS5E=8_jVf-U7Zwv^M^QkJl#oWYioU`sid REoCKJ%K2<57qF#V_FvWq%#Q#7 literal 0 HcmV?d00001 diff --git a/UI/Web/src/assets/fonts/Fira_Sans/FiraSans-Bold.ttf b/UI/Web/src/assets/fonts/Fira_Sans/FiraSans-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0fb896aec8baf0cbb5b6db8727626dc58cd08357 GIT binary patch literal 473492 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 z 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�>uel4y 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

    qzN5J1v-!>bRgyEKq}CIG@t+(gzBR&x{C>D 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 W(|9pYLavTT!op6A~G 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

    ML!8x2)SAo&t0_>-t_fCJ46Mc_ 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

    ER?H!1nC#^cGD#W z28IHl8y!BHl9}Ny046-dn7{#{IhtfH@n=)32AYJZDxfX}5r&xJUaLOdZ=psMY5IW% z70nJ;+DC^s(pp4SBNT9OU9=mGQ9yg3G!&lZ523_(gGJgXa1fRCKJ*zHTr^@Ka1Y>u z7F`Vpp7Q`4KpK!nhbsUmf=1+6ql+#fSBPZj#YSV4m}SM&!BE2Tg%>ZP z_4ot{Mv&p~lP5GZN3v9c=nP)pRsxR}4YWX*u|>JEZNO1noyxXVdl(2(f<&kp+{D$X z@*OA(M4?=bD&mjdRjbOq34-&a)I*zSsXUP0F_uMjLF>Q^Z!k=}UC3uOlC<$4$wV}x zaKtF12=GViGSXuV6a8zalmeiqs0JcA9`OWe#De@m=L6GT;E2hC^JQ(c7#Ts+v{967 zU$_?=#yq9scdGTDEY+wfZFTvqG+Kgqn2`2lpwpUVtZqDkW4E_ z36j&3QM}!#b3OojY0#2Lgn;2iHzie<9usOH6UP`$(@r5kZck`gL-I#rJ`kH3Qwyh? z=tnex5>Esr2wH|rwqI60qx^yTBsvl@e8^e?5y)}aEat9Yz$t1jkUXdAYgI6SRd?2@C<%=a>8nMEgJ^tI_xv-bimF> z0+diis54f@v;voR5hp#{KeOf?=&^`->(r;rT$W+J7$-COKRNAfAZT`zl0pB)|PjApD#yI=PQ z{T9<4vpd`T-Y9m5ZCPSqLnfrBl5zP1^}E`;QDEMVbLau}N$n#WI+byh2`O++D2J83 zd^7oe4Qi`Y*xtrx9wxKMr$A(Uluto>zKhQ&PEa|H5_a}c?ct~+xF^LFdRoZ>BA(SR zD0w}p=ab@dB-!xpiki!WGC86QaXV_qMfpwJ(e(LLNeiYio^fXeP+V#LVGva?V&}?g zCagM6NFL0Nn`pUdC19lk=afXkbC%`d85M*;)ZAoJKTGA>(4L~Gxz}lG0UyK^52{BCqAt_#g*UA_1}(1{Iqfs|M@{>KYH#KWg0Dakd#}|YkiJ~ksMpd zwe51<){$)pC`WFUJ~2abmF22`=A&>B#upgft;prh}SIqgT?r65C!FliS|qboB7W4FlJ@Vn0`kMP5VuBa(>#H6$ji1w zxfm-{gQD4@e&a2aL}1Zwkt-(2X(E>WuE(&D7grQcPuFD_j3;9x;-(wXSbH)M^CgFB z$#86FFc#=<6dLV-RC!BdG>h{0jtzy4NCbUV9GbRAEp*20FsdcV;danMV)+X6dB`KK z3~#^}j+%H0k!tavyb~U*one2-L<1Sm=F&BoA65MEwiI!FFI&7h+3Ha%L*CjE_s-&ZRFu2$S% z4){x56)l)aC9PbSM-BVJ{XIduw_F{<56#)4AX`SZl=24zDG@^X*0Q#Xo`EWa9%R~7 z{5l$Mjs}V78t{XerSGbHC^+qdTWqAQl7#iOyUB+0@+VLWGHvIaR61#spq~{0GW`Hq z{L0u!|J1+~Erls>khFInKCxB~k-HM4(Arh`SZr_+H(=_x_eH&RN-7*iVmuSc+U1dA zs@T_K;7W)1Jx+Cp>)p|6%vf-s}Euejtl#XYVpIgc+$~^z_kN*>j z_SvPpo3YW#I@o4C2;q(S=_VMU++PReS? z*SHHAAmFgKpbKEvdIe-aG8xInV-Y%q3~nZ4etv}W{Ey3N$d#Y)ET>oHhPics1_77X z4oZ78gqvGAtR9AANUA>Jq2*Et7;`KCvB{%h+N)C{myZ-(9%gZ#f48i!);ii5L!QpbFi7^{uw&&cYMf z=}1mK-SsHq%#mK=qJo}X@g!Ri{~Rg~DiQk5B)Q-n%~+rlfpf($?jiO3rUy@qP2c>Q z?UOg{ADBKh4y>)$TOO*$799yY7T)y_&`qL!;a+IRTwE&Crj*xj@1y2*7%`r@%zd}?(4!jMF8 zz$T%)=y32clYmLAZMJLc%Qx0{+%z|H)1IDWEeUd{zoWD8rv`X@6;Wq?>KU3@9ymm*zV9ke-9n8PO2xHT?-uDV`4Q!Aq|}F z*Qs>cwWnPjMp#XAdc;0wfM~AeQX377a+#S4Sx52%1th*&8%d@AbYx%e z>FtTIzntxwul7t9)XCwHU7sxlW0{c}Wl&b!<0)1s^lA%gR?JM-gL-{zxEig@){~8x zP92}Od%Dmu+?BJ9^3=xU@Qx0DFuSWKnC$PfH=nT!c>t~ZeYsq?W4>$uO#pNTDt*P; zXrVEct53$fp{|+USUfjBMoJDHL8aSt}r%JWSj(nohUSNXy7QdwpYpYfnj$QFIT}a_2&ZDt`s!Xyf z`nzjw`D`*Crdg^or_M=Z1J%_wn={7hW0ufho2sJ=XYT@s%8WC?%r-~KA(BY1<|t5k2MBLVZ`#<{)i$j8jmZR&CD0^ads%DLyIzE{Rk z#7J2|4@0An5kO*|M=`*Pp!NA#^29zW{gB$PcmysGCzVW=j7F2hd64`1dpm(Su>;Di zI=kGV4`OaIBH=nN={HRbcPto;jfhb@yb|ae0 z)y8uDgV9plS6^3)_xNZD79}Zj#-y7}YaKyrKnrqe^j^+_kzH* zI7^e=z;V{ZG}VPQ0m-3(z5Nr%hGKnqNbnOO4sm$d0UAY*%;rZMh5jIw++GY4%^w-* zTob*#EC~6U;r+eCJG+T=t-8 z9LJ;|=R3lKLxkhNl`fm)wNd96?cFs=s zryCm@X_5Q&u8_wry}#IB&!qqc|2Kor_Y}JOBA9pHy%7m65V62nih(N4uOq*iB!LA( z667e&fF;j|!wuTH;>ntg>LG82D)4u_Q+QjSfDW{GwyY!;A zfsDku=fl2-m4@%4^24PiOtjCc9gBah#EYn&=fCH=5@k*tyuTt*sSKm~dssJTe8LL#* zwRaDe+xq+4%HV#s&}V=NI?Ow2{Qjo$ZtX=Ji8aa~axuX0fh>R$RwKlC*8E-YpHgn69;38tA$`>o;kWI)eY)JA9Xxlke8;~1g+_r;q9;34Rv*soK2q=Qo!$hSt}Q(c^610( z*&ce{@sl7arIM`b;Kx1zA0!Njwg3wU79J;us-Km9nlA`4XQzT$A=Z_q$dS1E$&Vp> zNKmbTYZNn-voS**lWKl${WR?Xhq^n=`P;pf^X`LvgR4G zrk)5Ehxn-+_+NJ5AaeCe4w?N14&B|91!uVq;&n*t{5f01`4 zaB^MMnSb|H)vKyk`@Zj8)w_CM)Y@9Rj3mpuB)nkBvW++J3YbL*?>3MG+W~@ELWl`# z5XO!Tv4J53j1#g91W3YwNd`!m5MV+w6N0+tf9|X5O|mf#VJ5$^yH#E9zU98VoO|v$ z-}z2}{3Y2~A{x#1w^Cj_gPcur@|&uWSG;LYOdv;zY}g&P?Nk^jnCBmyw(-ubB35ink}MS(N2q#Ld;JquQx!s-u}$ja)q?~id)d~+(oxM z47hK6!##K1cFVD&mmI$Mq8A=G@0`862`yefJ3UDlNfPP?V*K8s-je9{geW46y;Jsp z==5|3LRv=fsk=(+e?PmcuqevF@90Gx4RTedY6a=*PLK7pvaxt1nr$_8kFjO)13wdb z8mE`>VTYVvwlLpxy1BO>azuYL*Wc@0Z!{5@3g`S5+uLMr#mLAO(?xC*h;uvV%FfWpkx>GzJsX?yCxNj0O>e3@ zrsNEdCtFIDvLQi=2TAa;8_U&Ua6-3Y4ZmUj+HJ~hA#`MdLDvK~lX1+Hgpjvk0td#1 zn*)0mOv?-ysF!_S+XsjZz0td$53j@xdaZr8-*(fDmt4XCc>Qhn-G1L|UUlQGH{E*4 z4VPR`T97?kH&2fia*>d6SRIaH?h^NK?;1~M`Av$MJ8U*A>1R6K(M~)4J|P=v7F>^B zg0VSwq?u4yF#q(HjmScRfb|p=l&rISPjqc+T;5$OWDv;=mOVsTeKVRO8C7LqWS~N( zd2xuNxa511c|vRvdSt9kl4F5Px4mnIdH^hVs>7p0#NH91B2GP39?54gRKrJ%nvc%4 z7tPZX34BFzL0nRstv5F`YqO2=hFZE1B<~0R#;f66J>;9e;L`Iqc_r^{^Stx-_s(rA zs%jy?#0n1%SD(5sS%hvrEE#W2lLQajkG$m4?LNtOyY;;Dd-t6Uz!S@8dGiME#zQx( zv&#i9k^}WtU=lV8wl}(~Jl)gW*sM+08XJ2{`GIVHw45Kv6h_NP&++yT%`cH+uz}NU z{rp-4iL5z@P!=R6H<7-p7MWHLp^0mHrd!j69H}_`Mng5kW+_~ni=?-yn%Pcc3 zQDhJ7Okmm^_zueV8+N_sMbncPzG}zzS6(oAVj&l`?Z#DG=5Lq{l%n>U`xd^du8Krr z;rfN+bC;6Mb@GB&Y~O~BL_QnkR$(MEHnMJW$d?Vw?^c(E5|_nmp?YOaE7Lqs;Y~(W zQT?HLK9Km%QC+M!Yl(>cL)Yg3 zrUY`H`*9-QYvmPt6U<2i3tz!b>HV_D^CiCog7>M%jr+~t=B6V~g7Bb@?1F(qeN5IX zIj0ljcW|EkLZmQBsgw)3rys3HxfVd$tUKX#W7#&XTEgdwWOAUM)#G&i*!ppACTaWa zk+~Vdq0n0T+5@gHqouU`*Yifb>LIm`Pp|(5jtK(<a=BHfs;@)2=~R_RXtD~| zHwiw`-`w(9y5-Rs@!bon<{mb-|P?%aR9F8|ibaJMuT2=q|E|%Y_%cE-Z z^81^Rgml{X0bQP1d4G&X-S<19%kwMm?;^`~=lbtUx$8}wDdD z*Z4`NH42{>l6U?*CQ=`Q@^q{IsanA2l7?y-rPJ()1F5xOirF(jf0h z0|-avo4^ztGOkx1Cw6E%s~S_#K1SMPTalB3EwB%LijXDD=lIHniOhvr$7R?q<7m*7 z{HwR&EU-z84aL_XgPdet!uCx+*G-_+A|Ds*;~-GDjm2%|e=*eouid=lu%wo|>WahH zUvmA0=kGaf*A_`j-`^WP6glJ&4~Cs3x`Wje!8oB8Z1&46+1QLknR0Zgj!Nw4Z?bTA zQp#!t`k7J}%EoPZVnV$ht6vRxgO7N~uVs6F&ma1BaeN@29U5yyiq9uc;dCQXZY{iK zF&Uv!#Z)fxx0XBQ{qMNBvZ?aSuGw4|?=WczkN=!$3GF~6;#tZ(m^*iU&X!@O9#;3r@6Mo~6}6w+yrCxM#6GsX!u-N>DFQRZ&pnp@37Zz<*q| zR@I2g;DEaQmsX>dZM3p7;97PYPZ90*u<?zJ-1?)NLSJUZ-BGF)Vx4ZnX>K z_9nGajf2>3s)j=OHvTs;o!>RSZF~Xt)Tj9Ul<@?2d6IiQsWIE{U`)M}-#4Sn-%S+2 zEsU~T`Mn53=^k>voCd08tFakR^$?@TW<{X6ypE zLYJd`>218E^U!-tT?u(6LP>k~u=UEWLGb0Iy3zZMiL?gt@ZP+c2s4p_T&REKLTw?$ zNGLy@U8lUGR9n5lAB(Zc?xI*Ewhe5VDy%0qCLRr$!9+e0hQ=&HtduG>L)c$&36Nx! zuq8kyY!B_YEocH0q@kh*Y0~%L>y))C-WYJkU#+SE7~#>X^+Zi3RkO zBg!8O`>T+cntnSdVR*Q6fxN^cl3&&r#$7BpX%AqILIT^9JTU;8#p`9Yu!?zQPc=fL z!`>t@RjyDlmh*ZmG>FS8MM6DltkAls>4g>;Un&vEJ4>!YGVLmq2uJgH24TjFB<*k} zV1?k9wcI6--P2#Q0;CqwKo(wty`G2t7_TNEZWS7siX{@hAlMPwyVV~Ig z4w->m1A5WeNW+(iB*`;HtRwbb@c4cLdy;`z#P7lh?*?rj29HBGAqJ}Le>NlL4aRGY zw-V(0DMCi}0kZq8%~_Tx@teeqzvDASfYDb72{92PVdHZgffp2m!XD#G{4K2h1R04v z?^P&4#LuxDMHm1P9Q1&Td~xuXsjx2bJ`V3rYM5Eg0IJOr$2XzSG33Rf1v!S#LpGNm9f^A$JkvIH;o^FJLDtvIU z4*F^GWWx`xXQ@K^sRuXD5pANCm(r{rQBKWOCX zwu0DEw7e2&g$#23Za9B;oqHmiM7E7hE~jVc$W6APp!mAdOtbY_)|g0F`E|^kqMgYD zkigwPV4_|DcIceS8EpA`r@O+iQ3o3@WiukB#oy?N)PeS{4jZP!Y`h@U9%t6?Fvl__QN`ojQmdciPAzQovcrv^SKa zu!~vCy`kz-WTyNlKy+|^;&cb54dl#UO9ZnCk1fD)iSuAE+NA%**RXj$32H6bEx6+#KIWOGdZ8XNQ!5mM5@*ci-sqdBJ|h~69}ONu(^S4N22(% z(Y2#H1ew`0ITjA(f>J2$1O}7-pbmgDJt2_(-no$Nqs{zKy4lI#9GNgcin={s)1M%q z$1=ken|~#qz;c1HWRVM|Q&>Mev`7#(9lVqQZ0r7f&I(UN!`Yxa&wA|3# z-$)p5D=Skd4a0Mo-Xljnji@}Y4!Q_229^=R+adALf$cDc0p%ev5aHIW*wW+p>Ad1| ztCRU+E9oroswr5x@v*(1Ty0+02i56hzKDHPna7WcOUH)rHPpI(Ya6?3SU0aQSuS zCPC*f9y8_G(pNb}vNs8T#~D~PiAD**2NWU_DhNpi;8#KBa~3n_7#$q|XnT|mZ9x1& z9)k$35O(Sy2J0Y#8g!cfAepKIhYT?N-R<~J!((CVUUgHvCnk_9GjObXJB!;{D{jZ* zmf!9dUqg22y)TDK^60BycI(S;z4j$nTz=V+7amwQE8eV1xm3t!g8}0vbyLTTj&_bj zbA;N8T{&_PX(&<^QOTy9Q}`kpXvd$GCc?=gyQ!A*gkgzoT%RPXf%b(!#MseVJ34N! z7dSBj-Z7%f<5bWcaUZMYLC;#Pj3<(XvnS#yH42r{5}Xabd|$rmXS19v7MU!A$)UZY zD&LYcNeHQ!{R*fUK|TcHaf@8l-k|H9xs5%s9-l8*8A|r=D!&54W?n;jri-M;k${6 zV%b2QMNtif0+BPby_wKxV*f`A`H&ZGRm3$+nO?RbaBep39Zw@f-2`KXUG97-oyaGZ zUG^;e>3Ini|MPN#(92F=>1+IbrG>w?s>Nb&bbUS2NZ}N_N4 zBs(r{PIPi)046x&C=0aM-GJtMmLsjFCQW1A+R05*o3L&Tkd=PIoN(ITQ7>S7S#mDY z-25;(Qm73y9g`xJtV?5xexVKax-@A`!U7VBnFJ2SA|8URhNFIv@Zj}b@u)9b!0ncd z#!{K-5-H-#jb2$GLjZaF_E+;ow=0b0(DdbHPvcGZ^(MbVjG4=d!7adQ@Xvj@QnN2# z>S6G892tNUKE$BI!r1;>^LyAjT^NBj7`x`T3$haM6PuhDfFg4-?pT#NY^<8I#7SPL z4hhRTw3Vc)UNg|ws6{u#Hn44D=cipbex@_?-cg!FCDZa^ar8OI8D{BD^K=zK8c4lr z;aAml>ZJ?!CkllGzf4A7G?C5*lg(OUI8K&ho&gD$-`&?L$9nnz{`*VnT6OKhuPyuw z#C(N9JW;qmXeFw4fQaRCv2>u4h)0OKK=DDrZ$-<#cqNf92W;Ut9BqHq^+9t`eMkM+ zx@&V?ZDcMMj3Bd8c&cJB5fQA)>~mvBtD{?kH^5pZnI8tRvHb-&ebZqKv|2f4RO&sIYmIs`T2Es9?P>J*8f zJw~(D)4Z}*wTuDP8h~=aS|cHIml~lEA!xZA`y}@0hcVtwX}aDJZ~64ke#>a3e)L&h zb1+^z_W$;K3h?1?{?oqaDY}s^ZVenV1_s7g^=SG3lO7eT@<}}!%9Jvp64WKRObN=8 zrD^(~X8^CBqbE<#|GX~=;G4`kS1t`_UN%P-RQ}t1x%xZxT?DY9exSauzN>!B_aCdT ztG`lzuKrX#rJhuuCFk@fain}geOx`N9#O~D@2dBc)arz3Mcz6LZUEHK`^v(Oe7Tc}-O?xa3rrt-uL(Cf~z`C8TqIV*Ii3I0lyw<7oLE z<3Z!y#=DIBF`fS^ByxA4N8D_@+_=m*Vw`K7O(gOjV>bqLp*!h^>#4!=VW{sQT)#tz zXqW1wHMzK6>gBW5XrWg-@G#NP^wQbUpga0FkSESSzd)5^jdlL!m^M;t8wX1+Yb-y` z4Y&tCOZJPdj^db}JBiSE#*)h4UDUf3ShD4mB{HR}?00VKTqg?9vK3zc?cm?Kr!Uo3 z-el=??%2^C9BpFx+x6Bt*Lff3G_66W8H}5Dy<{#KW?8r7)6+4o{R)B%Q z^wv^=k~|FFQp;sW^07oRW&48U#{mNmGFqY>wXIjo;Q&42rA#=F;oXg8U5q7!CSYvH zHZaxW(5QxOaDH-`t2$QLarMSj3+z-q5%dAvB>|~7o~xwOJ<)hGQ=hHJZGR}&D3jT!4MWVZ#3==N3oc|JO{9g2NX9AVIjgC;s$M)42RhRc2g%6x4f9SgZYN7&Ojwwc z2trIXNOc9*Kp+G1)r)F7n6kqVmZY!`Q7KG1(9Lmnn!H#L?R!D0V>S^po*?%FcA+O2 z>g&zB0(Jm4JUo+CTO@wI=#TXKu*qPWBGJ1a*i*8KBLb6-mGZgEjSzR@jlKR-x-S>T zxD=M1f*7P!oJRtGto4;c;Az4H(O`Y?24lf$83qP;;UI@aT}{e%lvLrKTrIZi=F@t1 zZ|u#(Hsix1Aq)myZxMT*oHMw&7R|yz_d# z0|~$^^d5XX7E}=4P`s9lrlC3ne2Q}gUlFdLQmi~c5;B*&gd14Q{_@mRxKie+L0_m6 zg*{JN#N(n$APZ-$0z!D#0 z5x{O~5e;BVq>KB&-k{{mHV?_p=HOls6viQ7Q;>cNZ*xDFj-GTWjiuGzQ{I9s2~hd3 zdYU|g2M{QM*1YO!TQYUm&OJvN7hQ19;d2k4zGvt5O&eyWs%5x8A^@za4>b22474fY(7IR|0P1AWEY3? z6K9Q%y>Nc+qM2AOh}F(pD5oAI{@dQ0PmIm>Wm(;mDx$t=zLxI2gaFwG99v!J$c6jQ zSXW3BR*gNRFu(NO%lD2!uS~b&kMdn1wl?#?UK=-`$2bhswUfhcSWZAn-~?hw$XMVc z!5SQL&XHikrSlKYm!!Y0zVe()&b?&s?)i-)!$Sl8z0t7rRX`HfbzIoaibIdc>d}c9 zlqI#p`9lHyql=}-@FmDOddUH{EG}eOX2h-NX{ zioWo0eq@861tS?NR4f`k)y#};OkrigRM4yyi~ZP9I!}orYQ5kPB`#Ke;M!`{NUBk6 z2E`)Iyo>tFJposFs8Pwd?c@;9#^_|e*#Acim_(wOjAna>|V(o@%w@IjDA z18TrapLKA%x;LZ`#7rY|Osfn|7dB*`5aah`Yb0GvMDmensqD6(yeFUq47*x z-t}+KR6?mN*|sxNgXdem=I*(*yK2HM?(-}h+p-TMKn^PUfcXf)7yFE><^$VVjh>hoo^_4VdpEMCE!yRK&2m`?!q!Q-!FUzbr)MB7yu?o#>Pm zVJS-yE$4eqf40z+?y%?%g^pB_QNTMf?DbS&q&VN?{eD(x%DYg;L>~%aoQ>skiC{P! zjOOxDp&`lGHp-bD%@<;!a4;Av1#cVUBN%j)>KRxMU zDIEyd!DOY(LgbAHp^buePXiFFU~uffPCKKU@ja?eGu~%>d_H^@5d${^#t^flBzj2F zp0lS4OudE>fm0ys4g8`VqUP9m=tHu%|3H<%Cp_Tr1b}tanId%-u}AR zzUEbj554HZgZs}tXU_||;VD?@aWVjJzfawl==MfexS!Mw&V1Ffi5|g4?Q9ZGI`3z9 zm*%MxqqAO{7IlS=pmTJKPU!=72IfY0G?$BEeh250ivl#ITSELt_y@q5ST3Ik@SpBy zkU!GTXr$2s{S1wLtWW@@!bYDZ7il#>*Q~zLomb7%uEnFEP}DO!D2j% zqW(JdI&a8@{(rW$&!17B@p(S>F}6VVm6rtsleyB6E+Cd48vm@`hJ|>Wju2SuV|l|} zW16H^l>tgDx5)}%9L0vw73FR%%9T-q6Bj97S9MP(98m<@Zr z9nqry?Dz$~I_(jGofC4OWQoBKcgwfK8E1p-_9PinTwB z&0({y=rq-HiGkmZnL>7ytTImI26Yz=npkmV)G7s33>`#Il!mucOMFhtbEP{H6C9p2 zq+Vg5xb+4z)ntq~q%58nd}W?Ms+^2w>;OD9ncx!vpP8@cgf=|MPE_IHlfR=e5!mfN zGA~z8!_INF(Me=R$Ts_8X-gaLF8*4fvX(9I72yD*07QV-ywdQ81VVHvi~{1OQ2Tty z&<(4vc7(oh(^U7U4^-X7wkDk^S$5%HwG=BOJ{i32EGa~(g z8*!f7p~855WcPHjJa_KQ=F8V%d7yJWcBPtrh}~l}u^$qhOm_Q*AqWc~_xP^4M|}b7 z*Jb$c-!dP0(F@Pa6N=_BPZPu;(pxODBL-aeY@wMdgnvp78}_gu;=3IwYQ5XtQPa;5 zMQP~NSIBvy*SmRK_hKJ{y0rg1WxVv7^Df(enUH~OnO`$J)JnvRbJe*4dXMoe(~h=Y z;sVKN#h%_k5Ie%Tvt~N;5NWZB1wWi z)~ms~|MGCD6oT0XpJ=P!iVcNLU&IqH`&}i1^P>6wa;zAF;nrUnP7h5rVvsQoXR6Z$ z_*Ta9q#W(Z_ML9WL*-nm=1azNrSa;(+CI{!_{l3%9?FbY%0qeY&5`nqAI4Q>LqThr zLHtT^oPpLX^|kV;`d9?o58GQSwP0r~3>T&v87q>Tti`<9P32@OyWkCtqzlbzGMvby zm`TI!Yca8Y9tHoZM@V6#6?;kKf*!l5*qe&XFo&Q`dJ2J*=YRGB-k z+tRoD$}Q=UCQg4c2#!@OUw!h|)(^J&$ts4rVh0Pg= z_bgmCzDc;!g|TCpHdx0X-!Km#sH^iY>hj3g)qEX$-KUEh-*VLWb!wfp_+DK#ewh}p zU+5HCeCH5tFq0nd3{^n^h%uN}L6^SwMv!@a1tHRKV>Qt{s`y2O%F<^;C@3%K4`Ug@y+v*eZ`SfrZ zN+dM;IL!j#X(F|;Jb1?V@PS?6ir)jXTshpBDMxzy*hYp*;reVj+}Dpx7&hu=-jozU zTOdh1Xa3B&pPP4M+g3@Oh&VoL+gX$2!-Kg@bW3atCKXaB%7k8RQt9nXaK;5~#*gOQ zkX?@!)1nSdNCP_QnHdZGIEGpoJ<^tG)!26JmaW%r-FEHPt=Fz?%{Pa!r1StOV3B7J z8*sVE0g(s{j3oQ3!%3GAEwQM2Lj%>h3uk67T046Y#*+G$YqxP5=ie*(H}~{ysMCOC zMK1%GR+wZFrR#^v)Ac^dO_BFv&agb&*IvAK?ThB-UL^k_+m;%zg2CikmPr9K2ggOZ9;i*_PEw$4sZP0+rTSjB1I_^H}=Rb$cK%upGTT6&(E??TiWStmPvu!=N8g9r57rS(@d z{C*!0i4f{FZ>fXsX#!}B_@EFVjY@n_; zm9qp`2j+rqG{u~Pvek@|a^|<;2X#o~UJufZE;`bF9n=s_v{UP2K7+)ZqEIcTg;-7l z@mie!9iE31uM_46WX{qJmT^n0zKM&Qc0D;_6kLAO<=hfHKovXG65p2xsN166?{%0Z zgjhnL4sU>rY0Pe1 zQE$agX8T|7f$AK9lKB88|L~peWM;tcdACfII0=q!4ush*zEJ`e3huYsgg7dIZwJ+b z>h09FF<%|7R}f%M0#?Nq0P`2RyrIq<>@Va@sg>>x^eOgi9U+sE+yygqknRcW;~dbk zg){h8zs((Xnb)x0xsV2T2i#WyCB9yKYk-L_HO&`$@RPY;;&Q*t9k{@q46xO>1`o~! z9)B=RT|8G})xHi57t}DPyIu_bHs^k+o6}j$b{JdLN7W}ak#x(LBlC?R8i1jQd&fZG zGB5S9ih2&A`mp8~3(<&Skes?zY^9Ttd^FF6*vkEmNlQkVlj6AH)vfL{vP@(>CV8oI zJQ(I|wF`p8@UJI|5U>~6P&uF9#oCetgd8sXwmzOr6jiDF7n6A0_*J&WR~tL*QLi!m z!+F}4V7oyk=m)|7TOZ5&5k(1)V>s~0AQvI-w6y$rhH8e2@yNm#@Fqe+@o&u5pM>p* zdf(f;XQl2m{Chwp93?8UHQx|}uxz$G3hAl7)~y90soajArr={Y{KD!!w=}{rPOzy_(WV< z%%Z0|N!&-D)3vx#4)J=%KGE-=*W>V*4Q$&wInmQdCX9}Pw|;J7%j6bz-QztZ(oEEo zb>1zW#SZU~@63<`MNbscLE}(aQuVaGq~maJb@e#U&nUl}j1}r^Upxr;hFbWrH*U4o zR?&@{v(@H&C07cCDuqlX5~`|87YlkeOF^(w)CB`Hs8U}IK%h&{E)3Y7&kt^E^>6L( z-PjyBZ8+PU&6n2o)y8s_%|qXP#uApuM*HjPY4uH(xC>PIk!|#kn2#l|?JP?j>Lrm- zP(J%4Q6{833^3LO=!cz;i$nK+PMi;5ZCF(XTJ(fz{}J}qIRwZfGA<_ni0~A--D3>wd1ZGn>MVS85wT& zR7&9x#I~oa(`_aUz3Qlu7OJ~Ue%Z~70!lcNBSbsmtYcOc1>Z_j!jd5in+|2tCx*?Y z)scHLe!S|8(oiBdTyg<|fF=a<$50Lyu7JnN4{sZt7_*aM8og2MsbUYUws3iu*1*1A zES00SH<`>0Of39Z2wZ;3bPe=m!ih#W9g0L%B$C4Zr2?&U2PRIRE>0FB1&pt7+Lngu zyVmtzG^+5e2a{l02LQ4+Qn|^&!VgI4LS~sbA0D)Iz`N}es!eD_2;}O`>KrF&T)$xu z!HLoF#fC{vntld%Mw_0)f-_!VF^Dr`s|bBr0O~6c>02P2zMo7(FLnB+}&P zdWrx>n=7A!pMYWoZ4UZ~?7d~|P|TomPGY2?j*RPNv|A{p zOU2ruFI!BlzQ{P$!s?dAQL{9DzTw0`u-DihN#$1o@Kf>de())0g0wgZY~PA)4<+K2 zm_$<~YUphB+9!nBhxn`5S=~Rb>P9|n4rijS`}287)|Y|s-SN!5Uhf0pID&__lAs7? z5eC_4;nmq@>|i_o>R6&zmpUuMGi3zygaOT$<=;A{;R4mewbWczX?+gB-s zyu&GUJ=QIpS@<#G5fc;w0dWcm6Y5-=Y*3K9WA5wArwMtbS&4;onqU7e0M*;ee4RRP(R6@>?etHrfNK zs&W)EVOGEAaQn5SseK=Xhr5MK?>XH5B88VycuBW#={<+rZ)AFZh{7Wjp4WNL^PKn0 zQFx9nWI115*lI7Rvy2yVq8kpAox&a`i%KmUM2=}%p_6m*trAEQ6tL80{Ls@smY?>7#qU!_p` zbJdkgh0>p^u1vPyN`L+uS4w}bx-toKU|knVf37MVFg`$_?Uh_9{kf{J(f$Pe`F;we zKXu{Kdk$lNI-+JNl>S_Gp5Av@H?F@{7$C}DLh9PN*Asw zY#F~o7k-Z`r3+UTLdT{4Ox;bPbfK;TUD)Y}VYSIjxX5lGU1Y4GCI&HQ{A#0;oSk(xs=g=%kPP$YDzr}AmScOeFfC`!^VB{ zi9QS{hYsx7JwHumr!5lMiB2O63TPOxWcUHxnj0D(93fywxAj2^E4zJBVcsdb{l3LB z@fa{GpYc@SSEQq4rF_wa=Mg(Kwx+nhv_F%I7Ged*mKBU>H=tG*5Z7IW(NPi*$pSTX z0(&}t%}h%kLD376qm*a(KLx}=_M!-Fl=RGaD$RGa&8`89gTGlCEAa!>Wr-Z16B9lB z;*o}>756w!^&kmRg1!U}OizehQ<9X*Ex1h;CyLj# z5w$=_6;v#2W2;i`hL^3q3!7jOQJe;B2-zGliu4@p*S#=#!dO|s6i^C4H zI#cF{T*rJ`b=@%Z^+(JPQ^s_1%FOPN99Dm+UTpqv%9vV)wmYfgztx#pl%1o?Er;iJbnhMv;s^I0TuWr9aAT$taFp&=yY0AR$&sBrgY=XNij3q; z8Wm-Qvun8u1Aa}1aCZ1{dzq|a`+8@wNd~mD+#r5z+XW?QCYBJ3ECW{!D#i-q*+U$- zw~!!gkfhg^KjYn;@c`9r5}GABtKHf7R|ZRsO^M>e0gPUlFvQjh%7oZi?6vO8O!JTx z_XI%|I%S|y(LHjJUs>aC^d-}S#Y7`s8i~ha{;_#Xko_hy8Q)sBpkcWt;hfm}Ze6v5C=8idMZ*J!!m=YGjQuV_ZM9 zw=cpbL+z2qB~Vpb)p%K+ORXP>=Pw|rj# ztiBHyV^6cy0Lzb|JY48g-$+!N2|FC}CCVfV2$ANoSxGSbKBS&D&N1&~Tb46^Hruxl z(qY@rMaUzXvJubv*SrCZtITD~unuVz!t zN-Ec+J#JJ_8TXkN0%qN=+XIiBa^H?C!efYC9cY6fY4GYnLYvgK7dxFO|_CPD_^aJ z?G(iP>M2;2N{u`o23OD7hsItK(_tgr zySy=&&3b&Y;7BBWl<E4?s%Wdc7yYlJEpK-pY+zflXh=-w@a|#9U1!}g-)g=Ar$fuw zt!p};7LpZNN^qnqH@RY9Bx4N_M!~L_(HN35iv`tjpmfAdUcnL3o!%Orzf#=jc!*_d ztl2YG4kx|7xaA*D7sjK+zIdax@n|xiPZD*mz8Hrv2I{LoBvS$y6S9i6%;AFgStzDg ze_eeId3a<=9x|;k#ofWsb7`oy>ySX}7=?Ivp!+bE$-^c2BYOy^*~Ku;aJ&HP;%Eby zK7tSuia@bkE(k-o`dZj-O%y6qRY(=QfpR8OCZ39VJVp%qF7u--$ZK>HHpGvxOe`P9 z5^ox3fkDQ-B};L4J#(f)M+ov{^f+f)2YN>O*X2QkdTYb6a5|S$e=##qoo&EHVVT~+ ze6*B{1+zT*voyha^KCr(nUx&SRXnr1QaLZ~Ouyc)8H^^ddPK`e7Q%o}OYuf4Kcv3K zOB421Ob6qpD;bNWHuU6&^NjlLQ+EWmcN|Ho{iyniahmxMi$bRnc`Sj3dzjCLBdTdx|FAK4f&*zBmm_i5>ch z-!p?aO$`Rg%6l*ISXBLZTTy|>0L*}^U-;ywJ8aDh;?}2r@5gqxpVS=uEA@MXT{P8m zyg?ahWyxj7TCv=TRhUmNYyV~5t%LL6DRtcwD$(r%8HbB??|8V@xqYvYdfz3rHWPl& zKB>0Pb1`+MQopNiGR`v7boY>Mv>NTim=`dBxQb1@PrxIf3+9a6VACDVY8Bh*Y%#hb z{Z|aXF>juoLls0iOJq6|>shaEqQ8>fAjCZ$QoJX^^;l`VLVNu&?KRbYKkaoB0{pIS zd#Ss+{h6XUKS+O`Emd=jKVw)qH?_K9Y3Y0h1!Yl>=r)i8l5U(SkNOS$lt-jV z^sTw?I~SfNsr+uEW=!d~9ndJ~Rg&{iSE0>iV-eeL)KslI-`K1<<4442N2isn5)-n@ zAWIW#BJ7)D0njtPbUe|+A#)d?Rx7=4;c1}QwncDJ1YkivpE~=+6NJHT-mxx*ON~^Q zRBZtc{ajZdK=OrGTr?WVjpg7(H*Gom(o z6NzLxl!9H!)w^lo>5+4$-uc3_4-XcInT^^}yE2eu#C)+m4+#4~gxaUt51b%{hroSK ztapUkP3<#`d)g0EIF7`-Tnf#{PF(I3eyHs=&T0QHGiVNp*V`%Vb!NyX7rt+7ZGWDT zJ*?Zl&e#`;CsV`;agqbFk%&b^#x1QK1VpT!x?!_F6fS@Qh$nN&p2=*ZXW{#P!U+14 zsi?=3NX9a=!^OdJlsRkJ(RyW)gpv!hOG2~02nISF(oWCp`%Gz`mVI+IK^vV>vHaiD+U zALAL4n&%UxB0Fri_od_DhCDV5KjRJQfVVGv3mAKxh|)i3Ux_SG?SEjFCYhxnqpIIQ zz_(g>$fnTQ<8+%#&qN0<;!Hc4a5B^G(ZXL(ue-S2E0|t6OARX&bNE2ptU5B0hCqhXyLy=9Gbl_~#ThRXA zLXJeg#5C*lMJx0|jSq4b0Y~}KQ-qPFg{h8SXpN0p)|n)HhKbSZizPA{ALw?sKbuLW zh*$yl;!l>6nL;qtTv*6A;Y1C?GMI8F#jyWRm`2`|ydYI#*vsA!F$%9e+#v!RNk5TOnH;H_9IEn*x@3 zBa*d3Ksa&R?b-JA#*=MKr-2RBSBnK?Mn^2n(hL-utpN5|W%2Kusgfl1db3mCS>-mK z1i#?5XBn9?;IG8@^=7h#J`X8p0P3sUuV~=Y^V>+g7;kx1RrPzoc&q@@Ca- zuWo36gJ(S>F&kqxr77!Lk@EaK@TjUS79ya?sm29bZKSmuJzPMEc)Wk3Y$gj z7l0RGYW2r*8Q4O|;TO{1vT5}-j6wiIB6cY512zyW5zNC@&*M$lByi^lG}B~>>Drr3 zE1*+_wEq}W!z8SqI|6Tawql&~$N2N7%sUYBoMnKb^Po42YM(W-&E%qHECW(jJ7*+xk2?!+BjHAm3rVB53Uiro}m`LVSWz3)jFt=mi%GIxMfw{eFy>b)L9S$8Z3i#$$&LVwCjrV_`*#|WyD z>(+*}ad0Z-h10VAG;46h{4b1)SMns){SMHvGGAn!#@Hn@oh$-E(%}4cDIn?>(<-Wi}XIxDl%F8i4yUJo$Yeh-KizKsi zxl1QqV_#XVnvd#_Ou9z1eaQTKgu6rzLMCS3~!V-n)E~|7?Y5i9K z&N8LxDt=BU2&p#-32_l3n_VR+fIo~0y}Z5z3k#$$`KgQt+}q zgTsd{SV4Mwpi1@HJ-rq4F^HDW4%&9`Z1`uu9f@#@$3yzbk9VF-8#+!a7YbY_44+pn z8pYO-j8+%&UK|>N-{YlafND4U)Z{J8pXCW#ha+%2Mk0s3uIUiOukx$}8ldNNsln;E zWO(k&&4-Ps``OUf&~*byg)(&cm88rWC^ybyFJC#uznB<_2kS=(Sf z+!%xSKVoGwnXDCob!n`@P<_AoxUt{0hf#z4bNK9&qPsfc4e54>xBdvUiu1Xp!%I>R z%c2YSZYUIFua^tudI%M!adgO=W6E||v%1UVa4D5Y6_bg~Sal-bpXHwcmpfIeB$B1l zWTTpCB%0Ms9Tv;>OK6gNU9;HK2j+X_F>Ej;44C-}2Gj5e3y1r#!~vgGo9n5?W~^w@ znYMbJS=A=as9bVZ+(Nd6LeU>+=gz<#%ktnz8s?4DNzU*^ z)Gc2i^dimpjC-SjaMT~p5)R_AVz8;Uiq$n~QW~Higv}>%LNMhCM(toa>Gl;!`AKAG zr9?Uj7-PlRAT#|^X8PNh>6ZnLKIX_2q{|Nd7p0x?&#H0@z592|Ruu;s)c!(y!kB5l z8^!X~hVj!^JInJ=U+t{jFKcf>g?le+_b1y|p4cIU?D=;%h3{_<8T;FhbLFjEd973U z(`%i@>iz8b_p|qI7#Hn6F5uy!-h9h;lkrBcGw9gAvEL@+40E7%aULc?7 z?#mlWhow7xkC5tW0-Xt=H|2~~*>4U&4uEplOeYITzwHgd3vfoI8HlBZ*Q{Uoek>A; zg)-QgcHTN~pOjeLEm-j|Qp^C%{{zBLQq+A>mJJK9X<*KBI#8}TH3Dpr&j zTe|I~?H=P^y{kG#+g{V@m1~@ae|dYKioep zqTo8D;IFtYfW>!czFz{+WGP(XN0IG`wk>EsN<~%NtDn#0URDJ?)Xa&E#Uc#Vz^~ku z%Ipj%S%O4+H=7Sv)?`Y(L^H?8ZsQ4M)(%>H_HGns!oBLBjF*_i=LFue*g)N51tUAZ z!srtL^Q{V^Z8$?;@^0u=n&-1PQ>TlGU~qZ+#)m`jz`>~J_7BcX#H_ITCpJkqDT|dn zpp9e}z^*$=a29)T)qV}4@fOz*uDMgI2Aa4Gmzx{v@sm{p86uL?=*EcmJbwxTK>vAG z*k9-?6I#;fOPfzH|F(J|AlrgsU?<2X5lhN;>ox3nZgEvuB6+Ig2+?}u?J~o#a3#oa zq`fyhRg`WSh@uSvT9U=c(GTQl@PXv}%C=qW%aS^QI+({J-mS>kKoYZHEJ;2G&lU~1 z_=NhhvE95Eg*1;v3+XQ&JheeFn<2y}4#(xwQXGH<$vm|BQ-(0zT5mgO+`n3C)9f7wks(RhsQ_hIXZb#3uf@pdj^pS(< zSbU@ms6mT#AlXb5mO?8=!ifMer#SedJPL{fLi<-h@xxF zi`CA+dkn)}Sz1}$6=wui$eNxubpou^0LO-*o;?#(BE>@=;-NbOA0(+^M-~`y^_cM} zHofO+WNP#*8kxFs%F*U&X<2+kJ~pjT!Y=iXHp8V5h=9Q@>M?Tb1^SE4X=HS6O{HfF z3@6zHe$V(l^ImLYA2yzJzu?mybG`coddwKR!1KJ8Yz&KVte*uGlKMERnD(ihOB7EE zpiohOLJwl_v#s}f&>yi?eNTnW8vU~#le_fKC_?hBj^*x1XLCSveSzk>n?Cz=Th7^q zdiYwS%=rEYM&|RK@qOZat##ssx!n@`-`DZJY$OaX^@sQpFmwCjl6Db4qf zX?Vnxaby)d0->XfkErX7%L9)wQf?5*>9XW+=bq{Yr*U$|PxNV~k?%S8G<=QV@sr>cg`#|O$S5>6O}W6CtfO}FtD*kGSK0JuB2WI!DeixUW7 z6UJRWGy-_pJ5B0$vfzunS-WOq=U~Q$7MLp1kKmk}3V`C}aCi zmG?Yo6NZp$^Sb6n2o)LzeCa#*9`1W1V^1K` zt-wT@7_@1$>@XkST_IJay&x9q}xy@B5sPcNtcy808~WoK~uCpi6w zozs8loZdyjT7l2LT~2;6_r4R8jrQ}A)yBE^Po0xHAWsTE!=3)6Q}{1VVFyvkyHHiu z<6lQET*Z1^5(C+C2d{YMU0p<5Hm&u4cDf#dZWq^H-S`c37Y$WK-4HYzXx_Y_d{^Vy zo($VK<|FayKz2EzjkoC_+NjeuU8gSKE4^s=5l?_Rq}35U(d2z)M z;oMLD%*m)mmeqU7h4M9_EDx;-Cf%gSiKWJSvg36g+kMQAz+X6P1;-u&SGLdm8?__w zp(8`uLaV3LkkfcwM1d7}`~kWF0s0gI^d3B$PhEmLUM8Q?XBuOOmOs{_*n<5kXOAbqmkG&Z+C$$Y**#I*w$!(5I+b?qt` z%VCYPIjewG?-V=#PN}x7MZ-aH=`-=Wt{2BAjbU0Rgk(LI4)^Bj;ZOx4SThz(Kr&hV z>w)G#9(zitHUsy8-_Br9G=|kzjdy~cO?5HKY%&)u;Ld&%A(K)m*#SC&5L)N%76Br5 z0s2f5g%I<&quy`^aBU&Lw)(38Nr%@?g#7+$(A^jvBm*ox=`kZPzrjc#a9T*T#1)XbWyr;qkh*0B8d9g>N$5`Q#hRWHDl?x9r>gO2glxR6X0*^y zpCVevs-zeO!!Qsz2VuSKjMViW8AvbT4UtNrA1d3#g8 zJ>|TzOB*~z=$hF6_1g>I!OwjAF8GcODFQV-#Thbast~Mk6KwOsl6~7L&YK7M>{hq0JP-P8m-`^3@6wEJ zX-0^jGHGRW$B{F|LFp~ibr$2J^b~)F;q*bT$+|@#jTO#DGg+TI{PL4VlSqQODI`G& zNiZ@*?9nrirjM&M+NjK>&pYi&yU>ojsBTXZf39p#h%lLA!fLGJ*@RG0xn+hURfuroiuq-;H}KC$+B;aE-etV0EtyMMk?&xA(wL*pI=cGgot%7U z`yW0n?$}da;3mgVKgRLiz&nk%7ztMUx4&w{hzh5f=>DWKJwBq>OWa34P<@=aGw?%2 zXolR9+6Bo_)HJ_uwgR6tek2R6VHxj|N12bcMg5c;yvw=4087*ZEKxfH-(IE^tl{Xp zIBEsHt>lIwLPIO&>D=l;A7w$GmFKXaf3H*cJ*TjH`|(|wE>RLi)7 zjJJd~LQO`h1=48B+_Mgmlfwc>xpni{$UtAIkV$C=>t40j-`Qkn)y=V6XVQ)}Nn0@- zIK>K;PWDGAndo?AHbTHP>W;pt1)UT=oG4dj8kr)=KM55ievtGgB*(SWg?LyfzKE&_ zlKXwrSQ0{eNPz8Wc%}d}_(|B*TXQG%X1#nB+Wk_Cv;gMz}OR9KCvC(8B znZVdgrcA<>aj<})HNBFFhJ>;K!E4c!KQ`ZMz7g!uby_<;qg`=5$!6O{IBx(LRf;_? zE+mks{Y>{U$g$RveQ~p~9Ype(_{knL9#u~{gy#2e7+mk_3mU<`>&Mg@YuH*dd~DS<3JF`(onON(DTPHlX!4 zFILMq_KfxN`hCZKxfMG&fA8-BOupHHXX`{?gHdf>qW z55DK!zxmGBy!w@|c-f7Y9XV_NS^LjB_nfo$oVn-BGxnXnclQfU+qHAYmhD@%Z`-rl)=61G z%XR*X&Rdni#6+r*TK4Oi0GQoS{3CyKe-n)xJ zBRMQ2!SHP+lTsWlQ1{wVtQ?bS zX!45HlX;xUyqU>7?w%OGVreqZt1)9_bZlh#tX^MVSDh=b?au0@ud8PDgNwB^j-9%i zE2i}SrFtHmf9nHpd&BEbJRbK;r@CVsluga*l-rImj!DZ($=WCLUC(=mc0~UP+&;aG{!YF=pXvQqs}pahrYgHH zu9xtTq=w3~7tDJ5h9iZw#cxkc)i?CpaeKg@pK0M^D%KLudk&wJf!i}WJ2)g6d9CzN z-^h9)HgT2L5A+R0NH_hGT>aa2Pb=BXhGW-6*u4MTv-S<@!;jo5RI`M*NkWmk)(*~g zChke|bRs?;9Se^-^OS{rjT&Ba(lnJdcWHJSBXerVJ2G^|vNd<6K3$zEPj+YL($`h9 z^Pa`37>>+XF&TfUl{q+n$H7ysvafm7O*dR}=)fBezTuZJ;nw{JPB^6*3$#Nq4Qz-X zCRf+6$pjJ|Rs3u+<@AbaJ)bG1o}9dR_t2VsN2c#`momJ#RKQ zy(VB4{bW?JeW`uVYZCoIebfHQsr?)4-~m8`M5baSWDGP~k;(JMXOC=5H1lC!)Lj5- zXS?kfrqrKzox8<&lPl-AI3HNl3a@ARm>3$KIA)BFkD#ueyvVIkRArHyP(u?xWA+ZYNg-}_uTrX+un5GmIJpOJNl|u-gy0WzZ`|&KT`L9W`#ieqyg0~*92t$EUEyx z?Vi`t|FP9ef2gl=>g+rAdF%bLc)9$AwPy~EzHn2rIsClDl<4axt@Wm>b;Ke>$)1i($|$5fFoo-^33(!tfr^DQ`4u|Qv3ocZcI&EQ~RG+wF5Ns zyO&k_IW_MvYXa-SnqOx7iWL6OGalwYu-K-ECnudo)1GunN-Lh7NQ>vCeg64ssb1Ti&H)Q*k1SG&s z2)E7hiBp(ipVwUTtXL?P?GTq11Z|aF`nr035JCI)r3!Cm z-FHv0KbiPhOTu#&w*US*ij4hF)Tr|xTx`!}LiW@n;NLH9|DDbIY(n;l15Z5u@y8zh zy@%ibJHPqP`|tgg*WYpL{|`bo$qxP5rR?GfB8eSA>}>b{J+k!&&mdbRN0>Y4^2hRr zU;qqkTP9m2eWIVtExt%18m>Ugh)q0_O=Uu{X7d*;PIJx7|6%V;;B+e6$A6t|mS@bq z@6XJbvCVFbov};No+Xu}5|Xs5q>?0iD3T>YDoK(`l0-?i>`Jl@vLsQ;Jpb=~o_WR$ zqt`p{OYiUV`OnAKInO!wx$o<~uKT{uy`6Ks8B%a0#Q6pHt5hk}?N1Z@{CU;8!_Pn1 zmjxVN0e!<_Eqgp1U&`G3zdx8ZL)-m94=vOF+OewklS{ggeI=769ht@esmZK-P4oPw zc9{+&&GIZQBkR23ftsqRonx6f9djde&vce#H)4z}yUZBdMUD{^Of8X+%3hv`Wvci; zA!Ema;pGp#jT$-Pg@Mni0l411x_0R>qvMRrFa+25k`BSC#~(av`qdy@=~v|ykHNA0 zSv8N;9G6;)&8S?-fVgT=xhpcQsS1tGz16bcl{K!sy;fTNcwSz}V^l=MTWHg2SIuox zjp4b}8i6svj*uX);JAd)Fy2!d9OUH}be`Yh%ac4&L5qi1)A;HHs8@+67cE2v>e zgP{5W^~#@&&Ubf{^UbXM?q>(cOSO8MBo{avCp7Z(iqHNmuhlc9l(ae7nHg3(E9}y> z0sl*KDi`>FMXLp~N)##s{vG?5agdjz0H`+4gbQ>mw|3aNdE1SebTFVq!>0f-{tL0ltZ`jhiobQ^8Nz&yuPk^!Tl!1|yz+3v%k76>sb8aBu^(2`B<=x9w-c6ZuPiSnR~o2E z5wEOr`k}Q#@`7pxo{vCDyp_{-Sm!&o@aRhaRqvIUe2$MYSlnIKNmalVy=ZoEyP{W1N-c{KvzXh+%4ULB z<6nQtpnzudWsO9pk8dBzO!vv`(?Co2@lN;YU$O@9-!8TpYE9x<_hXNKo&8y!HyT?? z#B4naZi?XL)mJMgmB^?TpPpY1Jwkf> zX7>LlN@Bs}e@{T~%=G@3wXWdem6I=j9O3cD9)0+szIWew`)wUw?D*nk7(=+kPF}TS zl}D$A%jm!bojr}^VE0;{3c2{au(arqa5Es-;mhljqt18riLqYMaZwE`)ILoP2<5@{ zkU$^rpq34^I}*X&}QBhvI#tG3C>Hlvs4!b`XI=y71yKhb=EjhcXnO)rB7pArK zEC%dqdF6W5%2kseHO*XauiSE4on>Y}&Rw^9!B*$lX^np|%b`Xm&Q5*yWdVJ<`ncj1o2C{QvDz zTBa3!DT}G?VJ|e_y{W^djo+d&IVzCq9R^<(s}Lj=vaF&A|l4y z+Zmja7wZ$m2OxMfp>k|Yb-s_rFhx>KNPd1OL%ahc3R2aeM0|^CyhDyLiAuf>&Fclz zpC{=;?BR;|#OTEA3OW382PBx1;bBzWNQ>_j5bYnEo!|)IoxO}z@M=RZZ^oxXf-6-` z=ev8>sOVe{GAf}Sv}9C*hkOFPU*#)JW@2M!T=9s7msbV40uzk6?t8^64QkZC;HU(z zO3yB5^;CXHt)RSsnin$|(J)uf@%GB;m{n?(RK4W7&N>OTJ);t5f1cY9Q1^$)|60C= zT5gVaPI=z;-w;%Ca=mieS4d2CQy5)J%u<6V|F8n>!IM&woj2_CkIGjtp+vOu22V=K zR>s@^8%C{o>9gJb&=D^TGXUGzCABzKTvJY zt5{Oh0Z zc@VUAtt=xW-76!#e^X|>z0%8Riq{XR7gRT(&c*oLQUkz^lN&i3CN%K4+Ot2)y4r#n zC1T2ee_zfr)$>vc+Oc3<`F-6lmn~hgc+nfvr%f66(&&*RhCcKl4Y6JwwshQb8T!4= zE@9==l9}t_pK4B(YA30goU@ZVwHuk|P72k`&5h*IP`iPaUz2CZ&d#QXsn=efZE}^3 zs#czwUE-0?idAdviAp}H4f#wk-_7I&6Yj|#zM2;h67HVti8L&}CuqgFr-p(8Ln0jx zUTHXncOECy;Z37vT1;-Rdm4%5g8aq1qPWmJT#kFbMGS@dKz&!w~WGI^D&>hVO-WXhs$E;P$&GHSaT+pC?qvXi2 zbFU8#&${}WEWTS?w8+P&0#0O+k>GBZO(lkm0ep&_e~i}sZ^)@!@c*(V3nrE*Q3hPBoy)k} zOKE5|xOjm@N^_Zoe{<%T;Sb|!@4v6ZqK=C$gQLCFiy#&obazMNqN0=H?FJMd zd*BUCT4ZvtnraVBNJ5hYTSVceZrd98?3Fl9@CloCR46DEs ziuXuA?QM6v>V=YLXw_6z*;i+r`vh&dD-O$!Ue?z#)$_cWW!4&=eSp^<$2|MwZSEA6?s+^x}TM=lFK(6-A~4; z$1N)KXq+~U||T%%EO*Mf(1bJH`p`xdX| zJFiOA4XG1UJ0RcPdr<2Xa<%l_^H$+z+bj93?5vJw*YV|O*#))qn%>zpOFydHFu8%V zenLG@zvArAvQ@+VsBURNJ?maBQqT+p&A2Rrs+K}&LH|cJS}?7|>h{yS=bODu>)@ZU zyJ|O#zQEYYYaL#Db^Oa?hYTM0%+pUj{@8<;>!lt|E}=X6`w^7l(QkLVK(!O{RF~_& zvm)iYGQ%iwalrveX<_MYv#)9Hh~@28{$^a|`Wd0omuziHRDOE1t9^YfU%h_itQP)3 zMN2(x1NEqH1#aQoGVzWg@I$l=eA8$9kQ-s{!#o(_XL4!R8OluJ3Zs$M?AJMBuo|Djqd z_QOGGP_gj>M413BYpg>q*~4L zQ}}?QufJbJR?+YI1#!u(>*cjht9EULnl=rC6RSn>_^4)8u76c}%f8JL>a@#h+@XGo z`WQt*TWdge zmY(UA?vh0&?PSes_irG zowv((Z}aE9{n0xgjTt>^#IP4xo%KN9`|jx4;jNBuT?RLIDHjZ|0$06JiSZBBuqid4 z?|yxJ$>7O(Yql6Xi3pES&%diLkg4xOs>YHR?yySndrpX~LIWpl!zw5GJCc(9ywW0h z_|hIX35*C04+u|ADt_#scxe}nrtrpzw3)P+v``*SPe=*$OHJmRI#J0*C+l9VrPWOg z4fL;&oBX0uWMHM7I^lfe$-7r<@mMiqBZmFrLd}YZ)q>B?Nm*ez>G2tHyxb|eUS3G0 zhyWfj_2Ikezopl9RtxtF9vb3ZfnMVTZBv2cSrYB4Ss9*LsZvcVq0^^lvm7jg`PPhb zCi}~_4YFujW&NwBmEE8^XE5dLYTv(I{99&0eYvugsoR%TxC^ed96t2<=N^CT-kx`L z>oB3?gv(HwFY!uCHIPYlwx7gww^Y>h5=YOjz*OU-rJmwcb-uXrR;0RWqpN0y`lu%% zEluF4{we86aW^`vRIA{t)Png4 zs_s*{N+l~K)GHu6H8(LLH7GZ#LA5G*vA$|@DTL)WLH^#(lz^)7NzUNBuzIPn4XRh5 z`n{=bFYtR%%aj-UFi`8Mf8$FQKJb1u>R$%+FUKp}D<^vZOBS+KSLggU0+(6$AemWO zI*p0*+A`&Ja_lz(pIv5SSHQDB%Qj&OUM-PL4KVzjaAj)ZWs$C9!G)G&yxHN+nYM%Mf%B*`-zH3m`Z2M3fDeo0cu0;J-Q4 zkQL?Q^fw*eyy!cqN~)j98^3vA+Ti1O(aDj1MzE&&`-Vqr;f|tpWriL8{TCce)|R>F z6<#WtkLz1Ahea8ZDH)jqaz8+R60xrmsE^zaeb;I zI$TZg#n*@piHR$o$!pr8a)Zh=x9x{)gM&jtLL=N~Lep-lSaUV+mWETp;zQhXc)b4K zz1SfoVZ_btliD;K&(~($r_>is+~-nb9&dPms|wr~r)jg@6>iAcQM8<_lD89hmj0hN zkx{0>chTz_F1GPGv_u%zq+dXqGWG0Iio?5k%X|Ml>zjCX^FCgy*8Q%_P^~WYG+q_M z?l_h^YaT|MGM`UEsj)G4>r-_Y%TztJE-FB;P@D4w!>^L}{eBVg5q1rVi4JkstsoyW zEZ|xnFYorIPmuSywJSN@KfFeb2*a;pUBabtRf4qW*cg9r!UJcQ= zPJXSLyx!Nl_=ZBOK7hy`XAO|!Nd~bWWdE*xQu_hlqOaqWfRIDC*w^Y%RXQ7*{3t!nEv|I z$-`b8GWhv{y?WyCx^>vvaqDI9dYAHjAL=`2EHoHn;75qwt+-15MWX3ijH`D-}z2Jl2zu679DfjZ2?X% zUVOU3@VEhE_>hnm798(ouV?bKg^aNHqTvq9VNIFhTal-3))}=wn5@2>SnPl& zl`OmNTTXK$U#rO@nl*C=G_B3+A20BT=A~S2%{R!@vn_uwrQ{=IzFSD1do2G!(n~C* za>Rcxf+;1&F1K-cK?%z^%Qn_^ShwceZ@zwi-g|T2d28$#)dqd& zLG}8O%ixSJ<@)-Pr5iLe^VAS$Y42IeD>L9ih_h$UX@#EqsH2()DVg>lT0VKl!;qc_ zA=TLmIpGC3NuS94_>P9&H!O+IBCC%r#l}>Qx1wWwLLClAQ{6I~hidLVVMIhppD;Ni ztQ&33M}w2?FEoWFCx*nNvxGFzCp_43mFefzwi5e9#}}SL_`*|#`j7U*j=B|HxfgG+ zdxiN9+tYfSYCw2EM+T5?jtTQB+w}DfiGGA>XmHc#=gX)<|7Y3#1qh$!6jVEFEX5cpO9LTQN=y6 zS+aVo#3#@4UY4KFX+JC6f3|w-zIxJC4^(g6PrRyK3*I>sS)p3GhB2$K$Vyr}ii` z%P=v<>!S`@N#JjGDPYmQj8|VuC zV6=$u6C#dj@Ck5jrK{m?cnV&IcVPwm2&Y8+1EGpYzy~5h;gA6>;1+m@PX_lA2|@a> zRw5CK+e9LfHxhXxkv9@~Bat@}c_WcGaxrXzBO+1cHEI`}7Ks@n5<3*81L?;e6p2p} zNpy%fzlFVUMkM(=I3$wtJWPfUVGZmDmq=n{Hwfz9u>kz&!pTw>I0K5q3y*_%cPaYa#i$+`Em`G#dZ%q7+>xdL^ykIsgg>7(L zqzO7`k_`3WI_M$Nlxv$7iZsJU%_BrwyaMRACHid5`PKsfowvDO7#*GEG&ksEFnxe?jhw}x8*y>ukKPUxf4Mv^(!-duBgS z_MVM|ENBI{!6U%+&wdIU;V@rvw;&#B0r?w9{sxl2f#h!>`5Q?71`^*u;(Lzxo+G~J zi0?V#dye>?8v!%nGuRAA`Qo=XBtmWI1k~|ClYzVqB5#8zL(gN==aZo+5a#*5Fa#FC z4k!{COgS2y2`vE~4SpDg!wmQu4vD;AKrGaRD*>InfSz7>3EqM)U_1OOGQrVdQ4=P57dX=Fcmfc z_8U$a8y*LFa20d|bTNDkyba6XdpIF7q7qbw25^JONXo+~>icNY9@9r;96EX#na1ae zOjs{6@kfzK*kN)Pk*N;>aZY_-WE!@eeoADSbLa=Wdd<4k8Ul%Fd2*h=ObPtk`gU3Y< zIlu||a20eD`FXg=;a34Y9gP5VL9viy>>o=9@^q{NV25LaV4}z`pNkxyBys}X{Km0U z?SQyW^@EWxL*(}fBB!ZKe=dUWf%N|(&wpWuzp(Kcf8hEv*!aw~a5p>&V}Y`N<`Y=Q zEq{t=+Vi66*Faww0&k0E%n{96Et+>NXbX41W1{(-6wS91ya}JfW;iUG!+==P{Nf-F z+K5&u1?t1KaF1yI2Sp3)B3h73w2(xo4a6PFekl8)YM*pMNhh3R5p_k2^cF2D2x^KJ zy%Ki8@1n&7KxJqkTI^_;4NG7P91|_h3lbn7t`aSNo@j|Ya__uNw4{$jOGy*0^1Y&^ ziD*^0w(2{gRSyxZ#yHW^U7}_3JM#N?hT?K6Pm+a@G^V_e~8wQI2+ag^4s_gAg%(gFIW$SP$XKD2;llA zE#X#p7>2_PAZ!!DHbI|FNvmlLU6Uc&wS7dpjx?|5+8cg?Q=;93&f8BBt>gWob($wy zXKZmx3(;;JBid~pMC)?1Xtxg&t?NqB?)VVM-yNGpyA!$YLcY7PW%m)H-E&g3p5(FD z0@3b8=l4A>+Wn!T^<5&`gQWf7LeU=Uj3U!pyY4xd4` zfel4_j&zJ|WuF)}p=s zn`qN5(cXxLU82pHD%#9RFh{gm<3*bt3&{G`MA6&mZybXNW@+BZQ^6*|HY zcpcE+H){c%tsZ<^GxF=|c3tGW#@CZ;I*S!IhlXd8E-67G|V~_RNZasBk{S|OKJSN(AUx~Kiq-dLne{)wr zj?EKcIUEsf3o>j$A6u})7VNVHU2P??19fWK^T2i6 zC==Vhg;Sz!PXuJx{s4@EHvyY(-wMBo_PsA8L0z~O?t!OaJiG_!`Fr&I13KC!&o)c9EyudqmqqdE561-8jm~K|j$Bp_`xAiFTxoXh-LZcInepz&%EuuU4?TCR~Xf3+m zAkqEPpb^{zy@6waQKARE3h%?$@FScOJ;VzVAP?F=C+GqFUBADTy3|54E&|5Eh+F`^HcD*Dq$MIYEj^g(Zl zKKOCbhvq;NxE5{~eHihKhy!ds;#TMnlYlr!AjgQ`89E@Yk=SeWDAC8LSBv6)X_yA&cluu7+Bf21kLWXqeH0FT0*=_h<6F$ zK3@mFioP@)YC}grx63T30#^WeUPhYBNb}1dME@!uI*7h#$VxZ@0i{ z(edZ{>PFBGNNaU(=nu%XdJ@cm#jqN7z!4}CeN6x)KqfSTc5o~7hW;=dCczw7469)W z9DyRy*9JfWWI`io2e(3R=nunT63l_cuo`y25hxOUT>vCNCNzR}a4YnN{xBRS!5ml& zt6>Kmfg;h@2S5U3LL+Dgw?c2|50l|tpxmxs1K4mq<#)YH^zQ;85wf5$Tn)Fueee{F zfXVPKdq;D(KiG_B4j~hxEgK)>e`0q;boW!l=%%SU^DE8Q=)J5hDfLawV@TX zhr8hscphGcneZX3fX%QUPKmzB8zP|!)P`1~Z=Npt7V^EdQ1oq-nQd2zzMXoqJp)>c z{{3OmfAE16(RTy@(+XxEm;QKTU;2uo+H>zAG3q;Yx-Wn*n8b z&!h0N=zFgbeLv-XKfY{#OSl851N-qE`#%Qa*iRgV#8F5bg~Ub>Sv>07k+)uoCu*{)-7o&BIHJ~++r(dztuM=S*5aw6%eF9sa zs0z)2cut_36R*I0SPP`}8~XdLG88~(K%U>mz+6}bg`%HC=95ln03F~#AYUinhOc0c z=%)nYpbp#sePAfef@QE1{u2H7D9D3rpcf2=>97R8hu=m2BMh>kK=jiu1LfvVbo3{B z{A--(XGrhN3DJuxL1i)IQ8BdBVi>Q($FN=uYo{3APrw*4d_IH~uo?D?L0igjG==M+ zs~CQ-z+5r>Z-w4s1Z)!{C{m2z$zp_FEk@XEF~T_(Sqs{V5w%5(7~+c|zPRdQ#D5Dv zz;9wCSYkK_iIGJ5DXqmwohn9^v0_wvP>kyP#7NH*Bcm!5h>>}(7+D<4y#*c+BQH^m zT7QaB`)4ugE)t_Y*ET#XMnQlWO}-JMSxsmrMsw0?&heJen*BC=#ki`4813T4xO##Z z*Ip~eb)SoIV-Pr@ju`Ee#prOK7@gw8xcM(JZh29R+eX4HSO{MMGI#kBh_efMx!oU# z^LFxmdt10gjIO~@4VpklxF22sWWD3K7~LFV+}TqM`mV-3^~C70T8v)gw-++>YAwdS z--&Ubml%E0#ps(N#sggUzDye-BA@-cBLyeGzM#67tYv;)e?WXj3p{$fl`72|c% zoSrSlj5IN3{wl_-lVZ#!9{RGzTgdXxQZeQ}1FwiNkL`T){9%R|AJr7&lPkpdw38U0 z?GfYir^Hw~7TyqJSywT>JT1nG9b$Y<-oNQA#&hs|Q_&4iX>>?0qAkBcx_rXaqeY_w7(x4^W1%qG) zEQft!`g%bcw1n>PC=7-vun^Wlp_mM9^3`$3hStyp1_0q4OJR?&<_M|+=ly!X5SR_C z;D|753b}9tJPhMt0j!37P$Z^5^7>~2^5C~jf5Q0>hdDqv|6^hXgg_qL1jrjO0X~NB z;b-_u%)mHk0K^f9oPn>yGCWNun4|~ zzr+lQg9gwU9)zJV9Tvd`Af8a-2_;-8vWATjGkm9*5!fyYyGCx5TX6NX)b@Vpc&XRndR78^o-Ee$&xQMprR2my1dN(xiWA=Ahr4 zG{}c`&<*;*Xuu9R*ePcVpu^l{V%Gdc%v!z0%wHmA9ro+>5VQU$F&mOjBg#?Z#bOp* zDQ1(mf$&YfhvQ;4^??K+UyM1LO_8tZqc9R?06J*89!`kaECT94CwKxT0qHf{C1!II zkheMcX-?YB2LO6#PI}Fel|HN4{D_z>ynystkY0N zk~CYAW=qm+Nt!K5llexo6=}92%~qt@iZojdg*ia}T5SV#)0*^J$3ZR-uJx_(AP~0o z>#z`3!yY&-<`qFeoL4k}>!3UIhcQ52t|0C!z6bQt#sN;iMs3JT8}ibIytE-NZKlH_ z*Z>E`ypp_JNnWl@ho;a0`oLhA0?2VC`M$DHOr{&mtD+zqkol@EK)hFtgjuizw!kql z8Q(SAI-w3+1KnW&5Vq|Umm|taxpvA5VJGacjo$A33Dr9Zk-J8!e_7seuSgo67#k| zNQ5kC3|GT#a34GcBVaPT3!lLn_z{kROUy2TV&48VOatU(OvCJoOx)|uu9WSr_rjAv z99@Z{D{*xF38)WuXpjOmp&48ccfbSiEW8BM;C(Ugq|V-X3lQI(#CPW~cn#ixPvKkm z0S?0%G4Jw+c*uZ;&=ziid*MlV1&H^qFJK4!Ddydjg}ZZra&vcQcmzhnJMb0kE~ZG# z?g2m^yJNHNH^BWs8S9Qu=}y@0d&Rs*heV*<-b0*>$D2JU`#ngf2j#g(KD30J;4XL= z#=!#E1SiGp83Fll6Fdy#U@`0yvllY-;#{v=VGzuLO@Ms&ra?O(-h2B4*WJtcdzZrw zI4NdtuJ28_-YtP}y$8VzSPuKdq`hU{mj*52E*KYDFK1x}B%q3>O5n?{xSj;ET&y)4U?2j$_7mE4Rcrgc1-=2P2d<)d^VU)#T zm7xisr(ur+wjV~l8io%YMmZi{39#jG;u?MjAk*;I;A7Yf_>~dCkO`FO5!B}q&jG$_ z#Akr-8F5m~kwM^u`fwxM2SeZuAl%5U@SB*Uh-*{^Tmj^L)YCwEqdo%kI_eiOM>m7s zFdXIp*S=&z7F-R){n7|{SIjXD#T@Gel;M}J7jry$9{-b=6Mh%-Rm%5k8mxt#z_Cf_ zeiHheQ~({I4-AGWFc&DllL$NMn3$6Vg1`yc&>G19q`RoIn4eIou|RY2D}W6@s|!~{Pk0{4^Jg=G>pt5d=92f}YcW6X2KfG^q_>o~7%McFqPH*N z;a2Dk{b4x#DCV+kcp8=i@hm$b=9iSsFBby({PL)n%PHf_YXJ6J-T@v3!mZ%=3i7|= z2Dl%#0LQ;t0Y8ZOHRbbb(*OEJcvZ}mxqyCF-T~NRyn@m+zjMn z-B_SJtXl&=i@Dwx(g2&R?*dQ41o#j(z%OEc7XawvJM{4#dHn7fm<)?xD^Q;|gg_>= z0m=gFCCm+z;A7YX$Hm-8JR7mm#+J|(u**i$+PDDL!x1qzIRJTBUtw;#4$$)^bhHT_ zZ6du*t1b;&NP8PP*iM??zbWPq$n)b*V*d1zn7h&Op1;K0cbk}n=7O1t3Gz{V*J6!wRvY!yy;0hraL<%!8${9*&3=lMTyYn^>{$!e?T|O@alm zQ>^%*VkOjp4lo2>2d+;<{={#^a*|JH0T5R*>8BuX%1W^+_lIdf+?98Wm5QvXRm4im z6RS#9;F>DLS%v&p9U)e=7XbZKL+=zh zI4o9fCqVbPQ{YRnY9dR`aquC0FIN8VV$}{1tI^9aQ!Lg!SgjU{btST0hrX^KE!GX_ z@`mf6yI408{-#K=+D{j&V=u8-dth~r7V8#dxNR_y&TYiog>zk=fMa6azC)}#h~v&~ zV%-hh$s=tb>z-t23SD6syaV6DVX=DnLk6^kdtn&71K+}7v3mML2DF8HVHmsv-@;+B zdig^Jv{^V;wgji4e0{MC-POM?%aoAU4 zjX*!6o)>HMePX@zsaRu7cv`HnoO}5Xv0gz(uMp>W%H;SD#Cnx;uXPb?5_z6HR;($c z|2jH({bkr9)->wDG|o-KKGR+mYr0FUH{K9y264>9CNq=a8F)pkS;#$$v}c_VYc_d# zd#70MJ_!@xL)ZYnh&7k%=GK7La3^s6+{v&Aw!%rV-U|iF_j_%j2N3Uj+|;TE&L?b(%XS>OVRNcaZn%DinZ)2K*ldkNCEP;ob;Bz zE!K*BxE}hzFtNU};6wOYtglJ`Yh+wWepkK*9|JP5R>S%x9MI`E0g1U7&oeL5FKPKreU^xOOcvt$iP`?Yb_2EbF$2wZ1Ko*Y$6S^_>Qh zFiNZql-Ui>inWnEZlpYK;`pXRVr}O5=IYQ2y1~<8Z6UoaOW+4ME!I}TZp{Pox^=2p z+bDb6=D;#xr|-uB*Zj~Oxc-O3V(mbV9d`hE`q2p!#M*fiJRlZxM%GWA z0Neh=^*@~wYZv+7H5g`!wOb$r(g3~hM(?}H>+S)7es`nm-N(h+qeB=FZV%!1vX(|+>3f3aAF zsepY7NvDu{9rPSO)@t>kgpb1B5+*Ob00k2eHM$v0@#{h61=r zte+p4A9eG`>qesO$hOLfa&ts1Ox<9rMR>KbXQ>WvK)jsnSBVy{^j_kX{hoN$S}k66R*6?b_M3br zUafTTYV)*swW}&#*Nzvj8+nqT(+KhEVu;rr%f;*Nj-|MV{ilHQcTW~gL~-QF&9!d} zZ19`-8?2{f6=+1?Pt*>0;}WlzCQnlJe?=r=L=yC^JXCZJXf#FlC++Hz>Os4K^k+$^+Wu=?pJ+F@KGENl zM4rHiJs0CS2{odmQVF^Qt9|`XWce2umhcrQsjk8q?-RbNMCn-)VPE$(`^9MMr0Tio zpGcBE9(g8}Vi(u^J4_ML!5DKs`WLQ0^`@LZmzyO{FOAZ7v2IwARLPcE$@HQGV&_!7 zj`(8d+WHvmja`j+jyK_&NY`Ilk)&v6(Cu%Mq1|HJB1(Tx63uXN7`khrt(W11y`O6y z=KMOTLE6#SE>NFJ8mFYHzMDL=3fGp&Ku|^(rak%c*pRqAajG(AJWJkMi_^BX=bGYjN_p8$JK?YwY?;|FJkNPk2?&JgE9s zx?XwqReB0f9aH&#kRS!dpY&Ot`n+WoLe`_s~4)wD?B>-yE0$8tgHR< z>~~I?w#%`nESD~~9-Ce4)}tS_b?Yp&cx&sfL@yqjUF^2JJa~>NJ9=bLEO zTqn_+A9|~7)I%m^2bI4crJC^|cAroE{ZS%}p1AijT&v0)=Z&iP!90o8R`IUBof58h zf_J%oh6EX^o+$ z_+5>yI+oyCjsB}@3&__v(y7ii4nMN6czc?2Jzy#4vWfFg^0t;VeuuRZrmZ0CLDxxb z1oB)YdIov$U`UYmGVzwjX^!tFf8K1>{vh)CuXu_uFLO5 zsBXCS%Wo1@ieUDG>tjq}GO)TW5v?I21L3SbhwOdL{aZUqUdlt|(Q|yS#AphB>n8zOwLc^XTc?mld24Ep&7@bDT|L`lQG0Qn)3MubdhS5#Zcn`;#*IeTR2A(b6M@;r%LD(-uV z(^PSI((-H((F$i+YQSk#S@2J4vrIsRxx#z@3oN!3tOCmDAE;) zm(!HZKU}A^Fv{{S@}r?^2fnR{`oTFp+VwO3B8v1wZGF$8eX)%8=oQ3E%iLxJ+tTH& z9l!VB_de&kW|APMT~lPQ>zFoFe5BCz5cc-*lsDoG(>5T>0(|H@u0PclStD(oD7~mM zFk3?KXI5=R-@fE^s#2+DL{u2*^84&+_; zK`)2N%WV8&8_LHt@_CGU+?>@j%5RJkZ<$4Vf_kSr`TZh(@Mqc&k4w1r0J>Qy4Q$(U zAJM&C8}xpzmsEYH+@)yMq>`%7CGz4UOWVR@6I<(3|Ol>P_X7JyH}-$W_jq#r)~7C=|!K3cK9Pq;L~A@Pj>s`IGGpY_BH{WKe0SxRnelZ99JA)>K`0QqC>}qckPwrsL~$yZzRHHr)B# z%(+s~o=vzYzTmp+i0@nmaJ(3;KKq@Bk8LT!O6_}&M`|@)D;41=7isHq>}uQkoHB5ptuNZ% z16(`LvwL~=R>%HJHaGhGGq(5Gl72vCc~Yv%M#@Ef`XQ&KiSoI&-&H;rzpDA;LmBVU zRKG|0RQ##!lkvC8zp8yZT(RG^f2%f^^6ko>D?hFLutncUXb&}#XvQ5XtA4AwmVVIX z?6+Rd`_2E)*MC0Fa2f4okEy8fP&FP$f5-0g{7#wuocmp=u_a>@WtMSKBZYCAQm|S% z(PjlR@M>I*@oam1v;o_y+*8%~-XzNZlZ*!{{-oca#=X?IjxTk=;f7Vtq4=y&-XIjp z*ifkPA@O}h8&-`E4JD2jrM71*%O3Y;+{83VW3uaneuVfZO1QCJ#96UOuty|TjQ(Jb=7#(>o(VNnpN}v2F z{pc3s(@Kwl(I+3@6(-H)T4X1BdhVPn-7QsYhZ={)UTyU(lI%S*(Ywo;-#pKxIJkJXsP z56E~2$9fXqKz^%!(?sHU1;1?fIaD8;aS}DA^b+SkbN#~DRUq>w4#pHMJ8jjrRdl7F z`vq|o%dX_qX$LZ{=g@OOwJH0+HsYZ@hz{N3W464mGphfp`dj+dZh4W-8=KhuNbP%$ zZN}fLF&q{DM&eL9p#7@iwev^6*3-{Y<8Zb*RGIVC>FLbLsJg7i zS=D@##g~~Wv-a4mDkG}isxj~Z^wlVPc0EvaSIudty1N^HaGwwbQeMptOg_=t*IT_d#F)c7y^>YRN{)h%_co1<)Z7VrPUb`NYS{_P2K?za4E z#<@=E<6I{VVZ189wa@T({bE#d?bY9M{YE`GX$*CpGKRZOnx^Y#({Sx&`wQ%4f4lJq zJm%VAjC38a_46;nQeIAJ3mNCmq7x}^q?@Dr0qn8 zw~_5l*IwflWP62ew(A?i&$UY*%DEosXer0OfKQO8i|a4rChV#7sPxx}I2sXdA#p4u z3^Ta)_FaCz0o`4Pj3#WcjUDc9!m4pEd#SwbZ`* zxRU!4f$nNUBXoBf4zVA^_AfXJKk+*miuEgz>^nGq1b&6zZG9@8UI=ABMQOWKU|-qs zQeoep@M(;{MyWm}>5xY$u={WHy(y;&$RCXFNuZom#djsBeyZv(slJb%ihnHb*E0T? zX7^zqCaj9fK<*G|N8P%Ido2A%6+d&q8UMBT|3w-~ZY8rVuj*SVSxBGXVQOC;SNq^+ zpHt@*Dr~Wwo;c(O*J3qimJLZ4MyHNgA;Ng6k0o7=zO%v+cy(WiaE1w@9A85T7)Ud*N)#3HyvOMbo~EX0>Uw@wh~r zxorExR`?FSaqpY&a$i3!*;;?({lk{ID&=d!`SZs8=2<0GD zwZBcx^{3U0cDS1RE?&!^+Ec0xtL8Fkmq+QZvaiPXSq)~ey34$a{ox!_ZO(@oyXxd_ zUwY;{)I0?3hGgW5k*}~*XYR?rOH0{D-WWHt$16USCiZrN1arKBf-&Hh^lw_SZNfNt zBd%>Es+^7BUcQp^C#a8OrJKA*9-knbS}PULHCIRz#zB+pG@syFb$tWsO#x%M1(L`( zZ8l@k4$Vva*=B%~v5|(d2t5^WuUE(RNxICS4tIoElwrbZEktCshy2 zFvh=o!+BfUj8!2Qzo*7#)U{==KgjWe#ABcr1HJu-UVda-9L`ukp3)$QHhBnric)y5 zm0Yh)lIwetIMrO(_4rcI1{Cu;b*C6PE>)nKLR(IsWFC2H0L!`V8e~xRX)~&0@_!^w z%8R?q6x&?Y1>TTv+eP&UtQ+j9Ig%%Be(#C8wxHbqKDnLmwiiqe17<^8Ju+HFj= zRqHf90yRfe*ENtb>Cjx%Kl(HF`V8e0c2Rfhao@d{I^F^3Guijy7We|yZ{nD7H^*6* zMc*xid#UL4?6gx53M_Ls&+f~U3^}k@dbWfT|0{Kk5hNmR`G~?-@g6?eGKY6>Ezh{ z!sB~P>86>kukaV$z))pd#l_R;wG<_C_M+c-Mp~L9sbhPJ(^6?XZ4*ryPh%V)SKYhl zV`XBuT*HZ;StrBq?Bd_{mUe5H{ab}m9N@YI^lLoZ@x{M6XCE&PW1r7QuWz9*#kDX3 zT`As@Ebi%^ZRWYZjkg(3!q=&_J<9LlXR9&};3R+1v~Q|1C)t3y+)j@{pM+IuDX>GX zuG*K^lh2XZdOT|Z!K}`8ow!#ggRMjK*P8qKLduiU!5z#wtA6+ieCs@Z|AoJ0U64uJ z#2o0}8gH_#19xz~8_?D<+q1o$Hp^Y?bIj}v_rYTv-v@KyD}Ijx)+1Tf*(QP$$cO$l zWfb44*G9ff^4CFi`_#IVT*etp=1-B4JUXz2vQM^-ei+9I!&la3 z{xn)%!k+@`gH*dPjJA7qbq(t#!nFkYhS*E*B5AZ!GBh>j(+d4U8QrMx^zYDl1KKpo z$LF$+sxR@_<&E)eyhY1G9nA8P}(vu4VP99d04pWyO5R z_B~K>&MoFmwsT-rsbf>wS4_f3Cb0b$ct5V4=3=($`ibx}sPvT_N-iazl1+)Nyr80v3<7nXI_C-R(a#W$-4COSQF>K;46H@BWmNiAvZ(FKVn(u6 zya7MV4N&>10h#JJawywS_89vR zSFCD}n^AJje?;wzyB-1z2`EfTynlRPd{lf~d~$sC z_{{j6_AR%u$$GMPa%gfya!hhU za$0hYyg_5IWjQ$J1pJat9t%G7;n z(P;^3{i{@}a($KdRqn2GsQSY-TBbjh8I_ruSuHa&vwpUb?Kd-LX0w@B%)EBy^)uVg z>^QUM%;7U<&t#Ci@UxSP|MV(yxz4y;*ic!~iJzz^Q}nC#j{42|T>T@gxLp5A-=got ziemU11!b)Gpl!v0SaG;9%9v)%Hr_K<8tbs)cC2{JwxXD^W@WQJuWadR_P~mL%^_Bh z6=PMlGUIu4A>LtIF*e>ApBA4UpB-NlD>jO6g%z)kzX>beevTC-VQj*r#Gu5eL}y~v z#Dc`uiPscc@wUVPiGvdtBrZ?fl=ws9@x+r(aRxb~oN-R4v$Ac)TxVTp1FYDp#EN~K z4?6of2RMf~M>@x1#c9sBobNg3I~O_^CD8y*vTQ4cV8w)_LpgZKI!J9E=ePk zCSk?3N!zfZl^mEHo*a!8Q_5JeTXK)&-o;j|R{6oo6H}+8&P!d8x+rx?>hfYM#$iQ= zZNwtpF1_%isH6nrHD#CB0f!QYi7Bg zpjC9M&rzQQj_p^+ybrUN3&}o7J_$b2J`p}+ygxC&@aji}zYcPYZ2o^mg;jkEV}$XX ze$?RJ#B3NZxmCxNuW)bO|L^@_@ArGR?cKU}-QG2OR~=k+DB@7~p|C@the8eo9`Zj_ z>5%UsZ;^vv9b9p6`N6jj&OSWN%7stw|Do{l{Tugh*#8~Bd`rhJ zasdBzfKcl1z)w7%CI@aH)JJTM1KNS62e`u&J`3%Lb>#jH2l}|fy8l10>Hv5811t8| zctE&i~U3ZOs)nU_Y)fr!crMxzJGk z=eO5^*4tCIx7&L4R@wm~of~zo-8sK=&Ca=YoB$D|4)0)TPGQ3;y&PYo!4M5 ze7)BYuQA^Jy$5;^@h;YjCuI3s@4jV^d-tLojdmaNwR7eI2Jj+a;$c&b*y)AH{{#~`+st%jySfs zL!JHKvC=+o=iafyv5RnpXV1F#9OdZDvC^?hrE_jr&u_=ajzz@vyXQCiC;S{|e~I{& z{!zT|`-g8`-=@9|9HEZpj@Nvf`S$gFz&F>C?pxdUS>Hy!EqwERn>%VcvK_g;jUBuN zTLPJniD2xfvZONVm4y#(APuFdG?Ui6ji9}Bkej8e+$s0V1M;XmCjEVT_}298>3G|> zmERI=p0-5$Tw9@iqixorD1r?3iMC`@ZO?>pRdf)o-a|x+CA`H=mP!A32&j zCi&+1E%G^G`S=d?)qIM4b>AlTbCM=Xu*8@4Rj4FMEN!<$+HN^gQ}UQgY9(#u3b|6Q zm#Z9^a;@}`yQI6^BmLwiJzV=xdtduNTcj<}KGr^^MX_F6rLED{YWua_+Fos+_SOHR z?LEM&w%PD+$+Bfz4ttis$q8WF z(LL#e?nxJ=&`k^f`|)GC-uM01b$xLCa?3uFB|VaTY)QwD#L7r{+!B^&Nz>NSR*IEu zHL+sq8Y@uOVQzaT?(MeWId~VwwP{}aDLf(OQi2RA79i+-fN1sEfr+tErf5H5RkgMPi1P zDrTt*#X?+<&rsKj<>D-LqgbUjik0dntG;!rSSQZ2T8s5o8#tV~z)BYz#D(G_D+ABs z7mG4+iMZ6%!*k<2tdqZ7Tp_Ns+F4n64!=rVZM7HIVEjReYpon{oz+2HFK)m{(T!Fo z%y->{-!p9#)2+C;S==IS#VFHlRyT3GxWnph^>BQ#$?9qKvUUtdl`A%j zyRp9I9&xXgFYdDn#Qj#GNLWRp3Qy--FeX zR-&ccFLq%p^g)cX?8chahpZ9SNb#_E#2O_YwML6Q;xX~KH3rWjyK!&-h!~Ffl_ziy z{G?SPp2FD3UTd6q+8QsO!92^e)&%h!emnTQRVrSm*VHBG#Uv5L2_Hu!Cf!M$V668o*$;(#^BnrqFo=F4xb1$e9C zyW%}-k$7KxU@f+m;8(3n#fRb}{C?vT%oTi!HR7LH%f;u`3h_noaIiagFnBb0GI%0* zDtOF%5@b0IoQBRRK~B&i=oEAdx(7XiEG^two~ak;F?ysf(^H(|dWmyF zFV#{n)0RF%E4|z~phxLk{h-d%yPa3{0B!3P+R*@`9+b#-A>=7v-DfU;nu7PjnM*1>cp!euP{g_vdyX0i2vC~8xw7wHx zT8G6~*7xFT>xlTqIx4=!2-+e1qWC-f`s}dvv-lprs5yca=tr&J#19yC`_cMc{AB$h ze#Wnfez8u7Ulqo(l@!O6C4N^*{Gn`d93zG&;0{nIS4!ncOZieMBW)E(M zm!7I2eN_{#dTPl))s{)Bj;yBY%Id0~tfA`5nyP`sufb()b&9N`8p*mUS=LjHWqs8| zHc&CyP^HLIR9rSvsWMqLm5o)JY@(XUm})LlR0|nbE%C_IN;Xxe$~4tlHdAe6bCoVz zs0`UsWs1e>O0hs)CKjnHWGmHHo~qi()+$T3QQ0zGwU-$xM`o%HvaKjpy<|JpTV|5=adMyMnE7aF@F)aDR4|yHbCtztUgpZ}hkNkp4~|cHuwT^<3XIZr~=l)!Zs~i@Vj` z=5BX)xDU8H-Ba8~ZnE3hZQ{n<6gTc>xd+^L-S^!0-4EOk-H+Ul-HvW2x3k;D?do=O zySqKyRqkr{YWEuV7WYyUALZF-)-PFbiZ`Ja=&)JaldsBx!<{m-CQ@%&36mjLbu56 zTV6U zX7E+;O>oG4$bHy-#C_D=?e1~Y+-7d7+cfw(_%`^?ebar*ecOGeZ$@F=C~c) zY`49e5gZP_501KDxSzWR-Ot?b-8OEz+tcmk_6~jszVy%W&-GXPtNfMzTEDME|!-7dk1X zzZqZ#`W1eqsc%j(X{NDhVw#zjrmm@O8scs^W}2G@riMv1EleYmY*Ngv=4G#^*@QdY zS8-Q+i`i#-m_cTinPR4y8D@@|Yi66NX1bYa=9&3sg;{3KFw0Fh+*h|Tz045P+hmxb zW`xN#9ZU}0XPdR=e6!A6V9qle%ys5kdAgb{OJ$jysOG4-vRuuR6>7e$R14%JIayAT zQ`JH_O)XN3<#e?~EydIP8EUy&q0S6`lQZN@f0jSnpW)Axv(#B~wpuCYs8w>VS}o_P zv(*}Pj-0Q~l?&7c-1*^O_jP>x>-_EhIH^ANVXTcv!n2!*GybnoJpT}W7bwQy2tN;+ z#`xW#%@|V$+MF>3&=!oj0os!B^Pzac!I+@%>1m}k<7Y$LFeV)u;deqfgYnOXW-@+H zXj{fFgth}HqlYnD+?j{?9iiPApUOjJ1$ZBrz@2*t-ghi8E*oN~480hiv^Rshe}Q>- zMnb9nRF4{fj!TdYsT@QjPz3sbW}t5b)u~?umA!uim3IIb2&jyM0G^b?e1<>?I>yk5 zQP5#vI2Z#)M2v%ujF;y<)1c!SpX_!T<4=c9 zVCYFvoX+@E=Tauv11)2)YD?hhNQiQNat>!`D-eDf`>1?CJ`bG)CL{b7bP9tNhXT(c zAz0-q@N^P_l`uk3IRI7*3NeGhn+b%N3Gl=#e}c|t@ate9<}j9lk}c+8%p?g)wgBM_ z@&bf`)d0GX!3>}fi@;)xxLg7ydo4xyD(EssQ9nO}@u}>~8FM>y1>;ja$iBdIhHhm1 z-=H@$emCeXjHwB|l`(PXZH%c6rQ-tA3VH`)NH;O&Cg`0^@CfuS#%zRcW*irKH{+iV zrM3iy&i8v6e+~3L#!wmWXM)F}3C2*lsu3dmLQopu{Q!NCaXjd5#=ihc@qjO(4>R6zDAgJG7W7dDPs2j&iO|r;A}9{k zhp@pD5drkc2nYI9gb&>tLH&pNF;NFR6OjsiHX<4N9C#kYzzY#%s~01(pf7=!L3{8@ z1ogvLBlpm7ts&;dc*+e8xbR*Z$=D+zQy1vAFor27zTYOg3hh|5tE$|tb`EaTL!=U$7`j)cZfsz9A+f7)%T429eRYZ zs6QNKuHX!;X{<=5vHZAOz=%M4y<{kxp zfy_J(rFc}Qx={4*5cGGf<_y979~^&1?1d&Vn8y^dTEr93>WpXztr3CqK;l|PU_Mhw z%A3GBAt^nedkee;gV_hAasbSk3amV1aIVPujEF;VZiKuFrThThn@GxocpWriL=!0N z9)j~s(s2RZk4XBAH~?Y{-M>h*S;#xkI79a?GBx5|D3u$C)lkYCV6;leW(?i4$mS6r zLg~1G?rUVr2%JNb$^qy;1}iKW>eH)1tGH{K88|yK=)8seZ?Gv<}h>*B`FPY2y|q`*-$DIu&Az-A8{B^9RS^1$*vJc zpmZ!C)YPk~wL5W2s^n{Pre3MynNL-&BPjKRpLkP{iP z7Fy0=v{c9nhVJ!bC4&)EAty26z2Ibo0Y+7YoWjsOnw-jDq*cgi4BgYo=?q3+g`B~J z_lxuyz=*7nvlzPXlMxuD6_Sn%=sr=-Wh^?6=P}{^;(UYwMstN+z|cLQjKB!5z^`IL z=w44QW-#h2MpQ~J48^q?q|a1 zkOacOibJcwR^&zH-Ns;yUeG;IcppS%+`(YnUeG-gW=g_)dd!pvx(~9tLw7S6(HC^j z6y7(X4s>sXQF&qYgzf=PU@p->p9D|gI8?vA495M#XRYvlhwAq%W931g1J5Hq)%69& z%7?zl(7iuqV?r=r5Z+^j_gPf$R~V}h`YJ=u1ayB!SVho%3_Tx&-^Z_Ge;`a<7g==nju&0tPKU?wPpo+mI15rTON{?0yt@{?WP1@Gbb1EB9S^qhfNqY!Hl z^h1W8Ip}$kzzm1LEK-Q54*eto_6@&NKgIFUHgxYuSVN$nGc>kA_nIM8u7eCcw_uhk z1T!WAGgTq<9D^CG5X_k6NBFyAEz%*ce#z?l0IVh_TxD2I#!wl4XJ|Z#o|!`)fgWdQ z+yS#@A(-6}77k6&GZWnhhZIAxGrW&Rf24CYqy%a+^ejc+mmy=JnxW^a@VIpBalm8f z`HH?5L&ifWylVL;D<^ehoF2^weUxsblkLMB6-GW3i{_oE?Gpv@S1UZi`kkg3oX3_Uy2{Y1z# zXe)-EBk8**WID7pL(i1-9TPGGn$FPkC4HBK%!Fn#^sGtW2O+bd?HGFQw6Y>*L$eur z2Bq%< zq4}T)@jrz2iC6~h%g{3`U5`S}fc9tT`IW9aArTiD=wODPYw0?I*->Gg z2};0Nv^Cj(9Jn8>0|~Gb*Y@hrUEon6f;*v4GPIJy+RFqFL!V}X-Oy(M`b$8^qV@p6 zgV1-F0LQZSGXWj%024d`B|C!PDd>Al@EDZr2+Su?vJnWV-97@?=TP7OnStLppbRRf-X>(3DD-sV*>OAFdsUC3DB3+7$#Tj6EJ@hQ$4a1P>p20fS2u)SK#_^_Emd#m+AXtaa6fYGou-H*~eto{IcG2>GHmw=nG z|8eN8;4XysK{tcD5vDrc1Mb7H!89oP0pU)BqF)j2WM~z57Gd;j^&I1tL!W2dNzfM< zcM9}H#;t_D#JE$TFEg6j{Z)omB`I8+)axh@)gAp?y@|ZY=5I0XTqyb^;m(9o{ee3R ziato_PoU_BggYBbbp!4k=wWaKVQQ~m8GR6XjB%Inu%0c^KT!@F{g80}fTAA~&MQ!x zaejn4jPnB&{nJKYbkIh&4-CS{&qm)PoZq16dxV4X+30(OgZ8znGtL*#8jN!YS`*Yk z9N5*a3+f>ZJK6QYDG0+xb|c0?{q1CshW+Rdb~Df%VbsxX!8l(-TQbg9&{p77#Q6r= z8ni(ecCynM=R0Ty5N_qrTPGk>!Ll6(dd^p&Idv-gHkzwMjy4Q&Oo05UBqbg zSDWe#^m6EW#yJ2zpV3tB3mBaX-N5Jvp%*eb4|)-!cSA2`9GtuMC5%Sf*q1Vz&X3C& zy#jhUqv>3^g3)I}uVgeTXFC^}9D2-3s~^ zqp1(R&FE91?=YJB<9@!jLwFB&FH(K-!Qs8^jk*X z13kp(9O!q9z889!(H)@QGx|R05k_}}9%c0X&>tAx3Hl?W6VRU+-5L5bqpP65FuDu$ zS4MAv{>JF8&|{3IbL)3TcZ2@H=xxyBjP4FS!RYO{zSm@Q4`?k$?|{~3bWdm; z#OPkoWJd3VHfD5hXcI>7f}-ydx&{<|l+f#-=$C}1tXwn|Q_Ff+-Y)W`Tps-hye1wNW>9hU_ zkA@Cnys=P zc$1-zFy0jClT5G#x{nFar(&=nAz+`FWUTL?7DIEDF~wMip|CR{V7HjVSm^sP&CpzC z4DCQzuwl$&Xl^s+GuBb4VQ8K+7BCjhk602T4nfg|goSe@R-F-4wi=9u^CpHqOb99) z`Y=Jya53~@g62qLbr|axXkA87+3GPC*`YoosB8@w>o;gaMo`&KVXR|Nvy5Q%=$SZ{!_d5MtOG;O$FYtK%>&0eG4!kqe}W-29~|q# z&~tOFD?@X`v2F}KL&v%^G*2As!O-(`tS3YB#<5)n*$k|i;fLq6!p`= z49!c&hA@iy>`;d0r(?qyMg4a;Lvz)!5sad~Jd&Y#>)0qpQNJF|&^&f*45O%z7c(@U z9V=lJ_4lz1&2PuXF^c;Bc!uV>W2Z5y33LJ@scfe+Dh4fOX#P7^#;6qNM26+Cwj9 zB-QZ}M&&>+WhB*+$_-Qp=;aKpEr?OMZ@~VJ&>I<13cZO@y`UQzT7wX~nNhu=w=lFG zA$BW6<8-mx7+RMQyPctNyVxBJty73?VpKl#PKMSj#O`8L0dzA%YZqd7Gc@)WyN98* z46%C|RRq0{p*0P$`x(^-nqX*sL#&EXeW6f8I27Q20 z1E4z@S`!i5#i)VM2N_x)5!=nELC}X7*%SIOqXt7CVQAe%>`_Jyf$m`>+59m^4TV0= zNV54842_A#o@6B1{3%8ahwf!0+5BmS#!X|-Fp_NkETcw3pJOE1{CP%=g1*2=viXaQ z8V!Akk!16i85)a?y~0Sc`Kyd7hQ7u~viUwnl|Wx-B-#88MvaBO$w;#KTZ|e9eVdVF z^LH3E9=e~AWb*?IjR(ixWhB}BJw{D{zRyUq`3Htw1sucP$Bgy8UFf_&- z`;?Jn^UoMH5&AhJ$>v`$svLTdk!15P85*CCeZ@$!`PYo9gnq+FviY}+ngl(>NV55N zjG7ER%t*5N_l%kXJ;I0;(4&mH9{K|#sV#nF)KutCjHI^snNicAzc7;8;#WpZhyKP$ zYKvoxngRWtk<=D{Flr|BI3uYoPB3bg5GewzZBXKG{Jrx zBP9-6V*j7wtaz!rp? z2}L~#7spLO9SE0>jlM#-Sy1$k6xiN90EMknW+U7YItR=}colRWn2+$)&;?*2!nZ&d zfyD^#f-V6|5q=uF44i>5&XttqUhUJyqHZZ~ zF)o$&ZSW4_q(S$C0|=)=-(v!t$0_eK0nXi&518OP=!XF9>C&-31)m{|vZj2_xNkto zF2JQ@lkL!kZVr^njbppnP%1ZYGoX|Q${rksQXU|nb|E_gmySoa}?h`H@oB9xN zQH~U98{kqq{sMkQxDE6-@H@gip?@#|9pg9?pnP!wY6#&UgVqGK5IzT5oAFme>oEQ* zXkEr%39ZNYYoYZSzb~{QXoTZj3T+IUAbc@2#`qUOk#QWhH+MptGJXeWGsf=$ZO-^b z&=!o}8QPNZ`$1bXCV;kMOd&LzG512-GY0Jy&jFoKo-3eTKv#q}K)W+Ow&RpHZ07fe z7BC*{7w^OPy`fZ3TqepyR*<^amSS3eG~9>VdvNm|4(E7&8TWDPyKVFJsIM=;Z)?$jpIW$(Y&D zs~CfRm3lQ}rbDk`%uMLD;5ww82fY!%24*4jKE^D7zQP#v_f)bMY-4a9r0xd?5Iz%2 z*)7K8L(z7G=>|pH5vC{9WlS3=`VC=V!=^PEGXz?TF}@gS`Sd04uj%+ zAPnr<6#a}a=nqX}jOhwRdp4zZgx#A`-oSK+c4SO3l(vB>f>L^5N}zoi(+P?;B1{&v zf-xPSm5j-OqHUVO#%3%O?bj6TV8%nAVhs9D)9)BF0ZaGMCkXQf^i+V){Ym&49qir= z?c$vQy&h~w9JEREjo@a4*Fd*0=3MAjhTdz^dMFhV=VYhT#2PE>yY{>ZN z^O;RS8f=0-mDvn5N0{QY0_ZnB%8{AL_&6^z(eE>H{`qL@c8c+bLp=~+Kl0zyf{{4p zrk0FC-kWetLc)fdaBM=Mtv9u1B=XwShQXVj#in#d!Umggt`cfB6y+f#Y_X{=zUYY61Lft&(QjyP5l^JAG8T|AZUHirV)%f4~jlRsP#~spM*Le3Y!wNhG-M|E+Jv} zO&2nX_HAY)+F;W$a01`Iu;YgkSoke)159T;$|Rvr|MUox)QEq&bWCFo%*7Bl(h;T_ zhPD4-@J1l{{pSGtgJW2lIuHy(oaYiEJ)RJwiVI8P@c}zU^C!(ygY4Ua%yTqlq5ucTEP|}MSf{sMna}1;-!-^5>|RzYFcVWLZ!zm zwyL`IL|%TPPJX;VR33gH7^-Ht{9P%*B8eVLx*Bl?~>$rqBDg$mz2b-I5tYu3cI4M zc%mJB-i~7K8Co2NHP)BK6J}^}DfYzaGee<{6zW)-Tv}36k_>AllJd(FVt8>v44}xV z*iIghh*2muploMNQBE;-I$~l;Nkv&nLbfR>iE2<1uRwj$@=7uiPI|mBp0Jyjp-yi8 z(Bg!fmY49-^3VcEQks#_p}Ap+ctw>vF)vOZQgxHL`1CiCR9aY`a9XG0!~FRA_-)4)jxS2g{rsbufyQJln zC9H{)60#fxNw}>u5`KD|N?RS(vc*J1L3w+ZmQa+^g0QqEeT!dRi)3n$L_8UVJXuOKZCY6YXHo5cBu_L$DkT21YJX2u zo%(-T-qvbKLKUKklG9R4TB8%!NUyT2!bC+`K}MoxI;s$lCu-#PrM_J z8Map~9H?e!lsIfqj)Es@<(J0Sm&OydV781z?eqa7i>vI4f|6#5YL#hAG7@#t2MjA7 zFoJg`r(%DdaDUzODp5OsRB=`9+W84tmY1m2hE6$jt-Pul^rt5NBxHTGg=#*uxQfn0 zm@98RS{T{ZY@M2hWGBPu5A-=D!I?~-mY^nmQ2svH`_IPuA5B;#M4dDkIX@wKZjn-k zXJNf`Q6;Rxk;RGHX?gL&M0Iq(YH8?l=!$i*rxay)pkYHPYKb}`FE5WQQ5OZlXH|8* zHi`4wBsWDruaC;sYm<>^kX|K88^Z9Ur=(XY(njf3HfeHtl|$M%y-JfdNw0EAW9d~M zX-ayPPueCOX5ofN=u((GEuNW>r_pJXkx2jBhxPyba4vtC@wX3K{Q2QL{xF^{5;fZV zuL@ILw{u;oqJOVnD(V+UxtgMWq-m%hX*1N1v^nZW+5+_>ZHfAkwnF_#PeuJmTcduY znd$NF;ThF79VTvA8pqX7mQv>^gC;Vm^R`P*v~81UixV>o=R_ZL-T!)Krj>P0qbvOX zWeoJoj70XywyvtK3#scRvRYR;vR+{^u8!1-?f+(;{}m@EJ>DTKc?TSgk5l-c*9%;R z{%dJzzo@@W(7%G7X`QQbWId{DN7w@u_^)Y7an_V|&Pa4h&uq{=BhmT)E-HF>Iihz# z6N&oGkK!C#?^zMaB3A#N`)XO`WBzR~HuUii=qNL<2;#ab0a5MypB^ zd5IvuP38K`w0OMxdK|OcKcmGn`FIJ9vmuHdPn6QdrT4Jnt#;grCvUY|IE_m3=#p!2 z^+x_EL0VC1LZh|+dEVmGl5P0w$<8mWNJ}{QcEwfC&M!+wxU>WpihrjmL(%X>kXBUI zIXMkE6rrAwFc%!}zhr`f(6w3PBt~O6=y3Qd`BzDB#4`HYqCzPAjV`Hw<%Q1D{iH48 zD1p-=vPD{Vn5oB~A0-T~A@O)oS|7@kTCwNJ&%(;Er4wRgab~?0KbWQETBVAS2Q1WNxALqvk55JDq=5`D7FK#`PnUtXPz2kY7AB z8DFmP?j@O3?POh?x4HlLba?X6e|(zvk55mg{rmC$ogzOy(Y4LrBb-chGQ)!OM7K8U z(fz28t;d=EzsiON%}lgI5evgAQ#WqGmM_DdS{_%Ox^o)Nv`n0NT%n@$DuXW_>iuEQ z|9{t|`~0^K_Wz|9lfCIW);+Cra_ZmuOKM3}&OW#RcWrahDt)oltxYPm8QCSO&7UUd z2NTre(;l}eIK%5?COYCQ@Bcsc55VDM-8zX*h%+!f(FHPytXK$h$BXc7e9~Hj)2Txz z2Eoij(zggvguqY)Bn5`0Z;|1i;Ru9#Mo^qS_-G`>p};7LLxIs0hXP~Lx8houk5Dl} z_>xDcBz-HM7br9qA>KER;z`;!p5ld}(n@B#J|U$ziz)5SkK}i$YVwa#3hnSS|`p56eZN8DY67G&3w0g=U52 zqR?#Exci?CI49gn^u`BsIhc#!JTf{(OXOi|KE7)aq&N#WNO2a1ap(hzvj~ZM{CU*H z;Z~Sp2?r^~QVvq|WjIa`KI9o3qzKD7ND)>bZqGlDcV@U19`7s;QuLJ^r0A=VvL_#J zH3uoe*&L(@YY?~BpT|2V+zO9(E(a<4S`Je5bx7HZk9QsiDZ+XVQiSu#6oQJ;ch_IZha%PF`;H_M)w5BU*|y5f_ccDWV?k8f%DPrAQJ1j*)^WqWAy!Pf>OW z3?vj(HIwUx;n`zdF>O~ARJEe*ou1$wqM#(XswM4u&|4{_-Fsd6$S@{8pnts^y{I3? zdkAm9dk|OIb9JRXN)NJn=(bK$_0~J(iE|S62HYDIY;`KMC@3I9{r~cBxEPKFj4|sX zc#pg6#2?3xSXZAoB5yo#wdWt?<6de352)eowhB*@=$p^cWP0()iCI_| zwf)2*l2Kj` zGHzu?ajJ_PHJHP=kSAfJD$Ey`@;}RivM1peXuMyEn(EppYzq&+G~@jad>w6x!de*h zWE6Ih_9c-oW{WvushB6GipgRM)Pay>gOfG+cOCy-o<7Kl ztU4L#3vk3q_&+Pm{eOQFN8a2{L;hi3YBy?0vM{wcwa>}cIhjkvKk~>#`~_$Y>JL-H zmMscvOtl$-&?J1iI6Nlx7LG9kT8rt|7LHpB=^++mhZ{ZP~R%U@u*)+#9u1sVr)}6$WD}Rt{4`E7r+|ve_3We z>O$wp9Hf|!9I4G`K)FrYqWndu$3Lz4|18ZIl;z~PHz>5!RM>td>{^MxQ*q|aMotxf zYN1$yGSGQ=@{{3+F%#RfU`slS*z&l*&_8$v%I45N|H2yzrfbBrxQ09pi`*-f#9)_)BSIfWBKPld!7y8S$K~E}oY)WKEolt;H|0maHx7 z$hxu~-Va?L>tNGyb$kKqTVE6}VKw*5vXM;2D%A|x1XgP+V=_g?1>O%1&o!yCsZ2v3 z$`-F+9q6m*nS^8?c}H8m`s-$G869`Z;Q2y zoyF@|srUx$|EA2A?PZSaAUk5MU>Dh0bd_CXSJ_Q=$C=+(p>miUE=S0ba+Dk`$H-z?BFD;ca=biEPLQYb z`$1*7tdNx_-wGIZw`)3*%&D-i7~yd{Mp>zDxd9yj6amd|kdF z-wfZ7|Bl=*56E}rdw5s=2l7L_FaKk_ZT{2nee++)gYrxHmHZm-(EnB*!h7@&<4yWU zF&?w^FU9R+`n!YHqc#T3W5FQ?1rk8!MgO z;cm6%_qAK?tsJX^)sf!KZgsJ`THWY9?EDUPE7!`i@~r}^&?>U}SbeR2R)2cGx-|&? zc!pR*tzp)1dXu^}${KBrfrp+F_~;pDjkiv-CRnFirB<0W(JHqptV(N=HQAbCO|_<3 z)2$iSOly`k+nR%G^;B!Fn2vLD8odQw%(52XT-|6bv=-res7M@_Ld*`|h295ms9uV1 z_r79|wahvLXZU<;xtMFMu+Fs3vR2~U?k|3|R#~g9v#mAoTy&0gF0MFli3QeLT-z3l zh1NRjJoqy@UktJ?ur}cB^cUg{`WIOjTbGDWaK#^HU20usU2a{0>&I}h)VflfA(o3} z)>YQk)-~d0>sqW8tio025U%p0tm~}n;bY(iygT7{>qfjK|0XfU+GyP@is7l~7O_&S z5@%VrTDMuZTX$HStUIl{tj*Tl);-p})_w3{l(4F-E!I|Ro3-8AVLbq!M!Rs=wcC2g zdf0jd{*CrnkKwNK33$kP3O;h4hL@aYt>>)gtrx5pt(UBqtykdv=rwDf^}6+j^``X} zeCWJm?Y9nC?^^G{E7Aw>sPmEaF}x#vYJFyXZhc`Lw7#^yvc9&yvA(qqS>IWQt?#WP z)=}#R>qqM+>u2j1>sRYH>zMVs^@nxbI-!J;%2G<%%28Um%2U2FDuA!0YO1=bp=zpH zsZ*FGzG|Qvs#8=Wm8=@8CMu>fSfjY?M;DpR#p z?cfb2TeVj?s)OpNI;qa8i|VSnsqU%=ygBt!y;ZKtQ~9a@o}G$RAJtd&Q~lKdHBb#w zgVhi<6rO^H!{gIPHA;)igC- z%}_JdEH#_nSghu$`Dy`tMd1y_|9n5OI!mootJG?K53xE|tySyPdGIH7K70{vfH$Ix z;8%*gU0kLvS68SjL$4RtsB6`A>Uwp9x>4PvHp1`JE$~@%o4Q@yp*E>I;e~3mx?A0& z?p61x`{9wQN^MbF)i$+V?NAS>oobhQQ0-O^sfX1g>QS{vJ*FO4PpBu=Q);hzT0H{~ zR?n&D)eGuH^%8tpy#hZ-uc>|Nb@hgN6P~T!hF7Hh@Qd^=JY2o6K2RURL(<3U6ZNV3 zOnt7tPzTkQ>MQlN`bK@L4yo_pJ?VS+!8)pbP(P}l)X(Y{cvJdK9aF!nKh$w`!WOo) zEnC^P?bzCOZO`^?V+VGUUCpj;*RX5awd~q>2SAA!YuB~w+4b!PVw@N+zOfsM2k{Po z)A0NMFW{T0vE9Uu*(rA1PPLoD<5n}fx!uBUX}7XZwOiY5>~uTB&a~Uw?d&W&+iq{? z*d6SSb|<^D-38vcy4l_B9(GT=m)+aWwe#SutH3U_i|jsjU%Q{(-yUEOvPLsYq4VOQFd?8){Ndn)`zO}A&* zGwoUSYe#L&(e$C!zziz)_ziGc^ zziq!`@3#-w@7nL#@7o{PAKD+;AKRbUpW2_^zc9oO+3|D<;gr@B)EKDTN) zwc$Ulu2avc&t51_`WJ9wPKpzEQk|wwn$yf_?zC`PI<4Smt+ms}Np~`wOsB2W&dGAJ zo%T+S)4}QJbaFa7U7W5?H>bPP!|Cbta(X+tPM(wR6gY)Wk<-WN>-2N_I|H17&LC&7 zGsGF{40DD%Bb<@WC}*@Y#wm76oUzV0XS{QoGr>9CDRs)6iB7pw;Z!=4oXO4?<{Z@I*Xje&Jt&-v&=ceS?;WG&UDUlRywQ14dO;;wR5(! z#yQ71*IDbVbIxWXpNu5<$fyqg5;fr;qc(hF)P-M+ z`tXU-5dJV4!5>EB&=*Du{9vTQ2SytFUo?m3ipvJ)=S_$WEnh%EQgnnGvOg*CA@>IhG&p9@CtG+Jc6u)N09aK266#Lz%GOrkc;5~ zOJ}~{W!)3pVUw3z4~eWjDA)> zr=Qm^=oj@%`epr!epSDw_vzR58~RQCmVR5mqxVPNUEU}EF67-sf1*ESPcHi4zkNT1 zz7meYXTp#F_RFA;>l3bUrE9q=^qZjn_jI?^ErVB^a<>8=Z6?9H%@lWPd7*!sh3+DEvAg8ozA{2j7H5Y(CeDSIiFNLI@Nag$dx5*bz0keLz1Y3Pz0|$T zz1+RRz0$oZ^m%cud!2i|dxLwUdy~7-y*c!OaT`2P+yNgHcmB)QMdCkvZR~=#jNO0w zrP$*>=05H|;Xdg;j4l@@ji^yt-aJc>inQHG~(yMqaYl*lPlhfGJ)ao&lSB zX9z7s^;&yvymT+a%k*aa*UV&HW6?uKUzFt4Czc;`e=ne7)dqcdT-Y{>tH^Lj~jq*l&W4vOo#2f34 z^TvCpc@wBfPo9)f<=6dtI`Q8F=p|{9e z>@D$@dds{syye~s?@aG3Z>6`&TkW0gt?|zB&h^%M>%8;4^%%&%z}w(m=w0Mp>|Nqr z>Rskt?p@(s>0RYr?Oo$ti=qDOy&Jq6y_>v^-p$@E-mTtk-tFEU-X`x(?=EjMCIjyA z?)C2T?)MU2mAA#)>TUD3dpo=byq(@I??Fr#Jmfv>J>os;?eQM-9`~N`p7fsb_Igiy z&v?&z&w0;#FL*C{FL^I}uXwL|uX+2t*S$BqH@&yKx4n0~{oVoZUGF{beeVPBL+>N+ zWA791Q|~kHbMFi9ASMp#V)~%IXdoJ5BB7B;7LC0xy|28ly>Gm4y+iQtc-Z^iJK`Pn zejrb6-p}4I-ml(o-ZAfY?+@>|cf!Zp>*1?S`L^%)+IM}=_kH6Bev)6!ukP3IYx=eP z+I}6su3yiu?>F!p`ltAf{A9ne-^7pkDSq5f^_%)>elx$h-@f5d-OOc14_r|9kP@gMUa_n+{e z^q&%eNb>jkPy5gK&-%~#&-*XF@Jj_uuf}^xyK|_TLeA ziOu2>@hIMcxlL>rJH!LxNq@h8z<<|&&wtUf~!awML>3`*a z?SJEc>mTyJ^AG#q`$znv{ty0-{!jkT{x9%o_?v&s|K0z?KklC}!boEoWo+XZZCv9S z-xw2^BvTFEZfd}zU@dqQtOMUS_23Ps0sP;b68gL$pExmizKO#NPE+{EX$GG-E#M=k zl{wY4hF6<(c(lnhZQ&U)%VfhtVh%jpbTpkzXVb-Wh3A{@_<1H44#ZHW&UL;a6qjZJ1TwEqLVPx_)c+{IJu7{7F z>Ec>(jkq1Z3%D8!O83G~&n$TCA-_H3uV;Z-Xcn2pW{FuEdG1+Z&NOG4m1dP$ZO%4p z%sKGcvljk(&V%Qk^Wn8;gSpULWG*(Bm`lxN=5lj|xzb!^t~S@0YvIl3dUJ!h(cEM< znw#M(=vH`Uyd54JH<7m@vCC{Wcbj|QtLQ#+ze$)Xv&C#R+st;e!#rSinqBZ?xf?z; zA2yGeN6jAd7$zotu@3V`=Zp2?0`s^yTbwQqnkU3+@wj=?JSB3?Uh_0O6FmzLna{&V z=8N!>`7-=*lBc45=5_N1yl}o{-Zt-;{pNsq*SrU>n;)1D%}3^A^NIP?d}cm3UzmgD zOY@ca+I(ZaHHXZ1=CJwR95F}D59UYnllj^FVtzHhnPcX6^M^TZP6Q&5ffcC04xB&- zZr}xeV1gh>3aSOwgBn52pjJ>js1wu;>IL9Nx|e`N-#B;7EBLj1T%wK!R%m8=-qFAupn3%ED9C}OM<1rvfzwh zd9WflGdL?)8LSFc2WJOsf^&j%gSElB;JjdcaDH$>upziGxG1*@`yfgJ9%pkrkE)?%#?(GA-TlGWno_HsCE!Y>l9=s8}8N3y|9lR6l z4-N$H2JZ#$2Ok6<{@te`{Cph@zJyP&ui@3}+u%^}UFfCjNN^NBxqb|O3VsfL34RTJ z3yuZ92Y&>|gA++2NhVoID#=cAl5~=r3)lI4g zFUSp&8YZ2R)F>%Asc}-1q*zi)QamX&scBMLQnRGyNiB5l#CesAD&5?fW##i`&vJ8T zPo6!ia=OW#H+9zJvhsxs@KGV_!dX+>Wff)z`Q=mRl`ot*X-4G|lV34=L0Nfu<*Ws| zpu7wRfXtg+wm=t#ht-AQPE+`2G`BFysE{+#eZm+)pT8Zn&tI`A&+MEmH`J_ryYIxZ zc|qU5;#&Rs>wa8=e$j#ZMF;M;VCsyD%Ao&Wk@di^B6?t$r9BYY=)t^eaJWkq&YG-; zgoks6Oqo4zR<$8h7Qzhk7S5bews3(vgtG{S%%4#*Ak9k+92lrHUff0yWZUD`+6(Q&#&$LZ2J+Mge3L8L{j zxluWCqjKa%>2ss>xluWCqx88^{&`Wpc~SbjDF3{u-g!~_yeR*?D1CmEPkt0HKZ=(h z#mkTCn;+FTKPqp2RNjIp--0N=g6KE}(Qyi*@)ktt3!?HCM)oR<@-K|?D~$3hjLKIS z#V?BTDT?Y>6s0SQ>{ArwSH#E3ZpX*ZZpZPn+j0Etb{s#u-N|^IUv@jrFS{M*mz@=* z&x+D#Md`Dm^jT5*tSEg}lrB3;7xlyJ>?mD!lrB3;mmQ_cj`Gcp(zlP&w~z8|AH{3W z_RDV1_Rnq~#m`~8XXixuMEyKFC(17;$}cB6PEM3xPMAKcknIEw^Mi)Rfrja!VR~qo z9vY^HM(Np3S%qvTXq2AqgzYFj+X>rIdbSrX#bJG+QT}W%Y)ARCy|5kS&-TK0lt0@m ztB~yljq>O7AKOv>Y)5QI`Lq493Ui|TbE5p&j@TdN&-TN1lt0@K+fn`6%UgsztU*B-?kMijf<lQwb^3RLX^K~n$FfTf8UX-4%SJ)q==j#@>qxAVv`uwO|d_Bu5%#YIZ zbqw24`uwO~`BD0UD1AYcz97oKAWB~lmA@cLUl66|>sVGHU&o+PdcK}vJ4(;jHEc)e z`MQSfDF31;f4-h&74r2A8s%FQr7Mc^Eeg|R=X1Y-hWSFn>i{$?KQz1^Lc{AXG`xO5 z!|Mn1PbBWQHIPT_SN+flquVZ7WD=HUO8}g5>QGegk{WGUboxea2%bYPAcMZ9jv*%UJ(s?ZT zECnoup#+8DodNGEV(G)um!%&|f0h9(16c;K3}zX^GL&T)%W#$vEF)P)v5aOJ!&1yr z!ZJ1#J2!Jqxt&LU^65_j{VAkBMf9f+{pm}8`q7{M^k)G58AyKy(VxNe=l`(xCQx=& zW&ZX(_tw2NWMs-jCgK1jA>QFs28NKK>KNt_k}%0osZ^3mDybq>1qot|v>--6L_kDD z1Vltd8xbQYpwftnh)klQVu^s7R*cFJhWeiOx8Hl~7Si2xul4`0{=W4k>pputdwlo1 z_c?o?I>#6m8;&(BF&t-DYFK7iZaCg>g5gBNNuch?8QrZL+q-&lEn&IY;_I^(Uof`} zESOu`w7v?9lIGHo)`1mRLu+Ntm0KCsfNe@I*Ctm(TP3`<&2wlAIVibeV^|Xu8|UX% z>xv<(t5RP*aCKNQH`T1M74w>bIJtJ^mu_EM+wK{(`--`JU~yS2%^I?H;G&`HR&Q); z+tAUnVP$)3u0z$!btwOu4)V-x2n*2-EnS`6JsUf_*0kj|C^*xG{B?$9Zl{*Hor9LS zouLdvI;)n{8$9<^*}g;zDj$ChT})rv&GGO#zI2MbEeB*O&bIlII(iRQY1b)A3uYVpv+?@9DW57E7K^SXy!Gt0@K3^N&4# z?D@x@f9%(VB~`xI=;a7YE8Je5u*Aac|MVuCI!&uZnYmek;!L`n&!r&hh-i5;k9)@9pom;6>MOMZXm< zx}GcgEqT#z$&0S{ihgTebp2O!{a5r`^`h&+qTjL?=PUn0liz|h1$}`#EG3)#R;(%L z4gABBvMJ~f++k_hlvg|B4ok$Qphs|f`hE-66!b))$#21${MM@}=nK?m$hXgWkgJ*L!)I3+fmALwTFMJk3FWajWOo z2mOWHuMheQw_hLh7q@uoM@-K@=q=n{{-CdLd-=mHHEz#8JgVas&#w=+)VTfnpuceY z^+A8(_UnV*Dl`Xuh3VxF`U$s}Kj`gz<^n zZ)L*x#2w_eIgC%-L2jGF_{8n$hw;d*qNg9mA8s#S7;m_}d|`ay_UpqVF>V$8`tT?W zw_hLDAGrPcu>Qd9*Dv&bSm@V>M`YYe`t@Nwg4?eTkH&EO_2JQ2p*cJn!}NX#kH&C& zKZHkPxV<03dW2g<&%fF859<>AJ^!#i!R`5n^$BjzKRhzyR?_ngkH~O)zKLI#c)p3Q zh{7L|3RKcMc_1L|Jg zL*&j1i}tey7VY(Cm2XgUXN3pTn+F1Oo5O?Yvvpa+*_GRv?5Y_}&C9aAcKe$>Q*58H zbjcCJSGR3k&)vw1j_w&P9X<7HXK+bJTX%PEt?qp5&d{B2cWbUC+()hmMr$xu2BS^J zkhZFO-&G-GbuiWhqdgdFgRw3c9l=;1j19r)3`SQl&IrcFU~~tgCm6lKI5QY$1!Ge% zHV5Nu88t0-54yt8YFKG#GpsVKHmotU8`c`u89EH>4I2!dhAzVyhK+`9Lyw`?aHiob z!zROK!`Yy^vAbIfwX0@ybD!0dIrg;8nWd+#$+YUX4znk->a-R7R%Q8}wnAJZwu@`U zbz+BTSFGXJ&TlQhb^JQ`_0;Mn@3fx!GfqPjo5W?hE50i{bd8(sZmxB6otqtQb`J@u ziNmVwr>z*|S~JMiKFGCpkZau_SH~b%Po{^GQtD(uSf5~OoMCF6fT{6@squ~}eStZ% zPNkc1T074?x?Ah#YedMVTU>0z=MM}VoI?km3R(Oh%iXOFzN1Hs2H(`fTBm(IEcNp> zP_bp_H$xt-fQ1&au#)9M-CX0xo?qL__KuDg?EJ-%%KjhDVFO!$xOg(dm}~A?gHa!L z1cS{s1ufk2st+5AvXv`UA9f1y8{Rx9{h`fey+PQpfsI66U8$_^D&pDT8;e+ZI0W8p zG2dOzXL!{{qs0zS1&UaQ4QxBwWs5+qZ8u^LuiA06u){$1u)|^fVU@-T+mIIfu)!5L zthxe+RaBdf4NQfXJBepnBwV$ZiIYcMx)rUP!*~+~aDp|4~ zuC+~11?qVVHXe_Gqs=eug~~Sg(zp@N9GjyGtCZ;&a~@M^fUt3j-|%AwH^9JyN{e5v za-DWqi9T}BCMzBd$Am{VO1@mq`eVxZW{;7;E+)8csXg$)!UH|9#I6V%va$`XMWY(& zI135ew6c}suxC3U;#K>%MB?!vEob|-c175_#TJ@%rpXS^4hdOSX^OC~i{J2NgPUUD zDXqn?G=(;Ri9T}B9xxsaz6~sEm}s%qX)_p0eb^7i#)C_6JQ!ZJ8*F|j7)}KBCzi`M zylPLFfT1T=NhnV{i5hl@Wh*z(uz~Gj{F#-A)>2NfK0Fo0Z+Oe#8n;xXUEfl!af3fT z<$?x(f{L|H4^fqHrL$Ywa5MdpG7qs=wXJX8(7wU^M&MlE(%stI5!}pZt5D6jBz){{CQ%+znKJ^95P zUiI+T!rH+QUoDxvzP-|9;nA>N(>}Nw?N!yNZ!Z@-+rE~#4gMHe){2PMhlj~{vLqqF zs)xzux6Wd#_@!A`M^ryww(t&6AD%PIR_;r`#^$M7d+@BlvWj4}!=cjJBY{RP_ zNh@G*O0nsL9M7l~Ru(!IOQg|RX_xT)8o%M4gWILEx?MWU?NX-)-9#Tb=vg-&4gR=W z$(M^=-&xK#+bLo1BDk)ntl7@M#d3`Th3De34X#C_wIQoH;)JK=vX$cu>8_Ihs>kR= z8dkN8CeN_+ASr9tT6?~3357@O*j(Y6ys=;;q_@&S;rTm$!+Qs}P;Ye$^;TL)59*0N za?rDSJR1CQy{r{!s?*H{e)Zx00voGUa26O|b(dj&n+%&l{pND{hF9Hd5HNIeRjF9w z5;fd;$X0H*VFR}z_=nw`aKFp*bKe&T_qn*kbJ{|<-^~}p)-0yheV8G<=toP6{ye|v zM@)+TT)*f?O^SZhr0CDpi(!j2U-bLgCg1XI^5+~)zV+SY_nmpaugr(%5M&0z8~gXzxjMny0}ShfuBtx3%lZJr`T)cF0K@tK!}7k9{vb_PzMn_u^we78?7p(Ad`su^$hO!*Qy7?8ii7KPDRcG11tM ziN?MsANw)U*pG?EeoQp>r(_tRtFcaD9(Ire?#*!P!X z-&c-(KRNb&*y*?AX`Wv9GIR zKQ|NmI=->2Oa1&z?B`};KcXG`x<2-!-m#yjiT#Lo>_@y~KUWj`xtiFIcE^6SJNBd9 zu^;V@{b+aWN4sM`PZRrjn%LLB9kHLU ziT!*{>_@$0KW7t%^*-_a`mm3cZ}hpe(dW=cpVJ!4bD5tJG$1i)GTQ0Y0193W&QdVDTES}L33AkJ9nftClQosCV1%@ zY&D1R#!2>wmaeWA-sf1qVr5JEsNVF^z3CI$c|W7wUSdfvZqF=P)0sW4ef9d5%+i+L z+GQcB%;GienT7locejUZ=Fe$R{ym)=I=hE@j&jtIqb&87VF>s1gTvF5gC~}4t38rM zFW+8{@JMBM$kY{g$%U-s3cuvSQgX##^3BG?&ygp7cp&k^3yB{hNc`|Z;)e+mKVP2s zp@PKE|0cd!oA|ll#5ZvhKNp<%Ip)MSuMAKdg}W;fW*&Q6cg3#ffhQCw^W%@k0uUpIcA-utE|RG=;Cw}-L@$>MBAA(5yTzuk( zAre0ypZKAO#Lqt`zFD34x#+|^12Z^6&PyFyf;^*2EKZKC@`SxUfl5LT4Si!i@t~TY6UD?*r z(^A{!s^M$`G8Wh))zEILVVzV%hg3rtZwnTtH}s}AwbynA{gBzXrZa>rEM~i^vhSWV(@Ca}+G#-H4rboDw>$E*^6^Ct1* zR*An6lK3&8#E*L=e!MF2<6em$vr7EUo5YV>CH@9Z;>WHMf3qa<<3x$SVUhUpn8e?} zNc;_q#NQZ6{FqSUZ;m8>Tqp^*N@ysrw;vly{Mb<9$7~XR!zb}$U5UTxllbwj#NYTy z{FqnbZ~i2H+$-@nVG=+7l=zz+iNE=g_%WTt-vCMcxK857bP|6CH_WA;*VPsKQ@&38%K#BGfVt2Y~qh$6Mqbw__4FZ-$Y9M_*vp_ z5G8(WEb%v1lCVrGBw_qvx?KAkLWv*eO8iZs#E*3){>D(^$GZ}Lb13m+UWp%DYI1pO za(Qg>nYPJi+NSbMyP&yF%OQK-Z7VX&IxWhu=;=S}GPC+Z$)efn43j;7#nu|l{0~D@ zV%BM;hJ}r3TdZNr9>oKm*6h*Z2|Pfu4PPzX%zLqU9DM4eK(W-?fI`R0LP(=G~>DG1=e<(H9o6)@jPYl4I6U&_J!2dn|zI#|->2 z>NG828K%CG`o}fGJE80zLJySfL#_48juGCv6}Puy**$Dv@oLH1rR6yb_wF9M%4?{# zO8M#$=BNtXv)WyWd%3eKH;vPbGmeUCn zrk|TDgbAQn2!fBP`zYRA)w2xF^Xl0drtXU{-QN{zlPlCFSENm@NSj=dHn}2gaz)zY zOUNc)LN@slvdNc@O}=Do@+D)FE6yfYoK3Dcn_O`=`FYwVUphAV(y_^xj!nK)Z1Qup zO|CebTyZwJ;%ssS+2jhc$zQo_@+D-GE4n6MA~*TcxXBe$liyM_g=b*wBWXgy4Cfy6 zVM4+k&M)S}5*&9pznBk8aNKHdUUQJ*!wl*8GeX?q9Axb0AY(rV8GC=mehxAY3YPfl zH%#>#W;mZ2hXqA34hsrQEhsR_!yD?NK}u+CDH#nLoO zLrB%E^-4F`EM>*Bv=uL;E^A0%5tV}?hCI4g)hY{2<gc`>v}?Ti&HD@6wicY0JB`-=lsVX}%*xlwY?g*lW?4g- z6;WlDO=VuWp>w^;EQ^)dES`s1Lmt6qc_^Ocp?Dz=SwkL*s61p-9vgbsZ&V(#SRQ8a zJj@#M2sX<@@hlI;3wg*I@=!$OVYbk|zO#_`r+RsRf}an!6TB=Iv`OBzN#0LY=UtoR zU7O@xn-sz_vRDYqNX&da(xd#>43$U*d-o6%Mz;@DQQZ+nAyc-XR#2LotUAX1>gNI_^I=PzsOwh z)8_?$p}F9v&bv^bBAgFJ<&-yFIKTGsziLMfjw)vxI7=xFPi zkuOwi#fq&otfjlBZDV_PI2k^CMN8|taJWaBueFn>3PB&XcJd5E)}c}mg_&{;3AL1c z1meA-Z6j;MaLte|Qtk`~)`y+Z+t%IF?y2FTJ!l$TH&QN62dwT0T6lOjXXUE$9w^a> z-VL;1cWdXy5Yv@am@@OTo9kOFk&d=iJq@yLw5dUnn!}AQ$5F!kYG2*Ev27)PxyR~4)?VT8aDZ1%{cKEl2*6RBFt_rq(~vcrd80Y>M`*0D z-b127JLJQ954THP(K1KDmTxKediv{e=7Y*Tf$S>O(; zH2Na+uPi26+@QE9k&q9a&a>EnZymY1m-E|g>+LNG8i-<4JVFz3sn?QAt7MSk4YVsk zRjtY;E}Sg2E22p$%l4HaZ^B$qsZh0;lJKg?kc(BHgr&1nX{^`y57)MU2klwu77H)u7S3aHMCV%bz9j<8%=aN)-upmizw;g*p@jbDyg+}1aTvuB+m-;n6rG)KeqWf)d*x?|$*D>sn5bkXe z7PN%V;iNXN-Gn#DYFX&4Z|PZ6$1z%-oNVZ+Yg^ydvzhGb%MZQ^!NyZMxAB0gz#Y^2 zb`l9?^2Jx)7hic_eC7RCHXnBTxOwqKp)aBezDV-F?o}*?XXluq4y+=TelhI+6^p(k z@W0}P+vA02kpz4E@Q9;W^hK$^`j0y-*8ElfVlixO^X7P1?D9^c^5f00`mT=N@N!*4 z+ZnwrVLddIzgW`346D^cy}cS3))l-l(C%l`ZFM%30b^6K0&80~ZtOg(w@V2Z=FDo4 zTT_U8&90Z1O>FKnC-~T`>OM1r&x+2THNn=~wXz&Lh>QO@kYd5*pb#Fb&~!mY3qDo~ z;khsIilHbh_IkU9g(9rzP{D?lT~?-wW1u);^RZZHTF}th)wUt5V^z||unSRaTsW(K zl`RfduIStpLddsgV|&YLZ;D3tZRGZPG=`&2{FR6>W*fsk3+^!H8p9DN{whQmqcg+K zFYXXNGaQBEuRw%8p5isA0j?Zo$=V!PRZS)oa1kX(60W_{4vw=0dWj#Zyn|E}BlX=VD{^<&@)Uxhtt=!1e*^36cX2r(N zb;zhYhpcQ_%?k=4DA+4^I~vB}RRe`vx8{p}OsD8a;)=q5Yz<)M!CxBiz}qOtlX$M6Jk!w+Df>h$8dFY zu5NE_>0st1tf8#a$i=F_3sM}~ZOv`w7KY@kMQkNm)h6Z~=pYNNbdWjJLAs`@+W40{ zNI?S~WX_R;+C*`^1+WK&ZP8p|o3)~_%@Gu~*+x`X)S^`?heLI-m0nd{%vn_zoC9^i z5$a-*s_KHXQWp!VsteA+bx~Ze3wEyywsKvt4%EeBg#N=es4f<*QWqSdF090=>k<}x zWoc#gRaF<3X4OJUpx2Fys_Vw8&-82@)fJvwzH!)^&dzl$D>~0aIabn>S|o4HK$udz`H~-EE%^bsk{@O* z`9ZjnA099H;qj6m7BBf>@sb}FFZp5dk{^OC`2o6;ABHXYLAsJ33NQJg@RA=2FZrSH zQn5IcRo{xXj?S|N3hyVIOMWV{JsnwF7)-9EHrxwOKVTe%J3B%!93W+j?7Iz;!>Z6^z+NbrePnf?4+IvKOsG(? zvC3Z+a{sD|7MrT#G!NKI`6|0I+3F8Z4UML&gH^i#$~e`BENr;UsL=0MR;9T)u#f})>3F8aaJqQ6m4Y$~vv z;BSFzr4&vgpR2>JM*9!eJGL#xCC&8ENC5Nc3#{A;uezM5`GMd@MbJ>lpy zX!yTWjbMzFPSO_{Ez0;SXzm37@L@JA9#r7PId_!v1V7 z74ZefcfftK`@#pZ55Nbr55Y&Wzkqyg5dJ3nTll-|v+xhuKf=Fe{|f(}B~89A_;QL* zXy{QniXhxAw-+3p8x8l)O@vc&v*4WE9LRS7;k?{DxFELxCbKLB9G2*X7p14Y>`lE7t?xn|mMJn%fGu<+j0#a~H!)bDx0M+S#Jf-#&*iyS5o>`03)o!lc3Hc%$e6{xVRAk>` zgM643@+n5hm)Ia*VS{_tje>lC4UVrH4=2{qp7!lExL@7DkngF%g>?(znz}Wqi0^b2 zQW0NRVyyFxrQP7D2GZdROUP2g_y$to%Suz=I~tGyzO94|G#tWrlOn#1M2+}D(5>*c zhHt~W8)zB6>_eOIZ6Df%@9?~qiugv(rc{RSzdQkdJLGBj!jP9CUt}TlwITf}KA=97 z8rgSP;LxFzhcB>D9{UCh95-|vI)M*Er$(ZKQhc{8#aEK#GcPqS#n+xw7J9*@pSb$7 zH-7P}U%%t-dw=lYBac1ttG;LdwByfzdH%0E|Mrg;UVQ20U9Y_Q+UxyMI#ZL))z;NF z3>i9X_=u6a?Y_sJdyN`BX6(4V$4{6zY4Vh}z5N~U+;_kIr%pd$#=H0fvomMSKJef} z<{mnKVe;-phaYj|;$xSbc+x4StysBg?S`&RTT)1}<=%gC|JweZ{>}Yc_!{)NsS8tA zq&~x!vlt_kt^tjiq%uv(kxNs1vi9pp?a88U17BmSAvA@)wR%OV^t!f<8&bp9w`^QT zm}(^wlFIQ_`Fg$$l_AGHQ}nT2vmd>0=A}=`jEXNP#fW$j@e(w{q94`M)1X<*3=$+NvJn9mcIIFYTS_D(O2)_%I}iW{*=OW z{{GVW3#IdyNavpihUnv_|D(%H|3_Dw{*S(5`ak-r>Hp|o)9C-`R@48{ zw@v>?KQsLw{o3?@^c&Ov(Qi%vN53=uAN}6+fAoy$|L9rM|Iu@%|D!*c{*V4>`ak-U z>Hp}@rvIbAnEsFcX8J#R!SsLhqUrzWCDZ?WPH$djT{P4j0iHO-&7 z+%$jY6Q=nySDWU~eA+aB=Ch{xGv6@HpV@AjKXZp^{>+`G`7_@#&7b+UY5vUJruj49 zH_e~suNh*Rzh*Df{55Br=C66LY5tmXO!L>g&oqC{7SsGS?>Eg~v(+?z%|)j9Yc4j; zpRF^^pKUPBpB-kJKRd!Se|Ds4{_Jk1`Lp)z%~9FCO!H^QnC8!pGtHmf+cbZ6ylMXI zMAQ7)l4<^IqiO!^Of>)Q*;#y_aa4A;eW5Wshc7hlojr(eG)~DL%y${znO(q_84KBk zHaldGve_Yfw9O9LV{CTFF1Fbrd#ue4*`+o+WS80OkX>%GL-u%^9kM6b?2tXtW{2#l zHale3*zAzqXtP7M+h&JskIe$vUYiB7XW1-}J={govvgg_?kUigKf$WED7RY`$ zwJ)0J8WiIa%$xY#%I{nJ9^m)5`#*`jkKYb{FW{F8{t>z|VkU`LOUPtyjAppIY|fTD z6)o~>PQYBjuY(`+OmvC=&Uf<)%p3WAmFw<6H%HO-eaI7AKH5HxoKuhGJ71i${ieTZf`U|VIj{{H^H$<``1SM}lkPPBdRuHd#@Q|ag%W5U(7(e_CP z>Y7JM+ge$%z2tjuRl3pj6Jx*ndcyw_UGL#j6rPU0H2NjGk_`Vqbr%umnf|^>xl}5< z4gddD|0WF3*@-#%v$^u zeq+Xv+8ci4L>gn6p~l`d;e-ii{zpIZ85Fh;^GNwesv8NvdGK${ITP-m@bH)^W2W10 z)S6M7%Jy+H$IW}Q-)35?{Eazv%$iZ>j=IpyG3SrD6iQ0+St+_b2#KT z;pos-mX_L|_9(|K_gT5!%k5IGYdIgQZz$i`yL2u6U5;BZmy#E9Vrh=rNx2^!_3Kg3 zaWj1(zbUxQ@72*ci$8kg=y9XpK6=LJ*`pVXK63Q((Wj4IJNoQU*3lnKrAA-O?@E5x z@%xh1XY}o(?;HKl=%=v#k>4)r!kw*^1siP^ewII}ROGU3FW0l$4DBTOGa0P>%56cK z$W{3_SiVfQ%D=K)mCZ_fl;w=xd!r0l`@T_z%55weGCBGWWNE^R2_5zucg47C?Kfd7 zwd6OB_BWX+|Ex}yhT;)c>GS`NF8D9Tb-Atnsm|rPo2)Xf{^|Fhj1j9x`A3bGTDh$r zV_7kKf1IQCtV*N0J<9D;Zkuvi)n>Vk%4WGu%k?pxIbjCv`WAj;zDudz?DqivRlfn(gQ8+!w^-z~%=ZM)vC!$))I*!#ymY(IQ&w)`ve4!X$7Hf}iA+0V;n z>yt|Ps^$&LyId}rUaoPQ@IRN|h5T#|wE6YXaeuTD4F0$GxWVrK$TgvF;QDdYruyHw zd#hd5cDv@S{L0t-cjA_>`Db(Qsj1Z7+^z0S>+F3JzqS0%=C_UCRkXw|%m#kr_)X<^ zAiu-;oy2b~zq9#m<9F3Rr~QA!XKy5D@B8^Z!S6YKFCn#c{C4Lz9ye08H*z$g57XlP zhjGWx96xV7H5e%AiwJ}9^M|HQQZ`9JkDJxTqwR+x>Q^+S1%#`TcRr8Y0x z95jC9q;r1in>ijH?>VKvy-|9cKasfwbLPZ(6BkcBUG}vT&z`t# zqVkx?c%OLN#Cs<`IPupLpPRUIQhL(RRBF=rNz*4CJSmy9c+yFeR!-`fv}Mx8ldhR` z%OpnrqzCyuG3hx=sr+x!OTjjoHkyp4n9RI0nS3V~Cohf$aZJt+4zYTC-b@fzUT@IiB7MCEVGd4=4>GM?jr5sx zsk15V4B0NC1|h%m`upndkl$~k@71nM59f+Z|L<#u*5A$*xAs3#+m$^P+m`5-`o8FS zY_CS!vs;vMRL&#yWd9SXi=&4L{Y7+3w4?SZQd!>rMD~NxUD%F}Zb>ynCP&M+S~>3R zf1-YTbOW~j{wM18jIJWi+oJpHH|DNX`VZ7R#EFPZ>Xqn$=+)c@v0WJ5oo%SyrYoM| z8UNc!Ymw5rF#1;R^!l?2d9eSPx+!}8{|*a@_9n&2(OhhMMR%niRmhPF`IqR&b#?X2 zx#nllJ$18lUD#gh@5?c=c>2UD)53Rm#?yIg{f|L~GXFqtG94?IPK}#b`{Gq?EMs<(Yado)n5DSS~DJSEAYhK~%FdFu$q&r7f|AxF7bHtt#y_g#> z+l|qSwqu1~J+?oa&1&jtpS0E7U!|7!DCDL}>+YzeeVpQOO|5E^`g-N+<3k8#zTK{l zV&a@2+jRUcFk8x6aHVYD>EBs1wI)xz8T8Ul`Td$vv{<&sxnj9&_u=^Kz^^|7bM|Ddh@IDyMsPFQ?{Mho|Nq;mGZW4wN#6waG65BO$v9(#vWT} z)70(QRF3F)Y`a@%bQ*0RdW8{OqgF_dsIR_<3S?iF%hUU9!&Zffeew8{N)#eKTD)14LfYPmO5+#PQS?|Os#j5oyJ zPwth}{Kk}({4?}Vjch-tq`AuCMAxB3)%q64OV_Qd$5!0EgWORnJII|%omO^duuzYY z0w$?`5%VtVh4FIH?!=pU&JW+qdW+l{fWgY&+!F(f_nxw?xg_#=8I?wW!`Fj(W1&I z&f}4Z=FwKqD5QqiL(OK|AoE@My}c6Kwrew-b}8$C67GnTEidA`8}Wzh$`>o)2Pph- z3s13=8@*HE=U|&I+b<|(@O!eqFCF}PsMAD+{yU+I%ohE_dn`)TZ^fPdt+zuIZJCJ(6qMuO*-cjFNZDSqz(JQk_=rJeI|XA_r}z%mO~9~-lS_@?cYg= zjhN|#@OTAg(z7cvbg z=o^(Q7s&mUO8C3wzJ-VKh8Fl zN6+DQUHTw$lzvR_RS9{ILXdT@*->&|S_yBJ`>INKv)r6L@c5^c-C@Q_=PDsbTS)YL z<;uBo?^%)GmAW#*9j8>fO2}-53}fyxS&h;oOvclbE8#~dd~Z@-sw*2RAu}u_dL8%E zx^jlDtgVz`qQdW}#4ngTovnnwOYVIM4=GQogiKP%kjj;_loF@7ydB=D@Bt|tFZceH z@ckA4?-loag%8x}Fu4b`K`i%}O8mugGoO2Y^UR&4VcF+Id;ji^r5eo|Ia;P?#A-}a$0XR=Z()k zu>6{N3+(^gOUwUjw=KVB?zQ%R`2}zOf7!h1|A&q{bZzE&0<-H87c^TvhJ<}x@I6>Ybi_BQkpya z?f1>yXg;bpK2~yzOWChoe#Nw!>3inyAk^FL(6!56IOKK8Ls^zzuJZ|_&v9=vRxmC#DDoVJ~}b=kZlnrO$9mK?csm$fxHTYFqUt*%)+^3DFAaQvxBS0lsQq8dam<1Lr*xdsVOR5Cp&sX8uKcI}mh0Ms zmp{}p#r{{NasDai54hZRuhJdbGKDZt37?^B4?gAmTWg4oA0ViR_`MG;5Bt#vXLH(cI50XXU|hZQmjZ*V=>>(`Q1^R<2{bk z!^=|dLtC7i`fzH!&hGYdcK1?FQeT$(RO%d^*Zm;pm#N5hU*i8o zsasNarY`2>?%k=YQ{PG5OYHA+diS%bpE2`%72W$+PUOAFI^>5@o-?~CRxv9%;%%pS z58y6mUG%PK1OM|;7w35kQE&8K&idLp-h-nbMvp~HqMvb&_f*dDKFf7~iFOkAADrgh z$Z6hmv?*P~Io|hkj(1FSNqSs*Qgms0pY*io%Jhu%44xL`)A{IzbSYhmK9_DxH%2$6 zXQ$^xpHCl>J|y}=dR}^7baT2XeO&a#^m5Mn-boX7MGvIA(`QAGaMt(i=n2mHzCZeT z`UB~IiJnYhPAO8RH%pHZt{ zrhgf|mi|k6XY_jd^>lwao#G9LRBGj1deF!jI>?+4vmz@k?6qQ@STC{~z@Hw6XNVic zZm~z~70(pU5;vt%i+4|L7Fo|?f3J9s_&)J^@fO8reMI`-5WgqhD?TRvQZZR+5T{Rk zRzA;}-PWmaUvWQie{rhCiKdCHR1XT@iS#!1UyAfL_TPx~IrgVTdLBDH z-#R6lAhM>zK1rM`(u$|}Mhz)tz7-AopUb1NJleNDVg{JLmuGCs048PDp=_)YN+@lNqu z;c8L#lz{{#NEX` z#688m6lat;n$}p99wUww$H{+halDAkkP9*ckr{~0zs}6v}7rbERp`Z zEsrI<&Hi{-Oa zJYGCO{wIp>k0*nxLTnXRs;%0HzbL&*K1eAg=~6k*kk3Z3TXD`({P)V|ec~3y ze821;5HA!jA?DWfrLuoqyiB}Yyh6N6{FHdL_-XMP@iXGJ;upl5MKlJj`W2PrcGGg(CTuul=+CL)2Yi!w+cL;@ia z2$4Wi-d~(5P7~2=_#eQvTQf66q!fEzL`u1~D3+`rGqV(55}QF{i7AQY%~9GgbFe}W z5$B5Y!(cPNj@ne=d>+y4v};CS*3QJ;$JV`AfL}+f0%c0$;;LV zty8kU7hg8oO5xO9wo-sd7d}WAM7rQRM3agsIeHD!JH%A`=V*ECv^=EcAuSJ=h{uWQ zg`9dJw_HBbD!G$ne~);Ic)Hbs_g{_lRO_N#oBY*BIrULaeUzh*$c5g4>qYu##lt!J z1t0ZGPW{4Lv*ttZK=cfJueD6>9Pxef*&=>GJXbtVRDb0@B>M#-T8L{e66r@uNUxD5 zy$0zWNWVb(1ztm(@i}x3yjD~%vmsQhS#IK0|D*s!>uZg!Qm#>T8RK9nbe`>9* z(UvW@H5#P%V2zj+b7HMnC)SG%;t-MkJn;rwqd{8k#7(v$gR~r^wboeVOF-E!HIK@#Bx(OPUv#`4`_BO6+aZLyIJFB2~puMj_>^pPDxKPg@%B0=~t zvf*{&^+p@P%a-#-I=x_H_ry&$b|E8m*>YRcLo4A8Hd66tRGqlRMip#T=zC>n1mJ^2 zLnInrtWcy9JN*lhN{9@S=GVni%TKkZ zuaKD!P8Mk!?8qHN?jUjpr|YT{#goL7MdXN3dKh+!DtYuX?7Px?iKE2P#DBupf^e)z z`q+_BI7g(#mM%)S$&L(Sr)3C560swR@DceuDn2GYuJm6wX5MZ-Hcvz90;vl`ewQvX z`Gv?YM1EmOR2fWi@lhFU#wE2w#JM7}Oei&l$TCEhA^k}D^cr^R4!6n&xyDYvz>kZ_ zHTKKJD?}t3pHGTciJuaYX#78`e35JH^y$(?HYY7V)#Q5lE|cr!rD-Nik~_t!Qj zL25yqdGbHqt~Kd~$PYw*AaV_nYluWcBpM>o@SDceB-46J4>UQ2-6C>|-D-TG$tgrm z;pSB8xaUnyA^AY^fygPO2Jn|6GI-qcrsI|#XtD;81&FLcWR1`h#goL7MP!Xo>wyDJ zXDvO@+5pl9klG*jywx63Z{qOx9=Kz_$MioW7OWAoVot0T>%@AoK}7!(pB90)i{B8x zC*CU}e}q0M_KD9K?T!`}#G+UdW3f@3Db5m+KjP03={f8NiL@*BTT`iHmfL+QyiNSN zNU89lRB*dUpJBg4yi@#^_-*kn@ow=uw9}^OyCOBhPL1HdiT8=$7k?oBQ2dejfcRta zLGdTzL*h@xhs8(4N5#jL@6W_15Ne`8MnC!#F5#mUzh1~(e z-9@AiJJJXD5=V)n#WCVo@oh>I*(ZHuAMPiAllo2R1H>63GD9dbga2&BnIj@0j^ik3EPhnHL}^}weM|aU@jCfmFWw-2PW%GglD=8I zMf{4c{kEu4#$N@p^4}xgud9A6J|t?4q%}rtJ|iY$1U@D{E{G&=0=`M521_Y9F|h&)5&8SWwO zDeeU~Wk!j}Gxjke@=VNe;@;wTae_EeoMbs>CX4%sQ$$7q{%;rGAu=NHVMM?K#2Mnd z#JpG_&Dd6(uq2;YY!qjTvqg;*o6AW}BgJNP?1zYR#Y0JFQ)Zs*^Th=sBZ!zyVzbCN z!sp%MBJnWsaPbK7NTqg^c(izoxLDMP%Pf)oIB~gXV{KFB1d*|Z{UlLiE%P4PPZ3WQ zPZLiUTSSd7TbEEm#uwZmc8O<*Jz}qTrnre~w`4Xeg|o$T#H|WtypYZ|`Dnb@DjlCo z#gB`ZiI_D&@>_CC#bu)P!WRC*l+jv#3x8*d z9COz4TXNR&Tlkw(=0lqwv)oouaD{wYVQlx`#91Yp#@k}|-;jQR^axxps$X)Q*f-hT zHvVdPTa%F{?GN84|1IJN#B;^-#Ph`ui5G|;hMRKgDO=Bx!bRf6_{Vm)O)m5Tq!*xC z-tM-Esg}>t@}zL1d_J!@*5+GsUy%RJ;upm)E6y$ASHyo+%v;6VU~G3la68;&D@by= z(?U~6rO_ORU1#fmI942&N;Te}-dh|mP7o)Glf=p5KH?N{KV3UpoFg(WNoSFWEMP|# zAhH1ID@b2K`ik7U#rMnSl2oeshxW9TP^1_lrw}=Xw~N#U`y;yQQSmXOX)pK=@txwn zA|-6R-<}D=sp2$ox_E%)Xm=v;T_U;-yJ}?jAlOyrjLMu@sjDbCsUc->wYWxPd{YLb ziL1^Ox5|h9C+0^*>WG~YOdM(o8NrYd3@;a{JNE0u>y0Lr5UGSn7DTcjz1sXk9zSj3 zi13t%`a$Xke+$P)zZ0Jpe=j~GJ}W*a{z3es_$P6P`0wJMjV3P(cbU9EoGZdK){nA(U~254FKgt6-=0*clIy9wsI|4CyE0kx z&*VgU8=rTG^fq>S8`7VPrdWSM`V-Qhuq3Lq)~ooawD!c6G?$6(@?R^i6E}$TDk=BM zPOow;y^0Tgh@C!!^dY1Vq19rFJq3kVik}o2`S^TFM6R*Z!;l_^H^A}s%yZFr+Ywzf zg}>EjJV-oPJY8%NDb=F!_T&)Ks?b_>ipdDHR-Ixp0>3QYBBCkq`5GK=vV)v7*nL@H zs@<2tj94Sm-uTeouvV-S>%|6fh`0bLe9C07`3k#7BmV8;H^lFW_ll2+Pl|maGFX@z zk$&@2{Lwul=|g0>`3jR|NFNfXAQnaX6Q5XY6laRFMEaRf`We#CkXD4NmGW7#-32xKL;4+BzdU32V$k~K8M_OEBQ0OM=YqS7dx(3AZzIlA>FJ8eh$Q|Dk^aI? zUvSkS;(Ylu$)3o5lk}JD&A;){f`xWQMqNE}%sjxd2a(_x>G-3aX;{Q$dzl;A6Ul3mu zUlLyycZsivuZofxyEkcmDzlgQ*c}HPEshZ1CjzJ`tBOi}%wIaJrq zlMlU5oCV@Su}N$ekq1KGEiMud6Au@U5RX)9$P8seX5ca6Vo{P~>wNr?9JpLOUPN;6 zL2{rZCnL$Rbv{0)h?1hrX|kU#wuoKI9SNa?o8=>U$VeVC$N>J^d|E!&h@TO! z73p_k-efUtU0s-({SEe~YzAn)!e#*YcJs0Ic44Zmw;?Tw|G}bK$=2A-&)6Cpss(K2 zj9ulo6*6{Yd;VRv;>E7g<~}UD%4us+LRGe$%4Ta(V%{kKFUWqg_(gHMF?E1FOFw9< zJxhlx#WPZ=Lm#wfl(1W*ov`k~mqUwGMsIo@v7U#QjAy6Iapmke-LM7F?sywIc0AYAS8^ z_h!$f&EKAH!rkSwhh1e)IpI9>Pu*uvXy@K#wTILmQhP}4A?ZPC52^j!E3NjB+Cyp& zsXe5|kh(%@IrmC?LOb^^s|}q$6Pq;|xl zcF<~fWx6E$Y}x0C2g1A3v@~%Rip}Ej;(NqX#M4E_Dlyx1EhCm|=@)#gU#?8k&e*re z{{ymLB3>>s9tgcwMEbGcEZ!nMq7)t#A2ZtO^uR7#okG>rp5|a5DefjBHTdiyA~o2l zI~*tOEshtFX#A0A$oMDycZenfSK3+^9-z<};=9DWSP+XMZ8-NXyPF|CZAfZrLtFP^ zUnaIIj^xCiSrC7NXp(%Tt$T@y{J>4(R{4KS_DjW&iKTkYg{E&Eoc%gWac(F+9aV_lzX*U?!=O)>|tTNvsentFO`QIwuCVpM~rg*0@ zIyi+?&RLw=P263ijq#z4;a(yVhaHK7`-=OC`-_W2dVo-R0MY~SNbxA~Xz>_vv3RUV zFAU=e<1!) zdvai8%0KyuunWE9S&n zu}-WPhl-=&O*Rj}vEn$m)1E^?bRksR+L=V`YTLBh*3Km2GetDXyvgo3$o&9uh8T;p z;Z5l|;(>6d?amO>dS^%4dS|CSv4Yk+JMD=TwBFficOS$tiQSP#m%x+6lf_fT)5H~U zr#;((ZSbb_YWc4dJH++k2GRO-hdmb|emA_yc3AL1i$F9kJX=JUVBZ3Frr$4amCpyo z^ThMTkBAqE7mFViFG;0p*V>acQb0GutHn=?*TEgUMQFT1{G50@+?n1k-Y*}?Oj>ec zcOS%;oY>PE%5QRVlRd40Pbu^{@o(ba#eaw|h%bsSi7$)0#8<>uMM<6AgUs1s_aM+@ zW=F*7LO4Zi;@$&*C6I`;&SnL@dWWiQSxK=8pM2$c#0@l%1D+nr^}~Blw8^K zM@qg@Y!g?BCSyA@Ys7YOt!PrW(`Isb2E55;a%yy@xEY@v8A+GjvtT!gy2KkIEc>+h zdyAPh30a(r#F64|;_h%~j-Dd4AQnaIoyB$sG-rq10YUYP-2q`&tLCgdciIdOtvz?x zeGpU&*o?s;P7m1&h{};rY#V?9qhC6e&h+h%6%m15pRVtMlM#H{f zGuw=lY-WS>A*4@==h}S&>=qgQ*y$xmFTt}!`il6J6jD-1N#Xm%4~f@`v@8A(iN6$o zBR*@iISNh`CyA3q#!c~DyRU$Z8@Rv7SRww2;z=SciVw0z9O?#XMSN7+=vLXkCf+7~ zUA$fVhDh5GpSFQ_hApTf< zQ2dEVD^dQRiVusAh>wboE8o{-e_iZ1rc)xai5&;bh&5tX%!##Pomejp6=~ZUC#9!~ z(?r^tbPf<_h_N_dY*L&=_M>D+#!2B=`79BaiRc*o)n7J8ktY2G83FJ#akWU_5p$jF z9pZX%gGiqeU(#rE5q9;j%|+OeJ-Ai;pm?5mzW5RGBJpDJqv9p-ob+|FBc-HpgZMe| ze(}em`o-oJ;;3KJPs#qA_!pJ@dGW8}PVsLF{k!-N@dfck@g?zPahLdt_^PO0wi%{) zuFWuTv^YjQ0G?xW1$>v77w3ovS?)GJaMe87={0;7hzmvaV5V7i`jOCgi;Kj=#KXlS z#3Pm3Q6ha!%EyR{MfJPQGx#4TE*Fm%kpcXX0Vo-;c?SD?#8X7cgUvJepDwnDUCP~h z{2ZGl;AZ)&-))v4{x(s)Y_kDzE)_p6UM5~HULjhKpJVzS-UQFJXDKsIvb($DxpsF4 zcbCr|;+`TciND&)^g4F6gXwkbs*&k+>?_1hQROsUUOdNiIsCBvRc6!W_*^7jqg*~C zUMqf9F~1<*EPhekE`Af9lS-!#=KC*~W&8UdnLaO76VaN}Pc^^kH>KyoTQX-6ets$| zzst;TzYg=8et3qG?EiQ@xlcbll}(ZVen&>9;<_qgoK4@Ll#jGn)2DjMOO@u*T&n-C z(;jZ1eAAb5CH*x$ww(7H6VYGOV_i8$aSu$TEroq|Qo6<@ln`^f9@w_1`<~{@gwNH%=c@ANSul z?f&}4{vW`9>A!b$U;Rhqe_{Vur(I&T8vSI$)ug$!;nV$3OuHgAEY;Hgt7+F*38!th ze5PG!`HZ@k9G;lAfb{O2b`9y>IBhBEJ(5b1-h=zDwUqYzg{3s@QmgUQ=NpijX_ux( zSxu&1nal!M7g~Krop1G-wubuLNUiSae~^6Q z{;y8mNzRW6&&6MezZ7Xn z{C_Lbp4fjUJ}sgd@p(pkR;0D@`GfdJ@lWFO;tS%7;!EPo;x6$O@m29PxXpF|VZRZP zF(N+@2Sk1#@&l0{i2Ok02O>WZ`GLsK{(b48vJaDexHv)_Defks*@?M_xTm<6I7%Fi z)Hm3@KO8HLLmrmcy+0f;P7o)Glf=p5KH?PdZA$H(;=ba3N^Ls!ZMLq0Geo46@*t)7 z%vPK^;(_8p3Oz)eC(c*Qg|at^&0-?|cPsZr;$h<9;t}Feig~nnjCicBS|T1NpJlQy zm;HG01o1@iB)HAiaPU3yIYmTU;B%UIx_ny170S0&Tq&P6)oZn4w##R&xK2JD;(Bp| z*eQ1Ds*TwD?70NJ(Dkhmd`oj`{c7lSG`{)*((1J$p3?~pC_I#enh-T zyjc9Gc!^TDR4H7JPoF)tKq{^lKP_G(|7*qTbk+6Z4dUm-FTg%~au072zarkQ6t;`s zmd{<{-Qqps{cv0Q$Kpex#=fme@qa`mWbD&EkBN`t-#)yuWB2c~eFkV_v(NS!;0RIU&Q6Wuv%9#5xTm-m z+-9p=$hd=JM8+NQ$BB$P?Bm4=;zV(hI9X)e5r=UHHSX*Q%sU(G2@GTmLdGCu3{G8Q zPhj9wahk}e#ODCTnIXPQ%!?&4R{D+NOmVjSHCpYN4C!mM+Bs56a)>xrJQQxr%#(e- zxIok>wsWM!Zx(G7_t{z;GKwLi7&3|>qZl3uw`GnJj~0&+7mFIvwiYMOapF?gXZtE} zxqNI~Z?iL{(8l#PTbDzPYg?CNKSexMJWV`ZY!NlC?fDPwwo+^pSBZ>n{MU$#aax8k z4jJQcgV;qnefAUxpB~wJWj|BgB%jU7>um8HajQblQ|LDNXtdgMA#(hvc!~Hi#bmUS z{>R13#LLAi#4E*5idTuB60a6Ntz51VKOqRxxe@QxF5g2emr`1xz@F=wbpfAYprWt>+nJ92uCP2MR*iG7;l9V z9;4J0Ve2KXZOED0!KudIqrcMWdY{hJ`*oH+fbk2g;cRo5qtpxeQzJ-?ptTTB0uZ(q z;zy!Glc|N1h>TgZ?oNhMF7UN%xm{d;mVGH8-GQ(U=Yo2Db zoR-&oEzk;jI^V|~#5F?5u?=hJnR=F@^udY;zQT6(@-pcm>z$`Ok^8)!qlOgUl^ z-&mU{M=xTUYBO!FE%XX)sjYBm(ps-H=I45qUaf8P8ogGp)9baJ-k`KomPoL-ZW0hk7VOkcB*SmEhUt-=6BaJv&X={XOYk04@%}`ny%c7MbEemN)I3I^5 ziwrN;<+|D&Xf>pv)gY|~X*Kwi(sl^bc4!H-9m1Oozo1);`GdZsujn6jn`yS|YsS2; zZ|Ix)mU5gR=Xdozec!o0F#M70`LQv7G3HY}Xw2UX{~d=WpBp}8`om8BhcRF1KlQ)$ zOZ}IArC;k&{YH=Jw|ZQ^(;xJN{-`JQCq1RvkliTcf5_g1xtdn?CSo$mzC)OO2P^8& zw6a#wLanORw7S-gb`oR7SXb*Q`^Y&P;<~V4SzH%l6J?Je%pQTww7IrW_6XuzDtiQB z_6WSvWw}SB+#^!%5h?eGlzT*~t!b{+>(u=s#;aKqT0ZvGeonnj2kIcbT?gw>x1v~w z88cGZUnr&V#^3F_v3JxQ6la@)WqEHK-mUNG9<_Dl?KQklX=BW_U;nHhD(#JU+8Z8F z+gl#(jhMfwZ7J`FVOvz5Eh^6zm1kSZ`^KrZnY`}}N6Q(SXPb%9w)0+((KfU_WNZ(a z@{ux=ueOAYEg^H7F{f*lD8qR60?#z&EIn6i>iK$sUK}M8XJDj-kbgtHOsR2VT52mC znxRfvtF{rtwn0DqS6B1}H6z@MN8$vvrO>tLg`NiD6A~sqSeJg%dmX78V?Tau=LE0D6zL3&JmW#A6qt;l~zVPtqiG` z!Yks)Q^WCdw4KD$QG^SXy^pXZAA1&IT4muC(I>^*b+S_9#Lza8wuz-m3nfhLBP|p+ z>hroKOj3-j9;#YG>-#T?Is%{zhs4DyK7=JHCdl` zij)_y9y_YeXM~q>iV^EGu8R?C$9dNl9*+_0s&yIX-CFns5Nlny zDaLZoI2G$&INY(^nX&GbN@LwCEzCQW-Cj6^F@5rnGOSdZe|dI!h4UDfKEPVDzR7IX z^g!W|SjWOb*K3pORTv}7$-aVhF_lm`)+I?UK<`VOF+9qp;2!Jd>naO5R?w!ZycG8u zPCpWBRb_aTWx2HFSD(@7-Bo6@CWor*A)kumlVV*qR2h)0j%SOi%!tub+@|dHgkRIw z^$p#jJM}H4eUkER-L3B^OCkPUeNQPhV)p5N*7B(sF~tw{BmG$as(;hJ>u378a?D|_ z!}<^XLjS2hng1!xhB<65rj&mW&egQ$X-3OwdCk{~dST=oPa83B18u0ZbYia2>rK0r8hu>fRO>gM10s!e8lz%_KUM02@Hcu)zt!XVoqn%B z=n4H%PpY*RBVMOJ6(e3qjbPQ78sk`4U2Evo+EF`cXQkvx*+nh?7_A|uyY?{8o=RO1 ze~b3kK5Fg6Xbn@T9b`X8>nQG`5+0xfb)s7SanF>g52~ddqZe$&Z**P6$2bJKwlNMt z*k#3t0^vbwEyt+9=}*O|0GfZ?-z1Is$2B_PCv?3&shh)OTu3Yq6nzSe64(@d3XBri6nzT3TwCCYT+1Z-7sOj8(Z3*E ztiyDq(iTW>nZ)_uTgHBq9=ljbg@37OLVD5scwol z7IC?9R3OYz;q*29kEn(R` z@%$Qb7A=?+J&KCQ^B>~jsv&XK;>PT$B-froA$@@(6?bzc+h6`Tm0XiT=of9j;>KwE zNZZFx^S zp4uZ!TPDps!_)~e3zbqQOsV5n>KaDNt++8-F4A(5mWxCoEf;CINXtc9F4A(*t;nV2 z5~k%MEfi^?==w(sB}{2nJe5nUBuslmw#NMM8dR0q$MJ4 z5Fb`*p0L{+ZICc+5NU%*>myHEA4WNxiq?m;KBV=LhSpbcW3;}Cr=nkrCC1P;h^O5l z?G9;oNV`Lqn{m0(;+TsThtDdltm4Kbht{*d;B#8f_JZF2>rg>2{iS? zDIukVloC=(NGTzulvy05gp?9eGDyiFC4-ai__|Ejpt zj~n%Q-J~z*W@QaXvsGWz-|HXrC4E_6Wl2TRSH*3*U0>7J^$p#jJM}HyrElwQeMk4` zyZWB))qVPb%iWJnqQ{CK>PPyqa;(Yg5yu+*RR5)vCoxC$8$G7qD!m@I;*@5?910ZK z+mU}DdpokXW1eP|J)anA0NL}g0`|yZpC^1_tW_Mvh`Ctn8&BJ1Ds2~OyG*6+Vq>MY ziN8kM8gm`_tcvI6iSJ~%v)*j}T};!}sok`v_Ht@(Q})p!Fycp4=E}_ z^H;?aj!bQ1nD#&n?E$YV{3_L81sta&SL(m=(!Vi{iEkj*foisJK;eZODu}>Q(lkwnk%}L=(!Vb z&T(cU-c}d)-pKheU8%n|3UJVakB;J%;Du;CQxyn0@+w7%QB|2P}sGJRB+D|;<-vDc;sX9h$} zoDFfZG1NBkvvrO>js4?nh|lVlh^LJ6S*5aHnTwH8OKSC`Z$&orT=C0T#+_R%vXk8 z=jgwtzT^-UrZh*1A||bQcr32C$BV|tQw)l1Q5gp*ojy(;E7kkogMDU47aN}7=NT+>$8MtU`t ziziBx`Z2zk+~{~{6Z5ztu7Z-Q;;Gf-x){MsZsfmF(|{i?536A6-%qf%GG-X&q>dzK z(zIjl)A;WU;!?TaC)e@6?>hJX&)*wzZpg_W5P$QImi_(Dl(PT#-1R?y^FA*78}pR? z&HJM4?|=S%Lr%{X|Nc9&=g6KbI`_`|BL3a=x&P0=Sz?5Y`FE~)N4q}P zxp)46o-6WB^xTzM({oq1)5_;eE{<(*uEqJ2%GTw7uSd+un*8VQ^pg=POEdjs{@VZd zZ^6I+mQ;E$LT64p>zNDIwVe`kHEY*!cH|zpmgU@dNyBB=PH6N} zASeqtWS$atOZoVFb8FmmX2np6BYab+#=NVju(@?W<`tl6xdi;3Ot8XxI- zqF4D|m3p1mt9Gx3y_)yBs@L?shX>C1MZ=-(Cl}xO(&XY{=M1ksyy=MAqjE;C8`ped z@5#md9WynVI&g^M>ma^BL)OOHI(^s%;&t>E5c zm)s<-T60^_>uZ|ZhCWrx+(A5f)+_f;u2*~Kj->C@H+Kxz`TcY6&YhGD$elueiF0-C zwB#4L({t}lhUDJIF?ML~Ec#2uxusl@j?DcvPisxh{SC+4>A9chexBT$K0RF{nUOv} zeNj@HzASxNGCzHNx_z=BePjB@(lF#ZRuCi+mr3-*VC^jJJN5a-%NI<-%Wpz zyp`Uc{wR4jeIR`xc|ZM0`ftex>3^obOg>8gn3t1$lD8}Gz2s2d2YEjwU*=^qwNuqH z^)mHSS7jPz+N9cM_?zmPxh~T`)hja~GbVLcrX+J;YDVV%%!4Veq%(_B%QBB-mZsKZ z9?fh@{U))J+{JSYGg0>c0zqU9c+kb-}uVb*XO( z))%Z#9V_^(;Iq`X1z!|=kvd*>MZVyoxFTQLuI&7^^s2J!^`*@dzr(h)VT@>CL#4Ms znBD?5PLg?!USdmQ#wk5Erar8kF$piwg}O-Ts}cW*InXB~ygH1L!+D#cH%6G=7}C4I zIa=z}jrzRO8(Z42tgkz-V)S*9GZ@m>Mf#k`+97?;`Te4=OPDhz;jxD4>k^)agQBm? z)P4GX7=2x&_k^6gv5rzI^9Mz#Afy7)Bqi@q*Ct6L(ztaKl#9i@wBDy2)9twgpG*~)RBN9hu#bO}?sgehIZlrB=b z#8A3O={{0BN*5_zq;!$eMM`(v=TW*y=^~|zlrFm5C|$xXH%gZE>gNk=^~|zlrAn+N|!LDix=87c`#ee)DP5#=kGDHnU#oaS+V0NGdOG>`oQOLe0@A0~Nm zM}78@eAaW~>-ntb#4h=dljD$rFPNTAa^hc$#^?VwOmg$thPh25ZuUzBpApw1NkUc_;Me=Vv_3Z~7?iGP(I&!^|Ps7d~MJdYGinLV;>DGQIsQWhR( zomfigdoE>k{%=T`y>0?V>vzN%7e=XYJzcxg=(lw@QlzgA?`|z{RNpdt- z)5>qh63;JIBfm3?1kRiDM;wyYGtjWg<4fF*4kP}>uNo1 zuO0M8y-7Q2C+(~^YZvXR-L$**&|7p+_UqXVliPK$-bGoijpsFyJqk;7oYJO=q3z%V zov4#^vQE*dI^Ct*Z_czb=9+EH0$r-hbfsx%-=v|P;4_xw2B&T^{DPMK8u3=+U)0~5 z{$<14OtW2g7_(FNnE(66|H+vB`e*%6KQbSFL7RF!V9Y1Zb4i>3)iOVC`UKK_4E?GRO@S_SXQdBHqpzqsW#K*+Cuq7 zZPK^YR?2Td6VuLhyFqPBDce%Ywv@6hrEE(n+fvH5l(H@HHJI2s+fu5JYgMFub*L8W zD7VgblDgaFPH^7IVH~x`4vFJ6a->F%)C2swkT}|s#@3j(E4Cu< zz3h>N%kn-d~LQYiw7Zzd)b&S!{dW=T5bqtIVaQu?1$V9lm`L>(f}9D7C|~nrbs`t}V>7wc#uE zDwlP&bG0$%dSkk99B-K6d^UDSoX;?hDqG{MM$S`|u@lnVYdmK-;yJ_NBgQkD!c@+7 z%*)vhIoshD(`=2o5`OeM`|`{i<9Vaf50i8}2gQ~o*$t(yGw!jy?@I+Ml7s`FZ!niW z6>l)lydZT?Qi=Z;CTD16t)himRWH`sT1V?@J#DWY^hUi&J8CEGtT$^H?W*0hyY|pq z^semoxu+##bgY)>I32HdEB6ye^iL+~WSyc@b-KCD)&;s$m+5NLY%si8x9W@fvhL8G z`X}A5f7TE6Bl9_6_%l6Z%n`%ihpE%_bhXS=mU*gnY(=V$*427iKXOR5GyM%}Ij1b= zl;xbVoKu!_%5qLw&MC_|WjUuT=TskaE7HC?)TI=w<(Zn`QYP!Gw4ybsKk7E!uCM9q z`iAb%o%)vU(zkWDzN35eU42jY>OMWFU+HoEPQTY5^o0JXC-o;irP(ki+W(rIl;&uz zrZrD9T29Mrz7}Xj{h6Mor)zDkqxH3cHq^_tsd5ybTbk3x@HKj^w$rZKO?&DsTBLpT zR_(91=>X+PPPXn29j3!|gpSlvI@)y@W4J`e>3E%_Q*^3wred9^8UB^d(ED_zKBRNB zROjlv?EV2Ya#k2#sjGCguF=Q!30<$x=$rbs+Cp+{Avv~?oKKBEtl#J{{Z?%!IkuA= z+ewb?B*%7=V>`*Qo#fa~a!-r7a;?qWN`}wS%34JWwW?Or>RLn3)U)(#Jx9;g^Rz*f zMs7pBOdBa@lDVb1Ee+d3a<4XhNA0AY^=9p&ww7F5OKx{#dZ}$Dx3}RwYWvBx{p9vD z##WSTE6TMM<=TpJZAH<`V10^}UIt-$892^09Iq41XQJ9>a&0rY4;o{8$bHz9^L2qP z)J3{j>4}gtJrP`{^h5~L6Twxc;b=^`t&5!V{u)Q2yuT}bjalRK=xZRojB!ccSK0k@ zPs{t(sV5Bo6mquPJD5I2#AkBi$d<{~3QqN?oAIcdsS?M)OrchDDt(7>Nrt`yo}JxW z`dsE5rSCvYBlB#mO_UzNtnnFo1W1nn=@F3fYNxhwxi_#a^E2&Zi!vSbM!iX`@r*T| zvBopja>iQD^e~Obhm19zvBopja>iQDSj!n}Ib$tHFJo?L^fGXeIs8J0sK<@WP{Vhs z$B@hj!=u!rL}o(v;OPAsYdphQbwG^_XH}ePntRlvL}t3-drj}LBIB_lbHDMk^Z~Wa zWM-Ss99@__Nck+%C8k-XkLs`WH)^ZMc=X74^vFDEJbfazls*yCC&J$v|D0~tEiP-T zYxrWsaQA0WcE{B7xF!q->s{IXQ!k>&5suXoWp5ycy#epm`%S-6_vj}fS3%)8jfD~Ezi`@v-zw`jm$ZEp)oua&s@#4xwbIAP2@(uasLgcQa$J+ z?jAjWK4Mr|t7xHC)r+;Z*3r6JPupt;y-{z{j@n5(>&@ClyJ|P>u08Y??VCM5`KzR# z-m3leHXWG#dd5iV`2g#DyAIar&U?S%hmvGQX)@cG1-ew1=}OaZolcq!#%$KD`l9~c zsV^Jep*!^**I|!2{K=U8`e*%659lYR`ONSU{XV3>7@n?{KmEmssS!D+&eXH?Y&}QM zjofI1VNI>2?VR@pwJzvKMsC&x{m2Mg7xW_|Y+cZgjIeb7J^$p#jJM}HyrElwQeMk4`yUH~wIq%hd`jej0Y)GFkOlgkhYFhI&qvf=` z<}0IE%v)a@XhUtPt+M-Pl;pHF{BylV+i6$rrrout7HMDYuea$PdZ!N4;W|P`>L?xU za!U-4)A2e%C+QTu$CT3y&(QmHraq)|v{dKnyzKTFr8%n%uhupCxc)(3(wFrWeN(Nk z9P5a_T9lr3L|-k!hxHphrr+vu{Z7BvAM}L&s3+C>&8-^Y+-h1~YiNU5b9z_dW!gwN zR?R5MwbpW*nX^-kB2<2~y+Oh>A2F1v`MN+C>LOjN zOU!wxF4ISKx&D{Ath9ZWcN-! z&UxtoX^zG5hdx=PVa$h^6UP6fr;?=j<2YZ<6qm=U%^JYB0(KCzq%8@_k zu86N5`E%|H&(0pebM!)E>ctU0bBQvBLwd$=u#x#R)+S2NoA?&ab+s|{%$V0UKo5*9 zr3V&ToAjk3d|P}sEi)iWEHh9C89z9?l{G1Ls(WknmZs#;TZ*|RN9oa93h5OQKf{y{ zIMsU0@N_RZ&o<2*oomcIbADK(PDj!=3YQ!6YjaquPw0AmQlEAWpV4P^gL7?m>K2zm zA81NWeiOER8t=pHo%|K=!@WFu0PpV|Aj}uyCLfRY;bxS^J8+DJp5QJ4BaGZ72y->9 zd79C3T3++DKr1NMSyN`xcL*yh*I9(Q&O)xU@M5j4b+oS5)Argy=|7X6{xfpjg!H13 zUNq8+My{KX>n5Z}jr6FI9yQX7MtZF{TNmh3rTe~(5`I~? zId!}4FlMK|Z_J+z@7F);hx)No4;VgZ_%p+Y4IeT5eMny*JY6kM`T`NtC{i+N9yZa- zwW&7K=GsE9(3aXtTWdRWW1k>TOPk(7ge`4)2NAZk=^aGa(x!J1VN09dL4@x%w+V(P z>vP%VQ>LYUryKQo-J~z*X5FG&^+o-?{y|^Tm-W@`{ISRBafFmSQu6qkzOHZR4&AA5 z=`MX+ck4U4N8i==bg%AH>XH0EaOu=k|E(!{YEw#5|E*u@SH>UL@AP~9K~Lz9dQyKf z&r_NW>BWTXamXHr>~Y8*hwO349*694$R3C6amXIme``)f!#^{8nx3wej6XvwYZWcj z+NPeT**Z_@$B4AjBK+@W`xbFn!LGiJDs(2+Vy zN4rI1%%Q}XaXMaU&usMsbDLzCJ}+xK#qd<;y2l)*8S^V+W*ELtXX>o%+9_YMq=h3b9BJW53rAWw+QJ!gqx~@E7Saxp zc8Ih?q#Yvd5Ua*q^!UQ+T0_rt>REcWo}=gLd0Nwywe)?sJDF!^y;-}c`wP9%SYmhWrR*uh^wvJ=o}7iT!$63O^2?880G-F@3|-!lAboP+4MhKKd2@!uLg zndQzI_rVTLnMR+KH1tD5&#l}!B!|q!ktg>I!$wYRtn{Hsd6j7x#U*^bVQW0TJ3#vO zQDThyg*WO=+A%we7;BuqCu>gMGwj0i%t?kCM{1lj)HwD~j*x_@eWdoWxB2wpap^XU z3Py~z&!}L8seQEe>B(+o4F^Q2(vuAbxy0L}7BY-~bvlvxh3SVVM^WY-s&{I!IdCi` zez?mWVR)qZjMCAr`Pl4k(r^^T@!9#T+l1^9mO{%R#+E}LnHEAHIh<dBJtwY;IfJ>aCXBi_Y~* zb}zO3YNW}(K0AK^cbSuc)9BmBRoUppG1k}QXwsJvv$aFhjF^Rk^{(vmqe~eX4aaJU zj??jaw@%D%C(R_~I*2gWK{!?KH@B6_H74u7{MJ{EknBRnJ_A#`JwLMnmKb$>q$Eo}UVR8{|c7)Q z!m(PS<8-{4rR4LJU`@lHsq=^W{~PUhHlPuJy{-(|P|B9nO~ySD3cuCCYqA`@Sm!F#jY zuP)%~I^y{{&b3S8%QM}N#@oGj42|!(|Ds~z_t%G&Duq~YB%k!J@gixuCsN4F4bka zK{xAGeNkW59lBHhr2F;H`k@|Bo_%8dkLdRySLWgAYRPbA9x?4S-d0Muq7L0&uBapI z_HsoXVYinn>Il2NTv12Z?d6$_2u}{_&4ho~Z$o-5q06P$65&SLSexk8Vc8S0#XF+~ z7w@EgzwWg>YQA_UEsy8MiWkS%mWt;k#0@TqRygRQXobZa;=4wJOQJ0fs~BHf>T=3F zmPae>&@Y}cDvtINXE}O3#ml4Bbo}6dzP5B_HQL{SVt>P6@U$3RD&7!FCd~6^gD1sE z6U)tz(}98hp1{DFF*Y@DcC_Kv^I~j@aO6=?_8q1>zoISfy_zQyGdFMwE6$9~9%1S9 zFOa>j)0eUL4eZVQ2L^Uy{@uKNMUUXlgX{xqul|BP?f|E~YP_qJ+&+tUGQwOyqFk(1@Amf(B@$6JsS*s}b#fag)7;;|>xi5y?7enrgA@{|Qdojqp8020I zaxVtC7lYi3LGHyM_hOKHG043b?55q7t7u}lFNWOVLhfzdxgzdu5q{XUU0|3yT*PpP z3%R#N8t$I5EgOv4WcUT;ZWn2|+lAci!rz;oyIq90nTBV~n3p?W#Bk>e-#3PPUWB>l zh1~N(?s?(IPUX%Q;e&>`^F{cuVMbL5bN{P2o|g)_|Am%w-2WonC{m^xD`zOemn-+< z33ERln`;ZbLR%_NT`-kr_K-VbG^2k<#!ro=ZGaHBr2QMOa!*A{TI^86lQu0rrdrGyFpL0{6B_0{a|JL7q* zaGP$|*YtILL#YeWP#5@??$Wn)x4xr$^j+nuiS&DQpT6(5eBjdm8ugw!m_2mo`qbYH z|6M=R&y_14(om1c6QRhn8u(9T52a-OTffw=%(6Ati&+Jij`ukbI#DpT15+$aca`k(fa1l zKpX1i#y2(GD!aFMA>(EH2i9i1ENtV{Yn;k6VdQh2d0ro-#Hd-UkF74g{lGeOR$3bI z?C;p!e0oF~GHMnvjA)ZjZ&PwL$XrFn_tk#pe5+~t8*`fuFlL|*cCI^&=PniN$x}h( zGt8LbIzmV4C>`zAjWLH3W5(%tjs0Q@V`q`uBx5GK&QlCeb*_8NVVW_&GG>P1`*fzx z;uv3>v9s7xu36aXIfhGhu5ve%_(g8%3iFBcOkobaOiE^zX;$kReO#Y#>Uw=fd4hy> z{)6lMlD@33=o_xdo6hUr#68ehEB7Eq&?5Y)9@c-E+c$=f>9=}Zzf+EN%=Lqw&>!`r z+U9dPAKkek-q=Q4DWhp@7o%w*qZLSB7P+&6+*!e@kprV?VRfycXFByP<*I>{Ts0v5 zZ>0Z?HDk?lYw7uVfnKQGfh{hKJFv(dSmX{YHjXnbqiNygQL~JuQTvRhh0T?_v7~gr zi0@vol&f8_kYQOYja#zk&5HZl#Zi+O2X$Qhp; zer`&7w9G{-B0k#5toU}w?NjKD?j;R(v+i6U&)y+-vyi)4*pVF8Fb2mKF$NdfP8fqb zLOxxy`&*yK7+j>}-XU`D5P2F8c^VHr>Sj3VGH;*k0hU!{yzL~O%p;9QUB=)df9@vZ zfGB^);KD)1-yZeF7~Ix@^%;YUxrXQ+I#lmeS`;}9Gd$eo^4uQjN4mWplQTRw!kXV@ z`Ha!AaU^6sE>eysW;5e)2ku;wnHWbi#^Yk$7^@)-V>RfJIl~ivr2nO*G0i+ZKF8C3 z#M37y2kvV#?|sJ1RIcrrI!hlgXIpRF?&&b@!a)h+qvtF3$stM zhKuwOm%hZ@mb$&m3_q&e6DK`=c}jkTCBQMCdS9u(cIh1XSr$ir zSle~_gz4Aollqh?pSGr+(Px#r>MZxS&h?zq(9KX2&5ir-q}gh@ zz35!8#?-Rkal7V{xW2m8-}Z@q{snY~`g?7sE9 zxQ_32Jg(z!Z4y^gx8%fi`mIgMuJii+F~$pe^olFBeg`AJe!I)Q{C(?1iC?Ylw=%w3 z+j@9h-SwImsZSpqBMQA9vOH!#N749#IkN39n0b?!sL{!iSGyZ`-<(@(Qgu0XRK?Cko21t*Jx}9*J#~OvSmBE zA7{(9wjaVZ+C6PzoMHpAeQgiM_SG8`-w$p-B(5BL4UTO^wzc0RmXV&u#j#%w&LjgE znf)TZ-O;^&EWhrXY{`Dh>pkpr$gSRL*Ayt*YtIL zLwD#-eM@;)ij;5bZhc4h=)3x!?$v$Dcpr0}(rifoHRL@^krBZEa`vLlWOhIXCj_HQ&?SV=+)X$J85UVS-Ys^Oy45r?XJD_7VWKl)bgi4 z5h?rWt!iD+pNRMYI#4I7+9m{J8OHlicz1NH}H1z<$TtuAo*kJx$J=}FX0K1aHBr2oAd?UtXq_0 zC@Ejm-|HXrC4E_6WvL67J^$p#jJM}HyrElwQeMfngm)zdf_jIrB(+^xO z&+PQRh^IorFO{d?n2WJ3WCZo*h3xfVN^>+<)0(FlEvMx*Un^>TZJ-U6v3~NrMz4!C z;Yu=MIvMV)U5)9c^k#Zr#MNV@>Frc{Fw9kCOkeGZY4TS z$Ll1W>=LIKo~ASOKAowvvPW14M*7HyC$m_?IfhGhu0Ce`D#NRFjXthCXG{)n8h%@? zHI5jOr?tirBf^LEUvAMihL7pDdR)KL@AU^gp+D+LwSGBnkSE8Du)5aJ){#F~I1%5* zFm*&sTfJ7TFP;~Ocxnw9)5rGOL2uNXw4=FEv*bz5;?3Gct!0iv5#L>V=`BiK6Hi^E zbiTIPrp@zacXz_828tcW$qJfA93yC01=x$z#Imp#&* z@6l>Qy-XV^$F%N8xqldGoHyRFB8Jfv9H#Wv3G+-hX~yfrI$sy)LS3Ybb%}G)3ufMB z`l!-FB8KO<$&Kf@yZb%b?nmPdAY@$UrZm0#i03(CoULLhcCJp)E)6VsbG8RG( z8;su)>HS*o*H`t9a!ZorTAl_w#5nqB<$8hetfa8pVD7FS>~JLKjR;dxgc&OcFVjYP zd8DVLBHny>9wlOmm1`WrBbB}eY3OUH&_ z1(9;L@pF{^GBNYa=V4uF4C7S9FE!8Q#y{;68G~ZE&*}!_H$@q89T97|#XPyA&k|pa zn5c&iALh@?9_X+ye|{Ke)$H2K3zFINZ;!XXiZfuiO}Fc7`ntZMyx&Y3-fzaYbeF!Z zyOpQz9g}jZ2Ihw0!&C`sQ)AE|H6}7%{pPn4JPmfLY z8s*(+V!A5tkrVEzMatVj#PCKC@4 zsShdl&Ph|MbCqWTh~b$4T%(Wcn`#Nur;VwWDrcw&f2xP|8$G7q>T&%}d9$4KKj;bl zQBSHh!nuhwoSVYx${R$4c~22LYA5ZiH)|KQY&n}m%I?}rc}Jg^-r7ekbIv9a-%oiX zi?HR-*(AaPbf8XD%a-#mtuz8}o#&*C+J_r*1aC`;#VDe>s-n?ks*(2$p>(<2d>sFNQ zwSMEWCv)XS&-l7h(jV$nIlkF&S-a#x_UEs!D`9^Qx9N6$O<&hHl)Kra;chm*rMvWP z-L3EF9(`Be)4jS+f6`N$4cVVV?l~h*Qy@=MU|RDuqvf=`=4(Z*uMM=JHq~pCd*t( zm9Ew`8hwrudYqvp%>Eo6HB*`FhZXDG0j@(cyx-r7ekbN1(m@29t_<{+Jp;mdn$dDvUh}m;E9f)2Nng-yx?SJbkM*D)4&$8_Y^+W6 za&4;3w7Is>E3~Dy($;#nK9@Z}Zj2t_Mtxp4DWeC()7!@_x>aA)-z%dBOnpgT)>o;+ zYB73%j2_^2eNA6iMh}SJp*!_0-KAW6GIh7Uqg;m)!*wWf9g2(|;6DAp<#H`a%qh)= z9C5>x<|tzY#H2M(Gs;*2@#QsND{6ghpbfRDUZY%l)_*R>3YeEGHNsq}Ay<*aa21I? zl`BW$xpG9V9Es-&4!MFut`?C|0xUMoFvG)jgpO3M@<>yn<8-`otw%gplsHXi=zTg< zIfF8Fj+W|NU8Rf$Fm;VSu5aqwYWZ_ijx?5ki~|rptp9SI83!Qdn0~9rm2m*#ztS&if z(Xh1^;{c?2P_3gF2WV3*p2x5M9M9u#XmbwFQ2VEN%AWXm%D(<{ z@svGYWz6+zIWV@lz3J>2NoZ3oMiS61V?2SFK|0*{QHEJ(;>TxqoK-7E z6$snLIG;q=HD|Olma-zYF2)vcrT*G9wkXask$$~CsZZ$(&b!(0s}bfPd&e}M6ih1d zq~)7@5i#UR60D+yT2;C4NqlXsqa5dnsi*C=gL0>v_?wg?IpI#)S#Q=Z+Eu%0ckQ9K zD9?D;=@`#=BhPr_FOuZvHIgBEhYnT7FNo(V7#Y7n?mXfMWh{g6C>^bLWlQoF^BizE zR!el8j@P@D=k;1`;#u)8>YFjI(Z(CR@5d837^82neopD(6+!foJZS zi_r?=e{0Nh`a9jI&+BH>aPA}}=T3ZCcj!)i+mySNXVh7TKN-*cB+~y`Kh%$0El~^CP#^1$v=gq_i30 zYez})Y;;&x>uLR1F5g0ooNrKD5#K_L7+VqFLX2=nwH5I##E7vK@h!v%+lo@OB9=uf zLRt~>yae`AS`^{l+Q;P;;6c z(3aW?H^ldFiKo309&7j>!`w%1wJE-b%hY}Pei+}wMM@0W%aFYc8$^1>rozj#kzUT! z4e>o((zGk@2l+gN>}84Ynl^=f6`Og z{dtSIr#ma}LB6<14m=G{o8f8rutKEaD~l0tYm7Gz>U89d16mPp9E8R2jPXrG%||!B|1)dlaBbimA6XI-;hkqZut2U zj)LK2ouX5f;~#l)oWs?|JmYdVDZN|PXPa(Uj#Z?5-|$DK|JX1`CgKkoK4d)o9*Tpb zPP4P(sDm7JkfRRP##$U#!n#^dFNt+dU8?mXAA0kVPh)MOmn*$Y;+tu6ZJ}3aOKqj} zjY!$Y+={fX4t0sVpU66JD@VeSA^%=bPh;s@PC3Q`#Ugw85XRh;KY2M-F1f zDR(*vKdke0fiBcVx>z5<74d~s(ytEb&9Gd0GhhFFP2LCDz0J;|PZMGGMZ)Zh&FaU# zi2sQ4VUOfU#2&f#=PT&{!8MyC&IVuaOG;4c#h>i-yGjG#a|jT+wdGM#TC3~ z7b!XB5$4-~gf|*~USH5HxS4To(j+t3Q+HG-VNVTnHLZD?(Q;Z|^R+-LDBt^P9B(Xz zyzhv2#TK)thGVrv$LV;zTPI}Kasrr`-OF5)bh1v-smeFOn94W7aJ4bdxZF+pf^O68 z%6G#^`M%+gO#iWAz9dHcLBofPKOAB9RN~oFL%uDBd|M1_#~QMyhIO@`UJ~ofo*LGV zeArVXpT^omFW08Zb2v(f$umt~r}5x) zCFSfwxUyE!LanORlzsqdYUnI|Kp)hHlr}{g+7!~JaISJxAk6;Vcrg1bOJ{%G+ww&0 zuY~_%n6Ilf9v$!Iv3DNQe?%#vN|pUGWWTIX!XC-I?2(iw zdt_KO=8b)hskI^p_BNKw-WIaAp~u2_6OVj67P6nkTvzH<&eg`HTyK~wyOv*aT@wyh z?tV3%&J{|;aMZ_F!{jR7#AC0aU5A79u6WXlb{&q@5*?@G^={?dLmJLK$hikO_aNsU zyx-hbD(4|?n3`czAh>slcai~-I zY6Ia>=HS|LgeB+r;&j!O@fAq?B73O$=NwxPG#tuNHRSrc;ZSOfd8x6GGc+-kW8OH1 zBF9jyW_Xxwj(yz7RK|=Kil4lze&!Zq_uLjS^raN zARMfB@qKjp|0Q}-DD z$nYnI=@pWO)_hreYJ-&2Mp#p8DLvma*TuKkk)Acy)B4WUM~jqeY4REBRC>Fli-$=2S9CC+ifQs+1zRaV96tM@pFy!xki` zQk2c5pQiN7HMClY?w;fpz9Fj(KHj~fs{uo9p!Q9_$Uvo5_84(%8{*a znu)DPwjSNy*m|~thCU7a1+*NVojh3eO2(A;UNWKV*KwO1i|ZcbiU;R~(F;O)K}atM z8|mfRQdtJ^T)`mgjl*=LQkulDbmZuXlou}0g}O)=>k?h6%k)uY?_e%^O-NZcIhGlq z^zI2$D@d&%M{wi_j!)||`mAmVlbe%D{68l~Pq4C5l7uNqtg2ks5vB%_8boRksX=7B zs})9D!uG~=&>Qt8?Wmo!v)-&-w5xX0?%G3d(dimnlao+pEG5b;CyBDjiE#?tpqq88 zzNm~lFm;FS)IaHd{j+|koH>^J+9RWNA2arRVcD1_^tjBYZX_OO>*KI5?wl9(vNUsZKBpi zhHF2z<$BIs+fyq!ZiZa<;a%CS=Tzj(6^_*s<;t2EuB`EHoe*bBdSu%hoyE~J3mKO(odX2>+8_dy!Y zWz5UDEaY00n94C1M^%=>Q8la@bH$ZFreRzO;Mqyis8t+ik#hiZaScHHrH1K=)L9%o z5u_)A^!u6G+I+6mHnBuX_kw9j@+!5oAw7#)3J2?5*$tIvQ%m7kEzxm0Uhme4*{uyr zsGpE)dgPiOr|SLYwo)14AbyYGj|_ie_)vtYAC^x2gf*2>W5Ts#Db!C`SLV-L9|c>&mmpOx>Y7^)20{Z|iP-NB8Kv`kwC9efpE0 zQpUj>&g4!{n9>~0)wJemM$2h=&DV-rUmIvc<;gbkyhht;SLMAH;(3<^i?pxy*W2_C zdB%PwubcXVd2x)jn1bMCj=V+hF2Outp$E+x%(`n~?3C-g_$w zJ85UVS-B!6jb+Onmk4*)UV4l6);?;PbH^o8_S0L{^3S#Wx#JR3c@hn|vPR36do2-u zP%TOBwGhJ*g*_sAAq^Q3RE{OYe8rm(gX23G_*2Mnh5d!&N?5^|$}um;74|ibD`7R` zIj#`TaRoVwAbppHlcMi}&6VQ^@omh_lHm>w>%$$I&~413UvQq9brc7h-bu(@FC+Fv8(qv$3o&c7KV)2AtQEJJJyh6 zVOUq|=_RqwoU6k6kxz`+kq;ww$cP;>Vuzd?kaGiaZa_xtkP$m%#10v;Lq_b7@AHvc zk@nT0F0oh{v16?)y%@2p_jwNUoUzVBPOuJLTnb|pga_zA zy*ddF}~@6Tzg?!^E9L7w7lkPfpRn?{h%bN*d$>)aIoH`V|1*R=s0C7 zNy#-R(o?RvF0MogPf~i#gt_KHu0-*EU8!6n5%Y}8-J~z*Hr=j!O!L0sj|_io_!Gki z4RgdNpTiMOog3lQd0JCzX>F~eb+w*e!d&Z8muh`u=(&>*`yaCZ;pNKFpKvqf=ufzX zUZE|OK0fiSwU4-xVu}S=hLq0aHZ@9PJ; zU;nHh>PJeeB_CStxyzDj>ETIoPQ~;H9jUYjVy3WX*GRLcAY&XjjZ2XW(!bK_dawS| z^hfl+^-KNHxlZa&nvL`v078xrNV~e=f}~O`?d+McG-PS`OOg$8ne$!d{B$gHKEH(= zk~e9{8_63_nLd^<-zCg<3G-dTe5O^JMmH&ac9NXmIoc1NtLJG=t);XdrqX_p_Jgz^ zr2Qc62WdY@`$5_d(teQkgMGE1-m3leHXWq20aDTikT!s{0i+G!qe>efOdCMj0MZ7K zHh{DNqzxc#0BHkA8$j9s(gu(=fV2VpNI%w3!lZuek!O{UJrd8*%34JWwW?Or>RLl- zKef(__Jgz^r2XKOB&ohOY80ta{3S~(Oj8X=D?(}%sZnHqV(IKp$o_=vPdHoWXsOOs z_9v!3th7LuNDD+-AkqTyN0)n2X(g-!t%PM|!)PT)JH(tY$;4XMY#3{etTmDck_VDU z&4x*nXhr88i&li^>UmmIX+^}-ijY=>v?8PxVN<=9K3T)`b=t!iS`<@hQAmqIS`^Zv zu&?&hTeZL5rnD&1(4vqQg|sN7MIkK;A5~fuVOkW@qL3Dav?zSZ^?6xoUBuA3kk*C! zl-5O<)`he#q;(;!3qR72^^=f7zHSwTY7eE1iJ^>cQk`WdIn+tHct<~}A74C3uFAce&j)UdXQ$6; z6Yo7FP2#JB$rbU2KXIY%OQUCq^bGMXmR2L~ zPT*KA(Q!In*+QmHAcvjNGt8+RJwu$VQ*^4*GbGQIy4o0Of%Vy>Y%$?&O3#q+9#c{a zgeh(Eq_hcB+T?T4Fg-)!4@Wq9hE+?WXNa_6tflmwa%#lg53H;8^b+RU89hU+PfX<$ zt(|;m?MQ1!>I`Y^*i4&i3%x>HYAbE6eax*$`|41v5qDH@lxt<_MbGf;P0=&N&mum0 zhG*}Lo?%Xn=ow<=h>v?LIhErc3syDF#W7d(3^A6wGjpZ3iMbM<`I!buIsAe)7JtZ< zKjg|ES_gk<9sHqn@TZ*8I`~8D;18{XKeP`149adjqmYq>kgvHQBc*4qh>=ocq!bw` zMMg@Iu}5U26uA?dcMoFD#(n-_bqFZyAx2-!j6zx=;B%B4SQy zHe|FmOlgkhYFhcdDW+zW-qymW-9LyBfngP*JwNCmxzermx!>Z7Ae0` zLkz!BgZ#=6^1D(vOo!_T9jW|A4O97*A>_Sd8i4iV;k zVJy|T${WYT@WwInWgX;~qwr0&gc+@k7)zDW+6aHDhxHphrr+vu{Z7BvAM}L&s3+AL zVYHS!8LbVgYYn|xJ8CEGtT$^HwQL!!jd{CkFTF+iY6kIr)G}wZHe&ket!nu*S{v~L zbf8XD%a+mFn96Vdpe4y@E#WwxacKE0+BRcGht8 zw#b+*RxqY=%*&_{`wOE&A*0qzWz-rOwML$0K#qbOz&HvbcLdI;#fVSXTw9oi@mo?_ zR*c`WhK%2ajA;|^wlj(wF@w|=#rs(?)h*?D`UvwIN2GCk8PSa}WBA1LYej_lwIX~{ zpE7=Pgjum>(-OWGnaXac@F1hRA=`>+&C`sQ)AE|H1zJHXWe*jWPtMTFT15+$(S4>~ zthKd{*4292UOVWGdXqBt&%BIqBO~0%2sbkJkCYQK_K%GHV-IEQpYU{@tqXLiF4JdR z^9_bK8Gb<-`DWg&`l7z9+nl;xcNnu%-#6w@hWG2A^+WyGsRs-nH2j(2!-kI-{yyZp ztKsQtdGg)Wh-nll88;4_=;hi}n`v`xp;u^2ZKbW1J5l6zgId}tOPlYmM!cn+vb5v3 zhKRAW`R;0jE$x)0&8Tv$$pqsk>vP%N73T3SSjgA7kgsv!CVfHq8W%BJ{ug`S0cSsGxv|sE8R+QBlF1@hS$; zs|Z|kPW%0<=G30r*>hG*@80)5XMS5%U0qe(le(*Fdd@Oj#PC6eiy1z|@L`6JFnkm% zxTa&aA^14Mr3{~7_$0%p7%pe{G{a{YKFjbqhR-v6f#Hh`Ut);$X|VhX!&e!;MsH!g z*SYo8rLWYk?IC*%_zlBv8Ggs`dxpp-qxMIJKQTmB88&}mh!v*U>6otwdJM6u4RpZJ zGIR`Sh1+z$gki)mW|$$H_`NBrt;%#Yh8r=gPQCSOFs#WCtK-1I>NvnQEQ8gFuz*#F zuz+koAhP{{U6_w7G-!AP*(-d05AAQmx>ykht?jvX2d4YdIq`R7PJfoc@ArX&-|qw5 zoB0D6?!&eFGQB_R;`baOgWq!m#M(u)co4%wxOOnp_=P_34`U8~p%1MOXFEqS|7fO< zVGGAHX9UCJ7>;CkJVQh_IF`|DVJvgTF&xkEM7F~#7%&4;C5ZbC5ceA(?l(Z(Z-BVp0PC=PU551-;_W3YG~n8X z3>z_Q%&-Z=jTttjqYIibY|gL+!S&jsi~3=d$)&jmak;vdZL5QhA8z|$fAVGQwffIga!7cm=- z`dEe|8IIy!;m*f-z?}~`o+0jeT%(g&m+yS|M`Q>0He{wU&384uxdUe!!%G=n#_)26 zS1`=|&MCKeHN$HdUdwPg!|PZQ&jPI7z;FgbJQ3jFi2%g2063Rg$J;&3DR{fLzIHpj z*CV)!W)}RaDM3U_wX5MR9`Uih0GyxD%0&9#LA9fh=SuqDL7`2Asq6&1?sEBYKYU8E0S~!&@27XGvt}a4l|U zhzuR*1+04~Yb|70?$=1U7XA;;|NU&|0p>i&l8+J}K6rdOfZ3U0Cx)9btje$fU=7N5 zMWZR-1vrM`Scc;mB4YzSqV#Aqt*8ZT%dj28O&A`<5Mu^vS)MXE(P+x#0QM$m_M&Wz zx0qsh#{^FIJh!^d`>9e;;p7w74T!g zHMFuhnh?@;`Gl?*U@eBV8P)+@L-D4!n&M4Bz6z9k1Al9VxWYJU+_bo#@Pd|MHNaMM z&9UwXwgF)q5Z4?K*BlVn91zzWFk*;n4jR`S5Z4?KR|61N0}xjO5LW{bR|61N0}$5% z5Z3{44M94ifHEfLOHzh*e8~ShWO*wH|<2wFHP&OMqCl1c+5jfLOHzh&$MIqdOQ7 zcQ7FCV8C$`e31t8WX0b*Se zAXX#+zQvMQkpvoRkpOYm!UEPJxlVM~x^8sW0=8p_yB0L=TDKS7wSc&5!NHm%$YaeB zAl4iKVnq)i)*Jz1%@H8h907J`h&4x`vE~R6>wN&R<_HjXEv(_L1w4r1Q4Dd{g2U&5 zRvSU`(bA7xAH;10v8EGnDZ?iiKFRPYhKQk2ix?X48HUd?e2(Gs3}0aQBEy#$zRd6y zhOaV2rUn*%VOUBKQ5QjY2Y^09tmy=889Ig`!xDxO!u z&tiBs!^sTKV|W3>3mIO-@J5DM(+RCv3}-W3#*oi2t?5K9pH*7Z3Hm*TYZ!jX@GFM! zxlsEJ!*3ZPV*$?h41ZwwBSWm|1fQ=6t?6`qXiXUbb^Dt4&Z(ak=Fq|h~WVY`JB_5PVlj&6Yvm*eE#7(6X!67Ll~aSkk2ix=|t^R zhI}SzO{eQaYt39IT5IOI(JC`QjKXd&T1N&NtHd$BV7zqQXe%N=P|sMA;xL+XD~dI;g1Y|V)!$|Qi7OR2x8s=#CbIP;jiZDaNg*x zv6*12Gpxa|CPSQI@NtF#afSiwGOWk2KEo*t&t*83;duxH_~_3K6@GE|rRC3U2d$d`V!ZaC~78Ec|tYi37O-rEjyXTwBJ#_V}bOfk_*hBQ{tT?bAlQ zWJ~%cB^*!EN4Af)aE3)+Fv*HOl%v%sVn`4`l+|HzLfL0^!c@mwMIocFRSa& z=Q((d_-39b^x9t%URn9g($yj>Jd)6KqJd*yNEH2dGhAcXr;X%9R^vQh^t3$Aac_!W zNV1CC?09JAPvzG%D-zgx(2ri|h1=}UCk z(6@yce=&z8HqfsYLZ>n8l#SVUx(s%{JJEb-JD$1fqHoU#!HgJ!A zF2`P(6xIEaxga^-#DCStPHnTVjq?HgJo%U7^RM$bMe`e z`T~A=&NlqLMPh^do%8*KM;Ls5PV)Bi$5ft|JUhkurfmvcUcaKHUD-a4(fRAG%J{X+2%{>-5^I5*hN-iI%Z|o*ypf_-mg}%4PDn z#zL?CE@vYb4@y~DCpor->sh9g<4IX$35&eu6{8Eu7P2XJ<+wyf^aYEY#=33M(>#%t zI{_N`a?+FeY3=!-uSqPiPENLhEp2a3E)POH zk;i>f*`{raoapl0F-W+|CfmpJR5#&?4bjtB=OW0G)a9)vl-Lj%DQle8NtcVs()reN zpr*M!9?$YJRIg<;oo-W?wVvn*Ps+vQHNOxoc641Kn^Z4+ts}JH3Ua-Pli$Qfo|8~% zeJN|4)=8Iti)>o=zqKsS^nYvr{_K7wF&$z^nmg9hci9*Z;6u?IgYtBy*OyLAaKeKO z&*P$tGGf2dImvvAcnmgL-WF(BvPU~@g?;mXH!W%3*g=HwS4FFSo*JEmWNytKdn!+VQ2li!E|nt_E65* zCr%Rgiye`Xvc^)IiXY&2X)4~&+*wGMnkhhghj%L-3$GEU|0%~z3A#rIJ^wjAwFx@$J9B-@@%Y$K_al!N ze0+&boR_6U<&OCkv5R)g_;M_XEjf-nPAqANyeZD3Y+4U?@jSp^Zj580^Y*4lm8XeI zb$l)eldlfUyj)&TbU8<>+7pYCKNP((n{>`{w#sZ^T#`-d^f5?X8jGyvi%rcVTKHN= zXu)Z@Vm36N`kB_3vc_7c5M5pt*9hxZWYgzD(^M~IjfK|rVyhS?9nsTR^R;dlxHsRAVC%mMl zJR~`h)mZbjMlrsY5xS79v>`Hrg|Bsl7EH2Q4r9;fqOa>TPxx9->}j0VNtY{=rE^Rh zjZs1;oP1gMd_C0oBz%!)JGt1l9FMM}w4-p^p6C?gOTEU0WDD^~hxz0?rTQaf!ew#= z&WF?`Qstr85E&_JTwbGMsWMsdWmzV5j?3zDd@2i%`;(Hdj3;^;r|n74i}9siV=Y_e zZx!g5?pryX+%ctjT0Y&LE(@L3m$Jqpt1;yuWUEY8k5`%|T`6lUw62$Sieb_bJ&iSA z>lWi{8KDcwN*f|0Som5;Xu%|_{y*$e-G*%1hUB}7=@MW1ATpvanA+5G={|^F zA->d!tu#*Sq{~`9U8m2f&;>BZL&WF5UWt`5Ih1MK#GISU|8jnUV-eztp3s6dpLntr z<4e89B1>2{O$(2(@I^;>Qr7ilb-81uGHoK0l=4t)h>Vmq&Px}jDwCCafaBTJJuGz^ z3r#I)x^T-0m*hlNW6jt4#rRr={4nXW*p&KoInCGhg%(V*qAytVb)Du3U*yGB8mD#A zWi6ksld*#Mn$~6E6Bb(66D?a=j@&|a$Aqi(L|=GP7Jb4}r+LNbLb8Qyie14XBl?1+ zUSpzV6Fn&lPU}lqW05U}E0ay~iO8Xh!uc7MU!TLdKa|O)E*FoH4ayq{pUR1}K%*vNAdO7}zP@;JS2DQzL&hw^RUSSc5T7*sY*6Hm$-3$5#AO}W@fW6}{l zjWu8E6ys|dp$o}M8zLiE_*zG3!6d8YL|3rXNm+1OU&GN}eHFEhfNg^NnOQJ6}wLZ~_ zZzEi3tGtf%K`=>+J;8Yk`8v%L9g!DXX`I$cm$kgEqjRs1MbjiFWsQZ__1b13nsh`@ zW6jrk#rRrA=t8p6hR6sOzSa?1Fv)5;(G@IpQWl)nm$JqpTMSnwOV1i@Btx{^vumg2 z$`teDWaPP&>nr@kLLQQTsW;Ihp6Ccq$|BEknHndBUlAwk@5GL-Pur9_;cFeC1(U3n z6J5blCuPBDeJN`!vc>SP%jVzVVm!fG-C~xApS*9$OW>Uqa$(??`4{=RKZ8o!&3#wH zZEm>zq>oy@;`fHSwmhBggRaH-O5K;b_V?3;t^@i3Kda(aK380^{(qX2_w#;V%i=Ho zKJEXc*1Al-b)sqflTGS07Mf%P}W zUE!B&H>aQGku8xIyTy3I7kROj#@bFHTFa;FX-uR|<^`s)8ih8g)0pV87)f+{fv2u7 z>FRNYbhHhzt@*^0tr%bGH7+D8ZD~37S9AT;jcm2Fy2^o1v7tuJ+&SBx$sTgWEq3t#I9EjTSl>qTh{luc|%S#Vlk${LGoFT$2YaO8llWZZmv<)c>PU}lq zW05U}E0bM^ytZtbCZ3cv7FySfK4EGry^)USX{`BLrx;($2(4x19k#R~GJ=I)PAAv5 zG>>#dUi6FcgfH@9D~+|CLbR4o*UQ>K;%i!$iBC3U9iZ4q%L_k^wVvn*Ps&NKwy ztz~K4pskQi&DT0Y3r@>XS#OoumO8PO#@bFHTFV!z|1){zzgPM*E&pxn|G*i*uXplx zet}~-rvPt5Su-FwdqahPMeYyTN!}G>{WxNqgwD6N_A0D@K8E=Cu3&gluVply*TNX7 z{3GI%oXBdd`I5WH%k#Gi{BBX(&eQmA138bp4ScVGGHudEQp!W(lkcC`$n_Z_uM zJRLKyos}pupYkH8r$5?+7M$ai9Utd%7O*G-$eolg<*Af@1-rUl{L;L3LWvCF!W*u~ zph7jj{!U+O>2ss`8%qEB@0!Rr48N8)FP0ZC#^2B${^#WM*r#dgk(4zSTG#8|7mS~9 zpNpQxL`zxQD8|<^LKl)PWRv8DuXThLoR*Vz1d9zR3r_1xS!0nchAWdzezP=rPniDw zQuzi{`25}G;?g&yot!Spd7jj1oaiN-^0qMUEY^~FnL_-El8Js=HeD7y;S)~N<#~n9 zNA7ps3iOxkm)Fmig)i+%Ukc&!vdNqyauSDvkcRt9Lu9Gs$ zAvYmqe&3$U10>vvFmF4t$P^E%p(khNV@i+Q)g z`*@0L@|tX~tc>q@(P!}R?Kx=pihq2QI10aM%J%rT)?TT2zW#Vizuf|TPmliO?wQ}N z|5s}0H80c-uH^>xb3=Tsv`o4z#|3|H!`iH5ZOw1W%KH&zb6;9fMrWuO64kY8yo38~p<9 zB~lox2VpJO{G`vxxSRVuPK?)j!?*v*@8{?EJf15V8MC!cAzJH+j_{xIdabD9TCuNO=*7a$d=`!hv zp2nK5b&Bz|jL?N-r45l0EPSmav|y6ea-u6(>ZB|P%JGwy5~$@h zzYtwWR{E8e7rxdJS}^Hoxned7@wJ}V(>Se@E>|vF*_vFjgn6ONKTm&?lw9LPQhWu> zkE8OxV_TDs5ozfSME1?P<|ts_ex)(cUZ-@4Z0szm(K?m z>JP@ZL5T6neAVJDqHpU9pJUQNTvm4P6|+JA6X(}{&w4}Sr}DpNRjkEgeC<Xj(-pqf5n8acud!}dY-payvJLX{a>tv-X`OUg z%NMG{y|ucmE#(v9H?sJDq5$7R_ith+|Nk|poapM93;DC}%C{ozOB;eUUo?20RM%Db z#jv(f_MIu|BNw0EShleoM^Y>Lf{9DVo!~?!fyo$0a)q|?`uR45UsSJm-rBFp<|Wfq zdfZ9ZmoFFc`^!sIUizc@m0SPcT`Ti9|8~K`^2fsKo$3C|@wu#IgkN4OFE4zpCpyBD zvd9vaI?XFa7m_VxQ|t;B8POLk^%@f`o9Ibda9Ur=8jEZ(T$!vMA9&2s;~u@oqw$vh zuOE$jRHnb)NlT*3*SLUxE&UNaDhsW#$Zp!nhGsf*kYbrNLJg-OXmBlb%Yiyebcy*4b2l-X;*Beaat!`*7E7P|L$_(xT;`7k$F|_pr3wv7_q>*`#{mYaO8lr{%O=T~~;o zwl6jXr*+b0krO+*p4O+xrfK3yS!1Dfz33Oiq$7G7YrfVk#@8}JYuU1UL>-gJ5l*)) zJh7qcrH-)PL`L(778{xtp5U}jx-4>p)0_C%#MiVg3!kvix}NCDHmxW6!jrPrmpaWW zMi-JTWRvuTuXThLoR&+sD>e%8sgA!t1QvT5r*+ch%4DfdHcb;x${Gu;>qVciUS~=F zD~~qP5j~AHp9OQE7+=c>T}W2i5E;S3*E&KACRr^fx`L%n%7WASQr1{xi{Z*-Y0a2y znkJrj*8FWVM{=3YI!43r_1xS!0nc zhJTB!*pQe_%6|r?{|8vv_E)r7S$qGt>qh*_lZ17O5;eU7zlYUV|)hqNj1%p4dtF{7!he@QUF=Hl&TT4vr)FKj`W>L|-uJ zh`wNLrw~tcq>gZ*KW(QFt#y)mApz0V0)?ePtv~D z5nj@Mc`Hd>(l*Vlm2F~2%b>sbe}bBm(BQvKl-3biu+(czG`(jdnm$-g&;r5iaWo z>NjMQerZ|hm*x>Ie61t2;Iv#Z8-@63`(jgYS|?o=IkA(j|E=Zp`@BN;?r*h8@^bI| z9^JonDxLw#L+Op5f%%&AH~nXy0euf^n%a@F#zf2WQ^qea7wCSnj*PPkYko0#%`Ze3 zvLXFS%L`xY2rZa&v|KS8h4@-e>}j0VNtb_%Y+Cn!vYZ}I|0mo2-_cgFwPnJmZzulV z{&$@LS_i6ojB?qUN36N*Pjz&Ci@#qjl(*Lw%hOm7IUZ|Q2h%quY@62$l$ZHErQhG$I4GPQ&ILj8t)OZG970=~w`Q7n9rw_koWka8*U$gV;^~Js`!npCPYvq64`tO&(98z&? zs$JM#`upy}Qhx#0<>%+$YQ6GtB(a8Tkc(x?TgNpk$QLQt#v0lDM)QS~N*5$^YUwn5 z3sd&Lpr!WrVdP_JoqPY%TXTLyrDNo8X=B5lgY@?)x&?d(yl_Lumwc{HTPRL%$eOX@ z+JALT`W{L7mVc73_g5dqpKo8Unb0(~BxQ|-*7d*EE7B1?jWu7}D8|<^LKl*iHbh3S z@U@Q6f=O1(iLPL&ld|BnzLYf<* zL>IDAOjr0?M`*#)zQ(#;v7vb)%QkpDesa8GQ*c@*T^2dQe{X;78Q8En@3;3s`@Nbb zOH$TYXkGtnt&)!DX{`C$MlrsY5xS79v>`Hrg|Bsl7EH2QPILuJos1&EKQRgDQhgWuK%?* zNk{ZF)_iTF7+=c>T}W2i5E;S3*E&KACRr^fx`L%n%7WASQr1{xi{Z*-_1Yj!lPxK0 zEVQmK)~@hLNAxt-e32EqBB%L<=t4G%=?Y)#2rXFJ*I2hJHZ)IUrA}<6aat!`*76nV z)H{muF(uAzu1;g2xo=80ZC95`NAxt-{9^K&Ux+SbL)u8o3t#I9Etqt)TrnGk_*zfw zX`I$cmn)MM+oYpuT^7FB5&OcIaxtv+L`Qg1*1A%sdBx~LvW0AtzVNk<(1O!)>2}3N zA->d!tu#*Sq{~{qLY<1KXnfS0lrZB}K^m**c9d8*=9lyvI!dgCEPq_-&G)+7yYb>;`7yV+GbVN^M&DXlc z_*zEjLbB3^$Osm`))87T$!a;#6)bg97M#|Xvc@7?4F49{VmAKfZ`c|5tMU;W)_O6i z^lyI_llzxi`_Jx`e&?rYYDdZ%3$5#atxu#QdKzoKwo#0)WrQvyD{Y93 zVBu>Wp#_tymJ?mUQYU4>X?-bcEV9LLWwQGEYnp6HS!1DfeX(|hPdcKfvF3}c*cCa= zFGLrzQA}6(T1RNX(!R#JU9q8gBFi?&XUZLK8mD#AWi4N!PWj^E7m5s(Y15cxdNVuE zSIO>YNlRo!uDqp+C6U)P#dL+Qb%Yj7cC?(ftLqB!wVv41IIWW|S0<;u z^k=yAIgu1wX^i8UiN6c*zY_3;dGdc%fa(9pB)|8^=QpvHSi;(n;kYI$pTm7f<$2Ojr0?M`*#)zQ!ABJ8fTV3f6WC z(IO{y3dt1XmA{{hN&U_LtIt5${~w^-hWsyr-1kjX=4&i`D$`&8q*o$OC7J^nUzlK~ z@k}w!=?N{EZRKpUU=9@HYZ;*n$?ATI9AV*W9iauM<+Q%8E5uLR7n_39I_a{=i5*=p zb06_Et;;;W^-k)wjHXGRHd(7oae3LeNB2O^U(lFnU1kGhL-B=I3>T6Wn`s^4YaO8l zla7`vW}^^a>xn&$(>m$$hRFUszNOFF|A}(Jug`)}qUHlvt^=Ia?rKMC{Ssri0$`LZ1Uj2tGp3-dZet-A()QxqRM zdK25kBbqkhNjc$yPqt>{<%C}h7m`ie6kXwK9iau2td!D)RdYb>(GaAmUM zKkzjx7yF~XDD(Bq@wu#IL^s`Tny>YwPIyu#8`KBJ)UIkL;TDEsN7ok96~5LHTClXQ z@rK$?+ZUUHwVgt=$cY^#IN<|VVxykL z9sMreN`Fg#OK-K`-S6(b@AvY1c^~-O_}h5@^85Pxcpv)v`NO?${3EbC{}_L?ANphc zll+bR3D|4#1f#1zvh`on@FZQ1P{r)2K;~{?u`tcO@?fvJl_wirxU-NhH zS76`Kf6HI#@8o~#f8p=q{}QzHcMsYHUHmaY_n^B!Dd-t&>z^L<4i5Gw2SbBl{!PKr z!Lk1AU}P}LpBs!0#`w1eHfmt%-~G_uHfuovVV6l zC79~p8(a`f_a6vm2DAO;!Og+V{`0|y!H50}!7srt{)=`aTi<`lHngq$x9sM&tN)?x zX?yzX?GAQl|KE03yQ}}D?Qak8zp@9}!GUiNvxfzt9csq~CH6#nNzlk%YA+4C*(>Y~ zL3caP-VtnX7uiL@PWEBDG}zfbX`c-Cw9D-4!Cv+a`&MwMecQer472aruY%$B8y5x> z+_Uc4;5_%d`#w0|{pfxP?hn1NYOpxmDBLJm9@YpO22Y1g!i|Gh!)9Tx;Pr6puut%L z*f-oY_%7@p4hl-c1H;j_N;oz=$+iwBgs0g}!%5*3+cBIPUT%AYSB6*GzTws3blWey zKD^8B65bO&Xb%mSgpb-I!lmI-dsO&p_?kUBd^dd89viL>SKARK9ZR;b$Hm>_?)HRu z+jv_$I_?+uvt#0m;>+yV_{R7~J0ZR`zSW+RsgtQ=PtD$zz1^N>e7`21x2&eo zO&{!C%?@TK=yzbc)}aw2_FK^P&3@rFo&B_CN?LS z6HQff683K9WOJISWhR<`n5O0o?5)k2*xO(*bTbyC&Gk5<8!*z;z({l>WNyM<%gn;w6eH7Y)0fAlraU&a;IXL%#-`hG zw(r31V{}>otvk&_w4N|eq9;$8Ww5#2JPoa9%(FNf&za|8`33Ba&5PJ;U@UwIGOuB`=5_4OtT1mv z{w?ga%u4Lmyp6rKc?Ww<^Dg!p<~{7q%qr}$S&iMA_pv*SsUP6Fe~7)2`3QS0vj)30 zADeZMUyr@E`M3ET_P;RSK>l0o+nevOw>ICKQsaBZ^GzEs@Iq75EAe8})ysHQO+&Am zSHpN-O|O>O+^g-?GmX6ZUSrePYvMICHN56tYZH5IyiH71Z&PnG)6Hw|wKuiA4&LUb zsn^Nd%2;n}ZwKSNzFt4HvZJ>*tPSu6LF)kTAV?nU9gG$SdxK%&Q139%L%bnqYp6FA zZ4L8=L2I}-9DO?+b4F8|Ga!jM!%V=OG19caym7oa1vAHJ(;f4|7)Xxu#zAYmHy)BF zdMBa}CwV8K-IKkO(e4Cq0%}k3P66js?^JUrW}DN@VKm>E-k5LBFhelsoM~v*nQVr8 z=XmFs!@Viq6mtY-oO8{Q-c)a@Im$cFI}h^bd*_>@y$iexKws!xXpX@wb+I|tyTrT1 z9Oq5*E;YM(mwA_&k(j$KH^*c4T5KZkA@32B@gDV_G#g_!d&<El=RH!}78>V9og9dlM4Gs>^)*EJn!UNiw_t`>kT{g$RJ=B!qxp5NMU zZR%p?Y6ClM{kG6;@3%K&FlTLU_VGLUoglM?zlGV;@9cLr+xT7lE|A1LYTD5}YIdM` z)O5x?+Sf#WKffRB@8s_WxVygxID7hgqOHCByu^^NRIMHnG*j5f3z9skN3x$jr|k- z6Crt$f07wbb2em7^G}1FiT*@Lp6;J+_Vv&5&ocY@XZvTP=ac=(rk_8>p90-;{c}wZ zn%4m_uY-?y9a_`;Y3ReH{-tRBa{qGBSNK=J&NcouuyCz^EskZne;xQY_%}dihCc)R zIsP1QZuW1+S)J?81?Luj9(rCKwp(3tjjhfbc&cIWiatczkd? z+8Py%g5>C6H0+EC#-I=5g7IdD;KblW$iNpdoyiw5-QkOzjh;*nCPQXwFxB*dM{q1nkcvdv5b+uXJ?S@^`QB9cT}L1^7CE@O8|t@O6fQ9%hd)o7yAov8IU~VUIVP*->_!sRkeD z6u?vMM6;!xWG9*a_H=uuX>ZT6=a>$5ioFCqgolJ4USY3A52xE3U~QhAhaTQ)??4aX zEun7@+eZMG*vHVr$L&(|3Z4_-GP?|Lxm}JPK5bt_4_~sc!vcIMK=@MV;k))-(C^vz z(ZdhyTJ&(8{RBPy)P9A&ePe$B{L%i59{yr~K@UrvZ`!-Sg{A}fUdF=rdfqg1FSwUX zPxrEW+4$}i_nL9;b@#ey=~lQEsC~n|1^!C+HaPFNcR;`E-Zfp_d+t5ZtK2H%xz%np z==a_GW^?y}`@qz8|8oB_HQa~pBU9C_acj)U?qm0{>E_nDPayfJ`^;?XK6jsk{=$6; z`YZR9Y3#msUqkmB_YG`*>%K$n_wIYs0^Z?|;QZu%0_SJRBqvkB;p!;N8~S=bD8^RT&T5w-|hf^HSIGF`*gVH;z^wqZNt z!cD?W(Vxx2%^=@CY>(DEgdI%Zuww{MFYFX{L2cKt8+zM4><&(kum}2#9dxg-7wE0S ztsCJJ{BcQ!r3UBX?> z*6@t`n=0Y%;hrWF?iKE3T7`Rud!u$hxG(toh5LguC>#X(!0z9x^9}Cz=DolfskCLE$OkspjDDwD2_aZBjT1t)CvAj{f{3JPY*M;n|R%98N~N z=Y;1#Yf3l;oT=edSUxX25B&4P3(%hn!wb=$i^5A#J1xW*9$pq+j$?$E4?9saeSLTX&diK(CS+!Xvmi4&oQ-zpgmX;i@aAwXWNr)ZfaL|@0?>DcccO<2 z!-b&l3hx4aPk0Ynyf?fTJ-IKu50>u_?>BwI2f_!SwJ2PKqeCnKdBhTC7-ET6&4}=| z@HNwkA__o66s8kJ6s8kJ6s9{x6o7~*%n67nE&_dVe6iUpz9hcH>>W>wr-8mSz7+Ij z@nxt*ykT~yc*E>Y@rK!g;thEHzTXwzVAfF~hDLGqmQI!69O}0<~8oHgFsp zY>CKVIyg6AACAai1}xu*JRAS$>GG87495C_}=nj!(mkwBIsfec3ijw1n& zBLT;eKoi6P4?~_J0mqSm$B}@?kwC^gff&H!7{GB1;BgF)#~y!k_V_*a_#Hg{df=0I_Kx+A1)scm zkG=W2-U;yL2e3Equ{XaZd-Ju~o6oQ}@7SBqvN!LsH}BY+ALvc=CYny{!FOU0eqZ+5 z_hWy(6MO2N*hk-=ee^->qxWGS{Q&mS4}_2Y2z>M<-V)OiKKfIL7M6L-%#QHUUj_Y| z_Zs4y*S*&vLq2*#_R$-c`RJ=mHE*?t*vxz1TL*f*_X#4IPrXm!oqq=3-NJYO8uT~t z)UEe3JaymC_!(pUte=I~NM5_oUb|(l9X>n!^@hkaH83^dwYM-a`|FM2ueXML8~ErJ zIi_}~-NeVt0e`(CENt#?fm-s>cVZvi`d#tN`|PO?L)NJ$`NqYJUA2y)IcO~0{So-@qqQm_+y|o7EyuEQ9&J!3Tkmw;QOcer=V}A z`lq6nA_U73LJfbCKM6-iaf0vv!~X~PXZmNFtq?Oz2Im|fF(F3_TO(SS3O+>(zJI=d zKCE5fUj&+BhN>Jh#E2O#Lw_h{sKzlv>|g0$X?8>8a4q;0GsOP&{`F{uB8NsCIaq(D zKNB)H`mzdjyhtF zI;wKi(Tbyv8o_nJ3|OYvqanv0RXO&k#<52ojyDij}pWl zniJdP#mb1dOFmT1DUgvYT& zYxjfu0b2Qp;wX+NHsM&paV$|Av4n%qO;JR5jv|^Miip9C=Q6OJo9#1);>bl@1nBE}d2o5vy2upDXB;Yh;|M}?zIdyY4%g=4}orco~H7#EI%B*h*_ zbLoB__6;hBhM&O$WO0nx}5aLz^S;dAWK zfn$%V9DB4v>~RrfE=B~>QAHqoa|F^Oyehm3x)g`BLmYA~=;??MU*Wt`uAI?BD zG855=AKn<=gcy%vk{%qBwC9+l7RMwuyd}I9GV{avI8usFYH)ng5%I}F*rdp$QFu2Z zlU5v=Y|W8LJC00zj!dd@WU^iOVE7>97l(@xK|LBiie5btK4Fe1*`;I`Q@v!jlHCAz zFWDV%&yqa>_bwR#xNph6fcuvm0(fZ2p@2h5h5$}3nG86)1R0r<4@*8Y)ua2P`^}-z z1JMI!XtXF=WQIf!Mh}`pqQ%i-b8xgIT4Dyro#W2tptxJy&GhB?r%T*3MwH7@P?vbS zxVPyV_l^6amLj6V;$7oi!Ra6O2i!g09g;`KN1M*^vGK8hC&VWJj)}(rQtZ@)W2c=t zcG`twr=2-=+J$4ME*v}cNdxB8Vc3MBXAH8heS!~6 z(09lF15NE=CyyRs>W>&Qb|l`<&|CN0jlcVDeet$yp8m) zl$Z$bJgVUxNKI1^pR%G5u=9;GoKuF^q8^cyQ7Hn z3&0T1ju<)aI4?8e_+cZw>I~~LY|O9)!*&ciGVFRh$@e;b^ze~h?@_~sjPiCIMV$U) zjvjf0H(<Di#GzWt2Y{OOYbDWZr((|?%r8r#tj|gO&v3C z)EMvLF(-~W%DZALS(}bK$LG6;?(YUn)nl04Q*A*9$jMa2y-pH!875Cd6Q*l2v)hF3JI z-e^Fh`HdcH*06Ed`1Ho}n$&OlW;4^QVY431hN2hLuLu#y1h1E^Zfn?@wzjQf>)Lv@ zzHML|+a`8n+tfC*Eo@8M%C@m>Z9BV(-PCSoJJ^nP3)|UtwcTuYWb%92t?brz8@sLD z&i1z3+dj6h-P!J9cS9b3PrH{LVE3{6+WqYQ_5gbz{Og15A$G7m)DE%3?cw$)d$c{q z9&3-YBkc)xv>ju|+41nLPqHW53HB5_(f-4pVb8Q@+sXDE+r{pPcLaOeBkb|^TszgC zXV146*bD7N_F{X9oo27JSJ|uWHTGJ2oxR@PU}xGJ?M-%;oo(mXx%L)2-`-~Luy@*p z_HKKRz1QAn@3#*i*Z-hhY#*|Z*vITr`-FW8`Tb|?v-Uarf_>4xY+tdj+Slysb_Klg zf7&fjxtd;suER=szn<`n?##Nn?>!T4pGNw^Qcp_MN~bi5!H-pMYW?kQQfFs zR6lAEHH;cXjiV;f#!=I#S=2mg5w(n3MXjSYQQN3p)H&)Bb&a-+x<%ci9#PMzSF}~M zb@XoZUbHG&9lalY5dACqF#0H36Hkw4#ka)^pGCyU0&U~5qD)U|Dhs?*B zb=jw~%d*R}PiLRWKAU|m`+W9=?2Fl#vM*;}$-bI>E&F zeg(OzG2TDDf0}XLTX=^&-h0=3&zywJ)H=L5{{%Uyvp5@dw)X|HQIoyzkd2z^{o;q_ zB0oY->MG7gUE^27+v98f8puFh=hsID>L$MtGEK8N9=U^gC-VsV{Y%)tf0RA)$HK>u&wd;pOt(xoZ{tkQ zOi!;Ybv>;u^cysp{B*~Q+L z*@v?ad)=~+WgqjpXIEucc|EcpWIynF;yNeej#qM_nc~&;S|Qij19{DXSdlOi8OEvJ zRaj+quea2D*?SM?5i8A*rP~-ew_g6v$Y>4rM=}tDeHuoDd-06FiD&i~SKZZh zja>`Z&UJKMT`$+$?dbZu0d9~R?1sBz+$cBRo$AhTQ{08_GIx!e;pVvcZlSy1J?xgc z7xC_Gjr%Gzh&bybHtd9VL_6a>&QM&FlMuIDj5uR1B7!C1v*8=z2jOSoPbE=F?UH6C z?Mr%;^ex%7WWSQ3B_m44mz;sD<*DA4b|bf`JIq~yT$5SJ{ScGdILtiPA*x zYTL-QcSGG(C{6ONvCUlvH_Tm)(&^r{wl$7oxI>=a`-g4sHg|_RgrI+V`xuD4sd&h998JxXVLH`pGoi#yugU`mkxo$Sr9JK($=<7S}t z9B-!W=eBgmx|t|V@ouy`xo&QRyAh>xy_@XruDd(V-GtIqZ8EIER@dkX4`?T zr#s#u+vc5Q2Z49KH^&}^^F7MVLFoeTW;@hv?c6wr$jm$0;yo9#&hzc5xRT@De3UNrZnLMk z?cIs)Hk2;&Znu+MA9s?w9i_{?JM8Ih2Y0f&1Enjx1@VEfA8mSCx!;`+H$ z+?^<270e5su$SWgIMppg`Rd@-;7NOh+sU2g?n3#RV1DqFo$hva6W!e?UmM&OEVDD* zE^d;$$GG5jd$Zfso$l_%&^{emtviC{cAneK{lnb{>Fa_8!PE9u+w}xq)t~ zTY~bO;DO*3`?lNHo#!4!`Q~6z@Tz^+?dQ&SkD)v_crbX)zUTIL7r4jKqg(vC!Q$X` z`vIPw3*Ayk%nKe0R@im!0C$ml0ur|(kN0r!hW*qX=q`3of-^t3DR?CKr~T0#FzK%2C z%!w96OQV;fH=^~?H*pr6o1;6UC!&|5e@6d~zKyGZGdEfoJsG_cy%~KHeHT{+=a%TM z=&9({=&k6}==-=DIP;>rqh--+(aPwv=!bYCaBhw6iIzvNM{h@;M?c2Z!I>Z38$BJZ zh~A05h<=J|7(Y58x({$PqIN$TgQ(q)#v*F>qj8AZ{b)R*c0W2XdI<2O=wZN&PP7#8=I9B)xzUq=w?uf;g1#YRjs7eLoF6?6coVlfi`$*e z?atwLZ{~LAa=W*1yYsl+Te;o&XxGL2#n;4l$IIh)K<^)48{ZQ@9lr~DP&_kU6u%IE z0QvyL`47e~#&~ZQ9~9pdKNPe^h~JDq1wABQ5I-5e6@O;J=;wH7d}sVryfXeAHN)b&;$`vM z@fXI%2gZxzm*Nk>oe*Ca-y1&@zX$r1`1<(1_}O?B=u_hx;``(0;?p)M9Z;l_1Uy0Wkm)RuqdA1~5FN<{rnW334vQf5v z7H@Pj!!loI<7|WMrl5yszR6~?4YQkpK0NbnHk)mfZ4dg0%=g(U*~ZxpppVS_n5~*^ zlI;lkpP7GUe#utLZVdX(%!irM>_*w9px?@Tlr`Dv*=C?uX4YiAY>jMl<7d`p5l?5{ z&aB6)t(w`Epx?>-I~!zcWm_4Wc{gjbwX>~3y_a>_I@va;UzPa;>Cw8`w#H?j%&yG7 zlYKY)9wLD$_@h;^)e#XjM3mnO?>cGyYcKdr+rU@a0q>&wn|<*PdJx_|55@cDqw%(R z4Bj=LY$oE3-V%C~hn00N%96f^U z)uVWtAIH=B1fIsH@U$(Do<=sS3vyZAk;B>=8LaK%KJgC7UiFK2ig%8WLZ<2%JsKOQuJrZ)SSty3F;N8!|I9vomutb2GPO=4Y4SeB?Y8_^0Dg^5Am` z&xdzv@wW6N?_|80@HmIkAL|rXD2XaqOE{k2S$Obz4yPk8tMxF`JdTp*tt#XB_Fi)Y z=KUd<*@s~UKOA%Qk(iT@#>{&xX4vB}lOB(`@&wF@V=(uP!`yZv=CG47SDk|S=rqhZ zlQ6gZ1GC4Om>`jJvlQ z?$qkID{JE3tBrfDZuZ^$kp(MpWShc+X%A1OBYYC_Jvzh3=n7Aw8$5;{@Cv>)c4L6}_*#O!e} zW{AP=P>lO8U|fF*Bljy9nP0=my8`3XJs6W7#Q5_F#+t`5t~`M;9G;$c@<(P~HAlKD+?DPscQri2Yu$8r zox9%M;AXg)?nZZ$o8@N1TfEuLb+@>A?pFAXx4GNh9d3cU6CUJU?rwLFyVu-$y@0KVtTH zCw@2nApTeUQT%bdKK^(7N&IR2S^RnYMf_p>Uc4$^9lsy1jn~C%vhA{)WH-%jmTjNy zknNb=INLPaEZaQWBHJ?CD%(2SCfk-h@a2Tv!t12|uX+(YdR zou!~pejV;B%vVq2u9CaXXDfx~zXJ0bTe&Hk4=dD{w3PxHg=S3E7qX?ScpsY2@b)~( z0oE#)1#F0S==n@w^IR^lb-8R{d(H=LjyLQ{PH;=k3ic?N7sQ))ym!Y+-&}TZcf5I* z4B^0Bj&M*aOL!RaghTNTo^pjpmSqb^aK3OW_Tx`K2P+XRHUoYLNFh2mL|0Ec80gLw~vf zndl$wPxfc56e-PRq=S4;`p?QF|1Wz+IwO)dc4l|vX{VWyoTnXwsODNTmRBsD%z4_=I1@XGpO>5XdAW_Bmj(R1Ead0q zE`DC_;pgQ(eqI*y^YRcsFOTx`@;E;)Pw?~d6hAM^_<4DnpO^YiirKQCYM^YRrxFJJTX@(n*P z-}3YFUH*ANl-SU_5}Dhpy=%N{@vZQ6-u2!M-VAT1ccXWcH_MxiobJuuT<;cd9=;x) z@7?Cz?%mB`c^VP( zDr5tm;nFiWE*f!d<}zfe7y21|LtYj3LsLI^1@qPtb{!S`HPO2!6stu!(;g3^9!uHZsGOv_VUQ@o`!qyVeeIME#Ab` z#LC_t8LXE_3st?JgK2=PD0hLD7FOhCPQtp*oFpnQ*e@x~C#i!PDN0S+g zbtH0xOK^tkdGEmbsfwGEjK*ZHRovWBp@%0|#O8=jN|c z247F7`0`MDYsr=Lad}>uG%`YX4!^}6oPV;aBRh9h=EBU?nK$Bn!FQN3;4|@4m6yt3 zt?cZ8G7!FB$9}BzDc^JouZ5+2)Bf<8RR)HhTWWuR{It{Hlv>E*5WtK%)=Agtyq zdu}~^^@(Swnb{QYMi-kW&5Pb)khZ~lX!$CpR^i#jYE;NoGqr=&R0`gw=NW5|e4LA_ zc2Q=4V{dGK$- ze!bvdu)oBX0Imq|g&JD?3~+sbFVxWPm)tJ(@@w?+eC{RUZ}g=)M%YaazOckNzpELL z?+N_ciTJ91YEX(VI_ttV)`bASV{!I?S6QF&dW)BfD1T}#SPoBrmZ$Z0mQ4q zHFW_|>W#fhqlD(;Yk^}-?;Y?ayo2dfsy58C$zBy#sQli_Y+Cx2?0DPWs`P8xvFdAk z{H6C+xVpn}$IDKu#b|F}>XiOeVgI7^i_)L)wtffG2Dm5hEfICJgnUb6lw+)pp&f5& z3htZY`b{d^w={>yUiw{b|B8Fl0G6BLKI>*S!}_*kaIE;Y4!T&|2ruIhv~?8jg9hls z0NjgPqg)kzZfts$es2brerGl_JC}Zd6$pdC-xAlL4bEv3NauS+=eWcSrz35o)Z?Af1!s`t?N{Q_$~yapXNqUpJ$01$y92wJ<&K9ac45 zr|(MFm?N>mV^545gYgccInGlHz8-W{_B6ZU95vzAx54w#5hGTAGt#t$WGkHS?NB}d zZ5#)>x49CnjKFz08)FiUZuRkIV>65i-5@;_=VBAcH-U5$+#8)u+tN<}$KegfZn$#} zO|D1glyN+O>Ajt)Uizcyf_}?h6RmgU9&CeN$bM9g+5&4>w!m>u zH25kJW7mE-#+EqBj;0^}HpgE^?H!n|g_WBb^rbD1qy~9=_>@<>`#|)%x9Nbpq$cjB-jL~vGtv-$eavZi zTDHQskBwlB-f;ECilB_?hig;cjK@Bjdqlk&g*&Dr^atTP%f9H{t~dkjAhjKOxFycx zR`^PCQ`|)Z%vkJMoUfg6KQuzG`eA(87WX#QT#4@~m!Q49%(37ei+g?m&fKQ3I}X&| zc*-|{wVj}QI(oS^>joLmF;v!2lGyM4DHD%OZN=z zaz@+YIFfrq-yL*(wCArNSs3vD$a@p;D9dy4`+nb<$-Zx7PY5A|kewui5Rwo=*u##1 zh)5|SQfd(`wbYV`OBJcL)>4nPsMO=39ExZaky1-3MT!&=5s{scgphrmOlJ9h&rDc? z_W#%OZP)dE?_9rR=9y=?@B7)8_Z?n$^2#O0)hiDlO8ZQ7n1n6DdH40Nn^L;oUC;09 zQh41`GF6&4V^OV7E;V@&e+zIgB~_JYSy*o>cKa^6Jd8HuktbbVpv9ky&8J|aMbwcY z_z1*z2BpBIi%ScoiPFUtyZY| z?+)BY;yMODNzSrx2dRz!AGIv^llCC;d?uw%wQ(!Czjha;Y905o?&Q8&?$IWN=P4=6 zc$bZ@MYzqN6e_nh)Vtqs5A8FQ&rdkx{X8L7;_o41*vbFZlqc2l-+UE0-%p{P?YjA* z|A}(qN1ea@HS|WQ@uDuNR|NKr_{u9E*X6uoZ+YcY%5S~`NaOk|`o_ChT9jE13+=q? z!4n2(_ZXX2*H zZYJe9i}I}QEYC*XG+NOZ>h%AtZ~dRuoByw-l|cE;bdKTT`Rf`jO(6%ax38)NN|X@B zaaPB18OvBEj<$aoxsXeKxselmNBeglIi^OigXm$L<4Z#EbQtRPZ0gPwd6r&o0iZN*; zd9-)sv?^0*sZB_vVhYFoSz7Vu5~snqBV)a+GA<3?`B~aW)khAb#E-!LR3s?D@3Z(;eU2KzsqwOk zDa9$JtA`49N|uYi9HdDj%$?YE5qhdQBu{Ok)t$i{vXJ=HnBCuTS$r9@b}GBmU#Zo- zP-Y^|+{J#}0YE#a;xpnugIG%$UFM^!y6Yf?5W**Q2g=uvx4+J{44bW_Kl~B(eFV8P zmRy^_hIf8yx4T zLC-l_zKQ>@gz&@m5yaL&_y~5voqZplc;TwzR6gP;yGzOEblROXp12Xi6FK_kVOp~M z3t1B#7pa%CC4)LKn7TQG5>!D?Gn@Wq3?)I0rCg(^x%?kUEgg>@X}G(_S{2R`q@K2T z+sn~(`-^gtLY<0tqDCF@PM0)VqU*EaZemfNN-0B0l)E_AJgk(=LQ+=sI@-}L(;R1z zYYLi;m*LFr)jVhj(g)Kf22sP@s9`)c2tU49B_AD^+%B8*vn%Y^#n3;#uk-Ou-PAc1 zT}sHkct<^w#Zv;J9AA=0q2lAHaeRqOD*747nKJHpn2J^AQ!2J%-&{UFEjq1@Kec=` zEy$l}H%2g~`~%N4*@=brNH3q&ykijYd64IE&XtadE7;Wzwy0Vl~Q`E{*m<`O59SOPC2~qWf2RdFvQX7deKwx>g&V&@vC0`NafD#kjt5p zTEAgbsX`Eor^A9|p{jiK>E({=Dkb}kbo+E5ogSxL{WST%!zXrWbguYhVNErcUuu6q zp?ULU$6Yc(TcdU872F-c3pa1qJJ#FCUoes<$@J4jl;@?CZJrxQsVJo8s=jt0Ru~~g zl=d<7=HI1ckHtoQgnSokO_iyRtB$MAd4Lc8Mqts|v;h;z!^@0ZDyZR6#8FIMj-ZZs zIqdxPD$i6Md1W}yF%(C>%z zbkhkr!db=w(a4jOlSsdaRV=FnIvTOvT^zv1^-@`fy0M!y(JNR?5^|Bo(p|Jcnnvo!L=_38S5^=T~g#|7YW zW1i{wNV&o{xzflx<@b7w*TdX&xjADm#+Q0IQ@!rdSw3%k__{aryI;MK&RPDlsf}tM zLG9+Mbu)G1F;Vm%-n)E_#@qYW+_O@1=X)Q@u^Q7C(rc?P*n-xcQ~#Xrb*lVEqZ#PzNJBI7 zpZGQI%XRv7%0d9Q4_RbWSAYcloFU`zOv(AND!g3Ek8|H7bAxl&L^7XH&Rp?)!9Bbh zcmHacPzEZMm9QROfHz?u93#baC8#qRq4dpOf#C-}Z zhBZLi?k~X(*bgV69_$Q@J48H5hr1@kvx}Shy@0h%FXH!J!6wjB5ns*{`fd{OLvBCh z_Cs#JGC*!WeCi-ePI1oA|fMIzBNY7wjk-bbTHG&YGY2jY(= z{utiJ@IE#{B+d))6Nj#G$Dsz0H6B^x`9A&B7@%%NqP~s0r4ggZxZniIRK}iL1=;@1d;%IB$HRki(s|L&2r~`cry;|% z6|f#&fHz<_9Dxf!I@3vKI_XT$gff^1gqgk$NM}0oO-G06$TqzOEFv@fAOUh<0xW=4 zKsqxv!w%RFC!rqfA~S;^2@0SBmck>j3D9LGy39nEndmYTU1p)ntVl=)^q(~w2r~=0 zW}(Zh?LZo{NMlxm@Tg`82mH@21$3Xi3`k@4^YA8o2&X{#N2WQ*G$#?zW6l&H{yF%c zga0{iz#cdX$TX)-WG*tzMW(qaPy{n!2|Nr>!z-{84v5@=oOhT-=Ar-mgCYw^`%dh$ zkbJz0FpKbi_iB;F*#Dkb!2b6j_mX!+zC+lhlSICoB(e;h?nUL1?Q^~^3f2fqWHV`RChg6ny_vK(Z-w1(1kibNhsbX{AR4gOZ;3#9dX()vAVy@7mh>=60SR5%LNB5xA!o5cGj^1az4 z@?ScHL5s*XBZLF~w-v#3SPJN{ZKKE^h<7`Fw!b0r-;;Qh4|41{A@axVB0G1Ayj38w zD<070?WaWESpsWB{uBToioA0T#joPz5i-o3Iy-0H^AF+eBk*tueON{L+DR z{AR)mSO@&Bir;JSE*u8J_z}h*+59=n?4J#!EC*x?d=9q4Za|N~3xG^P9)KP} znNSAE8oWxh5abLY?vRsEFIp(FgyI&8?4grj2|NPN!#3CtrvbT{18B?vv@qljL+-Fe z@Gv|LufQ%i2>1^}h5=rX00mG1#61B21Moip{{!$p0RIEv?8!arxi8iDVYD7zZ6ZVNV^ku;ADaS+`wpg^(g`%Zx6fK?fGYFrFT$%gfB-Ddlw5*+? zWp4w*XCDXR%eIJ?;|1uHgHE}~mP^>&6u>PPw>;ePaLYrUygWe8JY>&X1xMk6Xd@mK zEk7IhJQ6=6iMwDrEER1Ox{SIcTHza_jgE&GL@T1a6`c{S*eY7d9?{150P>cu5N)gx zo&aPn+acPxGSSMTMH^3<8c&&-unsoC79dY19DtKh2NuyL64%67$b?cLUnVXC(wz7- zybQ!U@k7846RV+1v`HQi38_#7$Uiw94v97unJSR2g0vaGYtx<+Z93^sC!U$;K6@h& z@7xlm z_o!&giGMlq-$$JHBhU9pf7MFSzWF=M6`zvi}o-&{}8veCq#SX5qKIl z!#2@=oC2h`E&viCA4p>z@~wLq@Vo96z>YuZ5RGx6_S0A(FMnDN3t$ygiMCz`{I19E z`U9d>?tuM(?JMiSE?O13R3$?pOozpyJ;wXTnnc?`_zhuzOdEV6|vZW1FW5`!r#nCf=vf?-@VQHlpuF zZ1XJdpG|-~m;eg_9iBZ1rvceE5yvLt*z_jsg=3=qd=ikxb4x}01+xEQw`kAf_RDC< zgfc*mUp9c9C72)}ofk;w1>AnM4~|2PXfJMn&9EIlgp*J&+OJ;$WMPb{{hIvybsbnm z+l;=yLAKwti1t#KX#cSv2=gC=d0Aiw;Px_ZFDo~~{1!cb8xPrlY`>ig%i$5&2&DDf zoq$}wMZe!(0`mM7H$eASQlJnjU@@!)=wdqDTjH0yjzfW3t_hqcFQ&(?3SZ&0op`+ z75!fgf97RWz!N~&S4sC(bbS?FU%do`ea#4AkPHPd1s1^rPzBEey1s_4 zuN{I@PzPP2z3u^#fSq0^?CXSmov^R3gh$~y*aExY0GtHEzHSz6s~1E=I+VanSPBor zQ}80Z347oOoP!q8ey>9aBtbq*f`zaO)&ugsu^i5b_Mfl8aj0P_5L>>v4AzSFUxfKD z!u%Iuwz-EbI)=MPPyZO6vjgCGe=cRO)xCywpJv7K<++l0py z!4B9j+Kxie{)k?GoDInH$8~@`{)jFANZfx!r$1hR4$*dcKs01R8O#H0xD$PLBF|3j zuyZdQgK98~_LdLCLk>)Ug@7z?5#}vy@D}O3^)4KO)6f8R(RKwu0uXLjIgr+_6@YxZ zHo+Fy1qXoq+EoV@(cUJ#w_^br-!6r@K)AQb=eJ4kZEW^7dG+>DxCC9Iz2gOhc_$l4 z>zxIFjPF#zi?9v$!EvYo()p7gAm5+zU=l2X2Y@ht!WMrboj+l}KOKfM&?MTs0zr@n zgnJizFn7}4#fI-9-@DJjYw!*ngi}xtR?*%gz4x%=d&u}+8DNk12=^X#e2?_rdlUA; zF{lQ!XuGk+Zo=%whPz2?_d-C%-5X#tY=;lw1Yp12r1O3NAm97>Fa;LFY9P$}*y4TC zc^~_|e+14!i)edv2!SLZ+#c+)hqU%!!#&8i=Xux)@4_KC4Gmxy?E}*L06Ttwj31Q4 zJZ_96F6M^X-rYbte@2FVnNSLIVTEXaxggqyuZZ^7mtY6%7wvD+q8%XYfn=zLF46w( z0b$T4+Cd}m{vh8UBtQP41M&X@Jr3;>?W2c9JN$%b|J*Lxk>^DFxJ0z0$ageRw10(* zc5FHz%O|N|7VWqf!~(K?x?Hpqg`#~%KAq(I&u5BuYOQErtO4XWy$N0u?Mw3e40@bB z2Iz3EPP7YdqFpQ!?b0IAE-w?U`YF+_AWsdt)m8v$))99d@2?VX{W{UEy(n4(@-{vo zS`%)~#Mz8YE$H1sdacOTrnn?p`*Ain>P72B*KXXpk+~b0y9v`h7tTP7XlCqVMo)7J zke+!uEP5*yIC~rQPFI?x1*1J3ZRptLexEd>K7Vy zZ439Mtb|8JH*k-NVVCH}QkVi<-dqDKK!=lH}1=5P|5`ExS z(G!p@F&dC-FmfkxR(r@|(UX^nKD0{olov%G_Oj@yt3*%pgLvRRpY(&GXY3R`^MvSG z9ik5p51Ktrm?*(`b-W7esHqrBucjQXZ3y62rOQILzr|=M*h6d3`3-H}& z(j1Nd(b!=$wi#Uwq*>$zgfChT#9j0z?17_zpJLpK30G1f`j{!Amy+JtFhJI^r=VW+ zvJ0Y*!~Zz`mv0h%d=e0r@x4Cr4cHC%pNRiSe{^J_S9d z?1vLj!}FyN!x_;T$LrJZKaDt8XV<6UpK-m;I=en?FC2$DpbSk9fh5QmeMYqCGqa%t zX2N1v4Nt)=J#J4S0D^hpa_V6?lM>h z&jaz#CH}dm0RMLwArdm79Ol6aSPw74c0m3+@P7yX=iz@I{^w=G1Xu)X0D0yi&phOr zcL0!o9`esep83c>pZMn!|NMop8nEa5R{(pm2CvUY{`the0RIc{zaSM#U^ZZ%J3RnD z3kiD{y4|%`^hMb0?gSv+yX!<>yjApjCIM;OgS<wE=vaNaBmI} zZuw@>@0$SVav$;Ew*g*)9f0ol5!ZdlwgTN(L;||3ctiC2)8UxtE79wFrGUPxu-W(5 ziv9qyKX6?1A4Efo=&K34IvkK^HQ%j9uhq)|xmG_1$i8|v9DxhaA^L+JK==nq@4+&d z2P)UO@D3b;GteUX4~-BGsZav5fpYdk^6-bx1NQvk z9ykh@piA_%UJwh}PzG~>Fl!03mN07xvz9Px3A2_kYYFos!u*IZ?2qU_B42*A03Lu1 zuoAmBgcjuD2I8l4Auhqw*mP#Aj<}1*?=tU=jiO`=#LwLu#Y3d@b^-FfdJ-rPuUbTZ4ST#63z>j!ug!*K zfPAlE!`EJh9q=I_$7|Jq+|2)V=KuQZsZa#S`T7#T_OCwyn_(NE+v`W+0zK(9CQ z;a$=H6FdAT^1itakomvX0IB>Eq)*B=rAzkfi6KP-mTfb4&G33kE(I0^N_HVF`B zJ7KnGLmAA46|f$Vo4r1L`yMz3HDDF}zx{wP|BbHyjqLxu09L}IqVI?VWZZ$D z04rfPAjgLZkONEM1vo1DUv&t9B*+JB@z?D@{QF}e6G{O&_ao;dl;U87vT*c-MIS15Kj;U4XLick<=$YXSZKj(&gN0qA$|5jX%R z0bBe7{r-X5KZxTWufaQT5KcioSVceN2k}7JI#dR8VL1@)&_u0^eekXuc;Qj7TIeFSBIVJ9sqQ^8V1YY9ntI2r9KnZ0%_Kx=QZTH_B7Op-jD=G zL~ksGouW5k*QTw2U7HEhjBQ)U+g3kFfIOH03t%NY3eUklI0nemiac$|(}w(QDNqR0 zVFO^RwieObAAyaccNhVAJCXsJI+{f9Bp*7_u`?0!;blP9F5>DUt}bNkE`wd7n^OV# z%-i8ZI1bg&C3??R(JeD!8IYc3ljyzWU=iKw1K7rjy=>{Q2aW(Xvg6mj5l-HMnfJHg zFpBO7fapGu-;o0)Vi105NxH;fTmUP@V45oik0oO8enAX=2gKk%30{NUa7+vVn_!C= z0{M0OApQquLz5Un_KG2t-~0>ZSt_AzVhAgQ3fL-!0m*=SM4}iX7x(cB|4##9qj)+A z>mG)v6exn3unZmn(u*SfD1Ple>M#&b6!Ay%yY$hKkPfAQ+|euGQFtESfIV;&E{P%L z6!4sufgxf@B)vq^OC-HS(n}=0MA93)7B-3@sY(n(_7PgW)nM;38pVW;d^F%0J^HaQA($gL1Vo(I^)Fd_iT0sD=32M)n$ zG2}l5#5EEo10)3qab%I*?{DX%^?hBv=TmU_Cq!DMs#M0q8{h!&-9#^_0CZ!&*D!G# zSj8|Y1(0zPHlB0@&OwtHCL_aS!cRv3$@|1G1v^c70IAo`#p;O|Xbzb}10&>_xB&*1;Y?wmE))`yAZo zybI{V-nC)wqkz71Pl(};Aeae@;Q`nI`@}FW0kHWz>^JYU80HghKK|z8HXqy0Cyn`h zw;%u#f$tV9g@@rOcnPr60^(Y54A5(VMGSZPKrCbeao$Opx^p=^4_g5_??m>6$i6Th zvH|%QqSr!nUxZ;FQ zyVhv-2#L+fFDxB5e&WP&g(F6dD;%DgnLK##;FOHysF09gt@iAtD_5?ZJAJ1;9J=_fj1A=P~sr&*-r)E!A5Wu)u5oMKV*y0ZuT^=r)z{az@{n9lw@S_IvV#|TuGb?-{4p(nx5_py zH=dG&TgcbAaaQdXe?d-vsr}qqza~Ckr&~lnf5lEWb3ZrkQ6ydR$C-wQ@Q5#sR{$d- zqr~2Dos{!88>Fkn8{Pdq-GYDj!MhS$sIAOpkUOf zQNy!_4vdJ2i@LjFBG=TJU9 z0X{xHK_Sx7+GX@@zN)@&Y4`H-^$(P^%F1Hhjl6X4s5Tij&D_I1dPbuvjVfEMoed{H z``6*ahd=)0LZ`J`UDqzhghxe1MMi|@m5+WXn?d|Qhnu3D@xcmcJ zTfNlf;~Nx}lA4({JT2YZ+Dnv`++gZ>EZSu9@bK0h7tUSas;#+NW9zjU-L97t-{$7# zj>a#Jo<7&s#@k9w@0T+}k^A;i!qb9qyPm7>s9MwBO{r|Tc8=@vmHO7!)`q$!tEYcR ze0uH(vSd_RT0#<6O7_S?u7ZO6yxeFn&AqEWF{GOs(Gp|RJ)+V|3b-Vds8sNP$~iKR2t> zP3xCOMyFeNKYwmcx2!(5N|i@`Eth&iLM)eRo7&pi8mg-=bJbKg@S&;pa&M5IZ(vkv zUYOB`VmvS@*316oU;p~oQ(b<3QCX-zI>~pv_*Xt2sM=4X(ZtU)82IgUi?!EL>7mN7 zx}Dci6`>orDOWd0NQg&QW9_BOWNuBn<{K6s@|d%3Z&i}my4%~aQEQh)UDnR#Zz)>P zS7bx9fcAEaxchQ>m`pr1u)Y2NjIg)nO#rcz4}CT_p+O}s8=U$yD}63rq4b>l;uzP7 z&(C1ibEgk~bm;wK?hyk514AMrR4tB6qkBAIc*MM+;-~94nCc8A87T?Ospc}QK*J^du z3caeB_Jr2SU~RvA=F87N|NQj1x~8^9)u6OqHEHxBhL8YSDGyU`uif0)Yip~ot*t#@ z*TL1=Z83Uzg?M@S1q4S0hXw`(`}!E%+^yCdt%>Gwt7SY9;`Y`-bGlvcLukuswUw{y z_H*?#E?@n7748+rU;kdk;B?FCSKco=-TL=jHmBS5Hp!Jnh$Ipp5;$|JLFH6UBW=^= z%a^z=T&|-nsIU3_)TzUto81D33`-yGx-v3`4ow;u85J2kYsRQTRrp627LK1XHZyl* zPG)w_@Z7wdoZ;DA!*jE;bF;HDa?&y~vvTtCN6=c08abkP+~^S_MiiG#8sf0)Z5Jh_ zGDO!+ZmP=IVghdF)Z@jN)!JEm?(-ubfBf;$<6ky*v{EtJd%AlxFN(2&E}Y!*4hRhl z4D|CdnLArLI~r(IuGF`Yn~WlYy39RhORw2x_wn-fa#z0jMGH-*b+Nm&{#0q*(okRD z(9lqG`I_0<-P+n?b8}O_X6fN(G-&qLhARzvaQKkCl9H04J{|4uz4i>|yBb?&?$prpIdU>FH@}Yi;jrmkxS3yUk&= z_uBBJ>td&B*Il}BmVW1pFV41i^>(+ka00_OBs^k3NJxmgN$c(EGVv}vGMJxw@ed3R z8i=Zas#~LD3-t5%^YQcJue%!jh-&bA>F;TCojH2FBz2I>{mYwjxxKt8xBlhLfW(h! z*UQ$gv6R+nttxJ7tKqtI_VlR}pM3JksY|uipojsXK3;x)HjH@fT0=vZ)h#e4Vc@`l zNol$HMcAz*H9d(6oSHQv-ox7%AT2VWGWmL*i^FQhTI~!duQC|3MP%ov2iscCojP~n zYP-g7iB@^oI_W2@c86XWpt<{d_hlu`Dp!@*o!Y*xa?;R5U2SM-@9DMbZq{q(sNQF* zYp-4Y;>*u3wsl%MyY(*BsyDUQoWFSaT2oU;OC!2muCBh;(A3)2?h}-lnwpxKHY7bW zJA)P`G0KNJQdwZ~^pA{;91t3e*?pXus~TtunC^@9{Q`sBy4xG->gvv(KK*5_8r58> zz1(AT_we@jeB4KO_b}?x-P+mH(`$FNiY-dk^EGID_KP!I$3H`=i>E%lO4h~XXESyl zHasJbD>wh$KXd(c-@zkCj{N2QV^?eH+~T8@7_srW1Gr+NC;&kb1HD^X+duo@um3oD z^yo)_J*2|C_s$p1aGFaCQMrZ#dHu@)Sj!;&NrbzOL1FN-L z9KnIAn+ULLj2o;D^+i>o@}xR?~X^Z=I1Z8ehvO--sjzH*tSxv}PArgTc{!;t-<9TkXh3V(U^Qpd)hM&_dqMtt>r(1vd zs6B)Y>+`n^3uZ;rq?#SJo*r7;E;E-^O)d4_F0Z)gn3B8a&z>@6%FG3GXL8M(H@z%L z)%OA3{%SB08HByeUd~$5XTrdnCbT#*N+%a(#a7*BqoK}TwXY@RNd=Vm=5~artGmcm zeTlaXS1xq>1hbp!tV+j}ju}G_OO!d8Swp#o zqzn$Q+cfExrIo`S4rh_jtvB^?4oYv732|JjrN_V4&_Y4$v~)Ame=L$=tHa)F?y*?9 z9qvAXF`@njzW`TfT9u+&4!fOpg&%(o2nvh1e1&paUwidRN4L?}S-O24BuE5Zc#JEg4rMTFb z03Q!`H(h^*th=TDc@p2v(b~;fw$6IKm|Q+@xc(K_2I&j`w#sEk4;{W$>SJx1ySuxw zJNnwU)6@5Vsc4|ZY!&ywAon2J((d-gI!o*SCAzD5sucIC5v-xN$J*P`)N1bOvGlez zciG*ThHJJShru%6e(GN|}iL`54?Y~Z_?(K_DPBX|kbN>8=>YA`1Z%=D&2UF=TBRy9@M4-x>@NoCg zK!30L3lhR20Bx6t$<52h{rJu!9TY{)%|t6`qyMKvQG-4=-Kcwdluw*8k!3GcLY)QC zYO!E>Z>_lP^Aok=Yv3pH`ZaLQcp198X`MEcnN4t6oVt~Rz>`GJA!QoDq9Dye?< z$-|w@drVc&O8RZBD&OSZ(qKxRdH=GCin(*=PFuRXBC6Alyf){Y{d#ZCyq@K~j-!A6 z)SfY>G(9}b+g^3Ol)KvTIE0~=^s6~xPPaIhn|k_*c&iz7brIF^UvDWM!5Y8CcU$r{4}5X_(@#G=@!1!(|IT(^K4S4uOOATgP3vWu+?yNRGVb`n_h!#txNzZ|8M(n- z&E}qeW4%ycds{=5gxu1$xH&Bp)@QY1EHuP!>1blW+|=H~YMCEd?dNIGt{(p2gAe|G zve6QlNr#Z1 z?)2AxPI<9kd_PmAzo)ac5m}qNY-%aPYVT-ew0rTwdB$<|76((XfPj$DpwQsZaNha4 zJM3ro?%jLv{YQn=5FF^ZSUg82Mq2Wz65jc?d)i4 zyi$Foy1sQoppTEW{`|Q*#@Tjn+V0Q*pGp>EZ?UL~@OG_jPPgl`+2t=jR6B9f@{@P%2-$5a{D@i&_Z!nf!^KHq*i+BTRK?sqh+Z(eO3LfZa3e)c%Zvx zoPSZWH8HL0VReh^b2W=Qf9lf)hANSnDT8BTVg?OMQR6YLQKRxl7ZqXpf`X!wq9T`L za!La0UeSp|Gs4-U@3}fOh}DZ0Q&jp$^?kM^-5kl=b<@q^O`htYoFjRjFc=cSpk`n~ z0wx%g5a}Q2sd_{%-E`Xs-^ZuY%SZJo%uao{$BZ%cHC9z#2F=oP*{bz4H+DXq;u#hh z6zJ#YJ0LMWnvOoe&zGe&o6TaetLI1Ay4uuck3;wJ^Y!XmaXzY~@oM_)<9{AKezvhq z0@6nmsL|lf>~!YlEoI{TxxS^U2AgkicwBO3etA-Pd1)cJpFd(mT2vx$c$=6K?@f1kQ1F_9r`9GKkPIy!I3?I<;{=v$eJ@a$zoe9O{$)nJ3s z=;0p{LaP@!I46Y(S^NM`2@GUC(9lcK>1t^=g+v7Q>E&vJvq+5J4d;|8Y;O&ykykPsWkN=sx&aC~}t z`jEur;=*CWjKdQ74UNipU1wR}A)b+0S(%xc8R=QHfdR($y7OnxoIYFEZq=${9kyP3 zXJ^y-vuDqqJFk}fTJ1g|G4Zj127{-~s+L!7ZQXo{75V$Q8J%u%eQs*TvtIY41AhFL z)|y{OAl&sCp>x%3!swiwtn94eIk|Zw^2w2r!&3$i@L+_e8NGc1{99W(O+k?{X+`Wc zO`0@`4X0`2X&@(7l;mb5NBQZNq{eess4ic&AairOBXr29S>q}yCf#}Wcfa@Gng<`e zf6*Ox+%djL=BRxoRydHI?8HgsT%$(kvbs8=uym+jU>H9!6xTOsre%}fh(LpdE|#nL+SN-8 zzt3N+u4}Uy#93*XDSCQ(d-yQRiiwF$N=o$YY^gnW=~C3Ca~IlGAdAhzYP_xCsMOqC zE#7&hi=P*j!r&eiKWK1DT*SB6Y*>HQ{&$-7_BuTL856Vk=H1)t9N&H`J%{#J^c(5v zs;j{mmUYs;a;?@si?!YkI>wd`GG1*zhlE8>nm>=>^tkfU$y~*Q19gUIRyAktYH4PS zRCl#UGq@Ryem;y&13f(1$yVFWx_DGp`k1@}Ij zh`kyJui+3ze2 z{{i%T141K%Fo>tOuRFhFgh?8Y?z_b#RNNaTsjv6OBoVq*GuNE$=w}mFO}%`m)4?I( zakPig%rQ+o&b+-tGq`)Z=~Wsdu3K!xvw**1qX4Jd^^v11|IJRf{wqw8PPgkj@h*S- z(irjejqc<(*vM;eY($v1huPf2@=T$%tJjAa%CL!Zrq7x+Yx=yo_uO;OoeL&R7(YHe zy)Z4ChIx4A$edxRsZm1)(}@hp$QxU*Y))B0Zgv`bBY_r+$tyCEty{KSIX1ynHC!#a zirUQWv06Pt!%~M1O}%!tm+C8h#YFAHvI9&z;MTfiRCIvJZmHCaZcZzlKtlhKX{;H> zhO5~(8^3B@|8_B_-+lMpix$k7TwXS&AYs^$Awwd=JbgZCrr-B!1!6idmTZ3p=|4h`iEppm^l6Z zpOnjbcIDLT=kkI)75m`*-~YktA3U&n&6?E@{NSOr>(;GXvuf3MR%=yWX-yDKYrv#KXJyYyfGkLTYg&U=U`=CY&Wb|rMgM>O?qwC z${3%}z}Uou#Egt#8Grk5-@d)??Fw+e;Zv&`sOk`{hgWc*t@YZ~`m0wi)nB=A{&G!Y zC#!lkmT9y~wnXt{W!I#)ppc#S5XcJ|O_ZxSAyrcWK^hV`bx7a}Cz$tZ6bB8RDpQ zCYScHxVp*^hnN_{M*A5|z6>-C4qtw*+|5+w+=ADf#psqcdje_SUW!VbZv9Kq7^hqR zQWW1W>}Oc4xHUY#AZ1`AJ0iVZJxJJ7^VvW5{qc`)z4g}HfBLY+BP2CFGT4*xo|+1_ zw)I*%I=eb;2LG`5;IPO*AFDmdC)nM~*UuD{Svd7>`u~MX=TFWn&K+v&>~3#klc9&2 zY3&d*HH(WLn`1C`pMa>ypdh1Wv^TbJfUVckqxK^#))rOh>YL~@TQ%ts6Eh^cwFe_{ zxh1-}ySX_W=i0kktpn6SH*d9Y78E_q*PpNT9-D`+kz%9y+}gthlJf1N01v0z^;w3i z=kj*CUEkq#xmlgNzFLqgK2NN*UXNk}VS@zSk{>+fo)q+czHE&7ulsU^GcdEc?&69) z#5tyNBT}^+;G73U#4vFU3sl-N7GhxPqvf!&iKDXe$1VN=*NVIDnu)dN zE?9EkO0E?vmVf8Y(xI6{(xL+<6%S#I7?+xzKVjCg#awgdFDx4|oNjAa$$}NiVZJP` ztQ_2TB1D}$YpSlRYh)M+md-ANQM$~|V^a>SOXth7=)XNT)zxkg zGS7K#s`7fxbe)6A>pKVYyef58H3skLV3DD=rH7O}Jc5(+3yMqnF4kq|FT7*g*fMpz zZo>G<^Ck^S^y(Zuz|Q$ai@Uo|oJU$NGoUfUWmsippi2?P_3Gpni^B#(Rfw&ptMSSu zlQ+wuAt5vfUM80Cs|MIvKDSG7u&+rsH#fB^t2Vc}`v&*TOjTa#oKC8&(j2Z`nm3fR zaiMyL+M21e2Af-~27|AUZ*at5&e>(B#tjG$kBJ;WUWGysE3fM4j!#6)&^%V9auUOW zz1_S50s>X1I&jF4%-xfLY;SK>erH3i+8L{BQoBM8o$W0> zogHR-!{uuot<3Lko)Gi(j!PUoFg9{fGR!US} zUbN9O08_ZRnYjK<=^9%;cg31{6Dk%gSa9!yt4HKU(HBOPc`aVPY!TPY5}97fNfaDi z3jubm{ofWHRoU5%Fa-vCbHdB5qq)5a4QlF|_<`PtkV;wsm%RIwgxUEqc89~Dchy|x z0LbN6nlD}_*INaUUAZrnfxm#6J#p1o)uKPt)YS+)wIZF;dXF|#8JNMMT)Sp#) z_S=EA(Jr!tO;c|a_E4%@gW`vc88<;KO>#|~ICkuqQ8~FeY2Ukl&Rhm;4B6(U-Lvej zNz-Ocno==!+VqNwschIznL2Iqlxb5YPpnXDos8yY%$_}S#;jSB(xt4jGQ8jRZA<_g z-hF4kuAeBnc-FZKaOz^arJF+6!_R(jqA1AMg98aH5Cjc~#vq}AKDN%5#)fJN=h;in z8DDd=Cp$l_?b9;jB7JVm_}i71S2?^wy{f)&)!bQkzPi1gA(+84ltFMpv_Geb)IJTh z-?;#B%ekVkR4V`QShwE%Pq%M>^R{zE|C?h)-EF}MZW2jbVCiUSYid;iRas$>+II*M~ZV_2*mHzsco{c)vFSj??w6I{nnTt!c^ za|z3kRvn3ri46AlxVgvfTo3MPXT_(bBPGLm9xXRLxmlf*Y-msicrRb%yKB|w+dWK% zxRJxti6S*8lU3J(l+?u7*x00DS&?qK$;(pDid152tJ!WM)4iRW%l6jR>$Ut_9-MI6 z!m7%_H{I(mEXv3kH-6!=Wy==db?59kcg(4nSyDW4&7%bm|LD<&*8K3H?>+e7gRAac zHgnX7!5mj)NMH;itAa{P{{1HZay2^prkniDET!m8H5VD|pJ$h@r>FU9y>FzKzt8_{ zf1hs8HFDR6DJwV^*1Gf-8VpOjEjlVHZT!rs)V4l}o+5*62! zigL=>gsIarJk*qkzK%`5FitAbG3vUd!#ym>$mT2?$=#A&`4|mPkKN*0av9{D_s|L1 zy4ioZ(&9OgSmQmLFB@!K*N3%QRnqkVeUHtkciMvz@f539pA;Go8>^>k^MGGQb5w=0 zEMxAnI_xH@I_ICLk1ByGlg;4ct7}#McAGn6IY)b4EgP7e$7R6pEIHlEX4kHLwr}6Q z_xJAo+uuKCdd31b69kr=jSd&z?j(Bn20cjMUk$#zK5gXVr`e3uc4)jjZs=fyQ9)zYiHON z`q4-KJXw8_&gyE-IR-<2`R(IB`}HTc?jIMk1A5JnGGj%*{o}9O0aYcT_p^ORnj=!P zhYVl?S?yd$CkBP~Uijox-`4dP$BrM`|M!ooWW+7~x3zDq^pdj1pcGcKJc7tx}?f(2SO4eR!Y_AGBw$1ENhqGC&!_v;{apxf^W|>BEugcHU z(`4h$lwPJ?1oo`dG&ffdzC+3ATr}Van{(u9`?`_qxQYdL-n)WIe)r5tqbUEACe4_; zFo!Mu^r?5;ad+_Dixz$7zI*Px^Um)qUp0A9!jK40S$4}NmEmhg8mg0~t2S{!-p$NV zvbBRgj5^ZU#@3Zu$o8rE>XsEpqMeqmS8@k*oIG^!$eG5ro*TO>x1AyTU!Ob6b{#w` z9$T1M!2EFh_;KUP%gPJW2M$cZ-o?d5DJhZUy3IE^Pwm{OotDDNT!$lQNLp%mRCs`| zo0<;V<@O_JU)%WlsaoV3l(3M>D0i^YXtB|w8cn_K@wque83DzGdN=|DrNyXjU*J@q zPe^#+jTVV{2IE_P?2aY*J}W4fN=`&qvGU}y%b%59nrV($S8ce$b@6iTnL7JdGu16B zkfTRzc!xx&t-DBdP&Y)aO?x=3k;bs1`3oj16XfKjvv!l2J1W85%imhh?!W6?i*xC^ zzNek_0H%MpPe6>`Zf>5QK0dx|(}acudAqxt+pb>VAjO4CowjfaA;UR0``4_`2fEhh z-&R_TitJ&4>Kx;LWuJkPdVQZEA~H5ME;?3i8zv?UbZs*@*W$xm+YIB!PcAFW&dnb+ znjMF-Vu@xSB|Lxn^lz}gz|j^?K>7KxrlEH^w-@?W-2>J3f|r>L4P+D2*J!X2V#LYmSH-SaH`pn*F(pCaBhbh}L@a-FM&p%NK2J zb}_jL&A-*+quEWw&ziePPi3WVZ;wT8Y4%f8gY9hfHSG&_Yu$W3%}uHgY*D9|IhD|? zs+hrC-^Ah)gLY@lQ6=P?ue8jaFlj)#(zu>MxxVj8&o;bX4 z{NSX#f>A|6t=5Z|$OpQ5F4_YRUs@7ln2|M3_SXysdL@gwyQ9r)*SQa&QVVhICmunAhy)I% zQ(iBBc3Djtuhwfiy0mrbsdtW%C*+sK5sC3pNomF7)TC;{_$jQ<�JOK6+F^YS2;^ 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 `1XpKO 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%0DA)|R@5k!Y>4Bfyr1kz*% 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Ξf@h!1W~68QpF&G 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%0AI~ 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

    Xui#8HhmO;bp#D`B%$ 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 z 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�COPQ)T(~^bcTbV%ahuaw8InBPV64aKjhP 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