diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 9f6f0d0..0000000 --- a/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# production -/build - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index 72147a7..0000000 --- a/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# Leetcode Solutions - -An application to display my leetcode solutions. -Try it out at [temanisparsh.github.io/leetcode](https://temanisparsh.github.io/leetcode) or access the Android app at [this link](https://s3.amazonaws.com/gonativeio/static/5f5a06c6fa107e59c7d20838/app-release.apk). \ No newline at end of file diff --git a/asset-manifest.json b/asset-manifest.json new file mode 100644 index 0000000..a0954d4 --- /dev/null +++ b/asset-manifest.json @@ -0,0 +1,25 @@ +{ + "files": { + "main.css": "/leetcode/static/css/main.bca8e935.chunk.css", + "main.js": "/leetcode/static/js/main.6d289f42.chunk.js", + "main.js.map": "/leetcode/static/js/main.6d289f42.chunk.js.map", + "runtime-main.js": "/leetcode/static/js/runtime-main.bca5a1f5.js", + "runtime-main.js.map": "/leetcode/static/js/runtime-main.bca5a1f5.js.map", + "static/css/2.d9ad5f5c.chunk.css": "/leetcode/static/css/2.d9ad5f5c.chunk.css", + "static/js/2.8c98df72.chunk.js": "/leetcode/static/js/2.8c98df72.chunk.js", + "static/js/2.8c98df72.chunk.js.map": "/leetcode/static/js/2.8c98df72.chunk.js.map", + "index.html": "/leetcode/index.html", + "precache-manifest.c18e282f527e738ff22f58d8288588ee.js": "/leetcode/precache-manifest.c18e282f527e738ff22f58d8288588ee.js", + "service-worker.js": "/leetcode/service-worker.js", + "static/css/2.d9ad5f5c.chunk.css.map": "/leetcode/static/css/2.d9ad5f5c.chunk.css.map", + "static/css/main.bca8e935.chunk.css.map": "/leetcode/static/css/main.bca8e935.chunk.css.map", + "static/js/2.8c98df72.chunk.js.LICENSE.txt": "/leetcode/static/js/2.8c98df72.chunk.js.LICENSE.txt" + }, + "entrypoints": [ + "static/js/runtime-main.bca5a1f5.js", + "static/css/2.d9ad5f5c.chunk.css", + "static/js/2.8c98df72.chunk.js", + "static/css/main.bca8e935.chunk.css", + "static/js/main.6d289f42.chunk.js" + ] +} \ No newline at end of file diff --git a/dump_solutions.py b/dump_solutions.py deleted file mode 100644 index ec4e4be..0000000 --- a/dump_solutions.py +++ /dev/null @@ -1,16 +0,0 @@ -import os -import json - -problem_dict = {} -problem_files = os.listdir('./problems') - -for file in problem_files: - - filename = file.split('.')[0] - - with open('./problems/'+file, 'r') as json_file: - problem_dict[filename] = json.loads(json_file.read()) - problem_dict[filename]['number'] = filename - -with open('./src/solutions.json', 'w') as json_file: - json.dump(problem_dict, json_file) \ No newline at end of file diff --git a/public/favicon.ico b/favicon.ico similarity index 100% rename from public/favicon.ico rename to favicon.ico diff --git a/index.html b/index.html new file mode 100644 index 0000000..685e8c1 --- /dev/null +++ b/index.html @@ -0,0 +1 @@ +Leetcode Solutions
\ No newline at end of file diff --git a/link_scraper.py b/link_scraper.py deleted file mode 100644 index 3c434fc..0000000 --- a/link_scraper.py +++ /dev/null @@ -1,43 +0,0 @@ -import time -import json - -from selenium import webdriver -from selenium.webdriver.common.keys import Keys - -driver = webdriver.Chrome() -driver.get('https://leetcode.com/problemset/algorithms/') - -input("Change filter to show all problems: ") - -links = {} - -count = 1 - -while True: - try: - - link_ele = driver.find_element_by_xpath('//*[@id="question-app"]/div/div[2]/div[2]/div[2]/table/tbody[1]/tr['+str(count)+']/td[3]/div/a') - link = link_ele.get_attribute('href') - name = link_ele.get_attribute('innerHTML') - - difficulty_ele = driver.find_element_by_xpath('//*[@id="question-app"]/div/div[2]/div[2]/div[2]/table/tbody[1]/tr['+str(count)+']/td[6]/span') - difficulty = difficulty_ele.get_attribute('innerHTML') - - number_ele = driver.find_element_by_xpath('//*[@id="question-app"]/div/div[2]/div[2]/div[2]/table/tbody[1]/tr['+str(count)+']/td[2]') - number = number_ele.get_attribute('innerHTML') - - links[number] = { - 'link': link, - 'name': name, - 'difficulty': difficulty - } - - count += 1 - if count % 50 == 0: - print(count) - - except: - break - -with open('links.json', 'w') as json_file: - json.dump(links, json_file) \ No newline at end of file diff --git a/links.json b/links.json deleted file mode 100644 index e07b0b3..0000000 --- a/links.json +++ /dev/null @@ -1,7367 +0,0 @@ -{ - "1": { - "link": "https://leetcode.com/problems/two-sum", - "name": "Two Sum", - "difficulty": "Easy" - }, - "2": { - "link": "https://leetcode.com/problems/add-two-numbers", - "name": "Add Two Numbers", - "difficulty": "Medium" - }, - "3": { - "link": "https://leetcode.com/problems/longest-substring-without-repeating-characters", - "name": "Longest Substring Without Repeating Characters", - "difficulty": "Medium" - }, - "4": { - "link": "https://leetcode.com/problems/median-of-two-sorted-arrays", - "name": "Median of Two Sorted Arrays", - "difficulty": "Hard" - }, - "5": { - "link": "https://leetcode.com/problems/longest-palindromic-substring", - "name": "Longest Palindromic Substring", - "difficulty": "Medium" - }, - "6": { - "link": "https://leetcode.com/problems/zigzag-conversion", - "name": "ZigZag Conversion", - "difficulty": "Medium" - }, - "7": { - "link": "https://leetcode.com/problems/reverse-integer", - "name": "Reverse Integer", - "difficulty": "Easy" - }, - "8": { - "link": "https://leetcode.com/problems/string-to-integer-atoi", - "name": "String to Integer (atoi)", - "difficulty": "Medium" - }, - "9": { - "link": "https://leetcode.com/problems/palindrome-number", - "name": "Palindrome Number", - "difficulty": "Easy" - }, - "10": { - "link": "https://leetcode.com/problems/regular-expression-matching", - "name": "Regular Expression Matching", - "difficulty": "Hard" - }, - "11": { - "link": "https://leetcode.com/problems/container-with-most-water", - "name": "Container With Most Water", - "difficulty": "Medium" - }, - "12": { - "link": "https://leetcode.com/problems/integer-to-roman", - "name": "Integer to Roman", - "difficulty": "Medium" - }, - "13": { - "link": "https://leetcode.com/problems/roman-to-integer", - "name": "Roman to Integer", - "difficulty": "Easy" - }, - "14": { - "link": "https://leetcode.com/problems/longest-common-prefix", - "name": "Longest Common Prefix", - "difficulty": "Easy" - }, - "15": { - "link": "https://leetcode.com/problems/3sum", - "name": "3Sum", - "difficulty": "Medium" - }, - "16": { - "link": "https://leetcode.com/problems/3sum-closest", - "name": "3Sum Closest", - "difficulty": "Medium" - }, - "17": { - "link": "https://leetcode.com/problems/letter-combinations-of-a-phone-number", - "name": "Letter Combinations of a Phone Number", - "difficulty": "Medium" - }, - "18": { - "link": "https://leetcode.com/problems/4sum", - "name": "4Sum", - "difficulty": "Medium" - }, - "19": { - "link": "https://leetcode.com/problems/remove-nth-node-from-end-of-list", - "name": "Remove Nth Node From End of List", - "difficulty": "Medium" - }, - "20": { - "link": "https://leetcode.com/problems/valid-parentheses", - "name": "Valid Parentheses", - "difficulty": "Easy" - }, - "21": { - "link": "https://leetcode.com/problems/merge-two-sorted-lists", - "name": "Merge Two Sorted Lists", - "difficulty": "Easy" - }, - "22": { - "link": "https://leetcode.com/problems/generate-parentheses", - "name": "Generate Parentheses", - "difficulty": "Medium" - }, - "23": { - "link": "https://leetcode.com/problems/merge-k-sorted-lists", - "name": "Merge k Sorted Lists", - "difficulty": "Hard" - }, - "24": { - "link": "https://leetcode.com/problems/swap-nodes-in-pairs", - "name": "Swap Nodes in Pairs", - "difficulty": "Medium" - }, - "25": { - "link": "https://leetcode.com/problems/reverse-nodes-in-k-group", - "name": "Reverse Nodes in k-Group", - "difficulty": "Hard" - }, - "26": { - "link": "https://leetcode.com/problems/remove-duplicates-from-sorted-array", - "name": "Remove Duplicates from Sorted Array", - "difficulty": "Easy" - }, - "27": { - "link": "https://leetcode.com/problems/remove-element", - "name": "Remove Element", - "difficulty": "Easy" - }, - "28": { - "link": "https://leetcode.com/problems/implement-strstr", - "name": "Implement strStr()", - "difficulty": "Easy" - }, - "29": { - "link": "https://leetcode.com/problems/divide-two-integers", - "name": "Divide Two Integers", - "difficulty": "Medium" - }, - "30": { - "link": "https://leetcode.com/problems/substring-with-concatenation-of-all-words", - "name": "Substring with Concatenation of All Words", - "difficulty": "Hard" - }, - "31": { - "link": "https://leetcode.com/problems/next-permutation", - "name": "Next Permutation", - "difficulty": "Medium" - }, - "32": { - "link": "https://leetcode.com/problems/longest-valid-parentheses", - "name": "Longest Valid Parentheses", - "difficulty": "Hard" - }, - "33": { - "link": "https://leetcode.com/problems/search-in-rotated-sorted-array", - "name": "Search in Rotated Sorted Array", - "difficulty": "Medium" - }, - "34": { - "link": "https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array", - "name": "Find First and Last Position of Element in Sorted Array", - "difficulty": "Medium" - }, - "35": { - "link": "https://leetcode.com/problems/search-insert-position", - "name": "Search Insert Position", - "difficulty": "Easy" - }, - "36": { - "link": "https://leetcode.com/problems/valid-sudoku", - "name": "Valid Sudoku", - "difficulty": "Medium" - }, - "37": { - "link": "https://leetcode.com/problems/sudoku-solver", - "name": "Sudoku Solver", - "difficulty": "Hard" - }, - "38": { - "link": "https://leetcode.com/problems/count-and-say", - "name": "Count and Say", - "difficulty": "Easy" - }, - "39": { - "link": "https://leetcode.com/problems/combination-sum", - "name": "Combination Sum", - "difficulty": "Medium" - }, - "40": { - "link": "https://leetcode.com/problems/combination-sum-ii", - "name": "Combination Sum II", - "difficulty": "Medium" - }, - "41": { - "link": "https://leetcode.com/problems/first-missing-positive", - "name": "First Missing Positive", - "difficulty": "Hard" - }, - "42": { - "link": "https://leetcode.com/problems/trapping-rain-water", - "name": "Trapping Rain Water", - "difficulty": "Hard" - }, - "43": { - "link": "https://leetcode.com/problems/multiply-strings", - "name": "Multiply Strings", - "difficulty": "Medium" - }, - "44": { - "link": "https://leetcode.com/problems/wildcard-matching", - "name": "Wildcard Matching", - "difficulty": "Hard" - }, - "45": { - "link": "https://leetcode.com/problems/jump-game-ii", - "name": "Jump Game II", - "difficulty": "Hard" - }, - "46": { - "link": "https://leetcode.com/problems/permutations", - "name": "Permutations", - "difficulty": "Medium" - }, - "47": { - "link": "https://leetcode.com/problems/permutations-ii", - "name": "Permutations II", - "difficulty": "Medium" - }, - "48": { - "link": "https://leetcode.com/problems/rotate-image", - "name": "Rotate Image", - "difficulty": "Medium" - }, - "49": { - "link": "https://leetcode.com/problems/group-anagrams", - "name": "Group Anagrams", - "difficulty": "Medium" - }, - "50": { - "link": "https://leetcode.com/problems/powx-n", - "name": "Pow(x, n)", - "difficulty": "Medium" - }, - "51": { - "link": "https://leetcode.com/problems/n-queens", - "name": "N-Queens", - "difficulty": "Hard" - }, - "52": { - "link": "https://leetcode.com/problems/n-queens-ii", - "name": "N-Queens II", - "difficulty": "Hard" - }, - "53": { - "link": "https://leetcode.com/problems/maximum-subarray", - "name": "Maximum Subarray", - "difficulty": "Easy" - }, - "54": { - "link": "https://leetcode.com/problems/spiral-matrix", - "name": "Spiral Matrix", - "difficulty": "Medium" - }, - "55": { - "link": "https://leetcode.com/problems/jump-game", - "name": "Jump Game", - "difficulty": "Medium" - }, - "56": { - "link": "https://leetcode.com/problems/merge-intervals", - "name": "Merge Intervals", - "difficulty": "Medium" - }, - "57": { - "link": "https://leetcode.com/problems/insert-interval", - "name": "Insert Interval", - "difficulty": "Medium" - }, - "58": { - "link": "https://leetcode.com/problems/length-of-last-word", - "name": "Length of Last Word", - "difficulty": "Easy" - }, - "59": { - "link": "https://leetcode.com/problems/spiral-matrix-ii", - "name": "Spiral Matrix II", - "difficulty": "Medium" - }, - "60": { - "link": "https://leetcode.com/problems/permutation-sequence", - "name": "Permutation Sequence", - "difficulty": "Hard" - }, - "61": { - "link": "https://leetcode.com/problems/rotate-list", - "name": "Rotate List", - "difficulty": "Medium" - }, - "62": { - "link": "https://leetcode.com/problems/unique-paths", - "name": "Unique Paths", - "difficulty": "Medium" - }, - "63": { - "link": "https://leetcode.com/problems/unique-paths-ii", - "name": "Unique Paths II", - "difficulty": "Medium" - }, - "64": { - "link": "https://leetcode.com/problems/minimum-path-sum", - "name": "Minimum Path Sum", - "difficulty": "Medium" - }, - "65": { - "link": "https://leetcode.com/problems/valid-number", - "name": "Valid Number", - "difficulty": "Hard" - }, - "66": { - "link": "https://leetcode.com/problems/plus-one", - "name": "Plus One", - "difficulty": "Easy" - }, - "67": { - "link": "https://leetcode.com/problems/add-binary", - "name": "Add Binary", - "difficulty": "Easy" - }, - "68": { - "link": "https://leetcode.com/problems/text-justification", - "name": "Text Justification", - "difficulty": "Hard" - }, - "69": { - "link": "https://leetcode.com/problems/sqrtx", - "name": "Sqrt(x)", - "difficulty": "Easy" - }, - "70": { - "link": "https://leetcode.com/problems/climbing-stairs", - "name": "Climbing Stairs", - "difficulty": "Easy" - }, - "71": { - "link": "https://leetcode.com/problems/simplify-path", - "name": "Simplify Path", - "difficulty": "Medium" - }, - "72": { - "link": "https://leetcode.com/problems/edit-distance", - "name": "Edit Distance", - "difficulty": "Hard" - }, - "73": { - "link": "https://leetcode.com/problems/set-matrix-zeroes", - "name": "Set Matrix Zeroes", - "difficulty": "Medium" - }, - "74": { - "link": "https://leetcode.com/problems/search-a-2d-matrix", - "name": "Search a 2D Matrix", - "difficulty": "Medium" - }, - "75": { - "link": "https://leetcode.com/problems/sort-colors", - "name": "Sort Colors", - "difficulty": "Medium" - }, - "76": { - "link": "https://leetcode.com/problems/minimum-window-substring", - "name": "Minimum Window Substring", - "difficulty": "Hard" - }, - "77": { - "link": "https://leetcode.com/problems/combinations", - "name": "Combinations", - "difficulty": "Medium" - }, - "78": { - "link": "https://leetcode.com/problems/subsets", - "name": "Subsets", - "difficulty": "Medium" - }, - "79": { - "link": "https://leetcode.com/problems/word-search", - "name": "Word Search", - "difficulty": "Medium" - }, - "80": { - "link": "https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii", - "name": "Remove Duplicates from Sorted Array II", - "difficulty": "Medium" - }, - "81": { - "link": "https://leetcode.com/problems/search-in-rotated-sorted-array-ii", - "name": "Search in Rotated Sorted Array II", - "difficulty": "Medium" - }, - "82": { - "link": "https://leetcode.com/problems/remove-duplicates-from-sorted-list-ii", - "name": "Remove Duplicates from Sorted List II", - "difficulty": "Medium" - }, - "83": { - "link": "https://leetcode.com/problems/remove-duplicates-from-sorted-list", - "name": "Remove Duplicates from Sorted List", - "difficulty": "Easy" - }, - "84": { - "link": "https://leetcode.com/problems/largest-rectangle-in-histogram", - "name": "Largest Rectangle in Histogram", - "difficulty": "Hard" - }, - "85": { - "link": "https://leetcode.com/problems/maximal-rectangle", - "name": "Maximal Rectangle", - "difficulty": "Hard" - }, - "86": { - "link": "https://leetcode.com/problems/partition-list", - "name": "Partition List", - "difficulty": "Medium" - }, - "87": { - "link": "https://leetcode.com/problems/scramble-string", - "name": "Scramble String", - "difficulty": "Hard" - }, - "88": { - "link": "https://leetcode.com/problems/merge-sorted-array", - "name": "Merge Sorted Array", - "difficulty": "Easy" - }, - "89": { - "link": "https://leetcode.com/problems/gray-code", - "name": "Gray Code", - "difficulty": "Medium" - }, - "90": { - "link": "https://leetcode.com/problems/subsets-ii", - "name": "Subsets II", - "difficulty": "Medium" - }, - "91": { - "link": "https://leetcode.com/problems/decode-ways", - "name": "Decode Ways", - "difficulty": "Medium" - }, - "92": { - "link": "https://leetcode.com/problems/reverse-linked-list-ii", - "name": "Reverse Linked List II", - "difficulty": "Medium" - }, - "93": { - "link": "https://leetcode.com/problems/restore-ip-addresses", - "name": "Restore IP Addresses", - "difficulty": "Medium" - }, - "94": { - "link": "https://leetcode.com/problems/binary-tree-inorder-traversal", - "name": "Binary Tree Inorder Traversal", - "difficulty": "Medium" - }, - "95": { - "link": "https://leetcode.com/problems/unique-binary-search-trees-ii", - "name": "Unique Binary Search Trees II", - "difficulty": "Medium" - }, - "96": { - "link": "https://leetcode.com/problems/unique-binary-search-trees", - "name": "Unique Binary Search Trees", - "difficulty": "Medium" - }, - "97": { - "link": "https://leetcode.com/problems/interleaving-string", - "name": "Interleaving String", - "difficulty": "Hard" - }, - "98": { - "link": "https://leetcode.com/problems/validate-binary-search-tree", - "name": "Validate Binary Search Tree", - "difficulty": "Medium" - }, - "99": { - "link": "https://leetcode.com/problems/recover-binary-search-tree", - "name": "Recover Binary Search Tree", - "difficulty": "Hard" - }, - "100": { - "link": "https://leetcode.com/problems/same-tree", - "name": "Same Tree", - "difficulty": "Easy" - }, - "101": { - "link": "https://leetcode.com/problems/symmetric-tree", - "name": "Symmetric Tree", - "difficulty": "Easy" - }, - "102": { - "link": "https://leetcode.com/problems/binary-tree-level-order-traversal", - "name": "Binary Tree Level Order Traversal", - "difficulty": "Medium" - }, - "103": { - "link": "https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal", - "name": "Binary Tree Zigzag Level Order Traversal", - "difficulty": "Medium" - }, - "104": { - "link": "https://leetcode.com/problems/maximum-depth-of-binary-tree", - "name": "Maximum Depth of Binary Tree", - "difficulty": "Easy" - }, - "105": { - "link": "https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal", - "name": "Construct Binary Tree from Preorder and Inorder Traversal", - "difficulty": "Medium" - }, - "106": { - "link": "https://leetcode.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal", - "name": "Construct Binary Tree from Inorder and Postorder Traversal", - "difficulty": "Medium" - }, - "107": { - "link": "https://leetcode.com/problems/binary-tree-level-order-traversal-ii", - "name": "Binary Tree Level Order Traversal II", - "difficulty": "Easy" - }, - "108": { - "link": "https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree", - "name": "Convert Sorted Array to Binary Search Tree", - "difficulty": "Easy" - }, - "109": { - "link": "https://leetcode.com/problems/convert-sorted-list-to-binary-search-tree", - "name": "Convert Sorted List to Binary Search Tree", - "difficulty": "Medium" - }, - "110": { - "link": "https://leetcode.com/problems/balanced-binary-tree", - "name": "Balanced Binary Tree", - "difficulty": "Easy" - }, - "111": { - "link": "https://leetcode.com/problems/minimum-depth-of-binary-tree", - "name": "Minimum Depth of Binary Tree", - "difficulty": "Easy" - }, - "112": { - "link": "https://leetcode.com/problems/path-sum", - "name": "Path Sum", - "difficulty": "Easy" - }, - "113": { - "link": "https://leetcode.com/problems/path-sum-ii", - "name": "Path Sum II", - "difficulty": "Medium" - }, - "114": { - "link": "https://leetcode.com/problems/flatten-binary-tree-to-linked-list", - "name": "Flatten Binary Tree to Linked List", - "difficulty": "Medium" - }, - "115": { - "link": "https://leetcode.com/problems/distinct-subsequences", - "name": "Distinct Subsequences", - "difficulty": "Hard" - }, - "116": { - "link": "https://leetcode.com/problems/populating-next-right-pointers-in-each-node", - "name": "Populating Next Right Pointers in Each Node", - "difficulty": "Medium" - }, - "117": { - "link": "https://leetcode.com/problems/populating-next-right-pointers-in-each-node-ii", - "name": "Populating Next Right Pointers in Each Node II", - "difficulty": "Medium" - }, - "118": { - "link": "https://leetcode.com/problems/pascals-triangle", - "name": "Pascal's Triangle", - "difficulty": "Easy" - }, - "119": { - "link": "https://leetcode.com/problems/pascals-triangle-ii", - "name": "Pascal's Triangle II", - "difficulty": "Easy" - }, - "120": { - "link": "https://leetcode.com/problems/triangle", - "name": "Triangle", - "difficulty": "Medium" - }, - "121": { - "link": "https://leetcode.com/problems/best-time-to-buy-and-sell-stock", - "name": "Best Time to Buy and Sell Stock", - "difficulty": "Easy" - }, - "122": { - "link": "https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii", - "name": "Best Time to Buy and Sell Stock II", - "difficulty": "Easy" - }, - "123": { - "link": "https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iii", - "name": "Best Time to Buy and Sell Stock III", - "difficulty": "Hard" - }, - "124": { - "link": "https://leetcode.com/problems/binary-tree-maximum-path-sum", - "name": "Binary Tree Maximum Path Sum", - "difficulty": "Hard" - }, - "125": { - "link": "https://leetcode.com/problems/valid-palindrome", - "name": "Valid Palindrome", - "difficulty": "Easy" - }, - "126": { - "link": "https://leetcode.com/problems/word-ladder-ii", - "name": "Word Ladder II", - "difficulty": "Hard" - }, - "127": { - "link": "https://leetcode.com/problems/word-ladder", - "name": "Word Ladder", - "difficulty": "Medium" - }, - "128": { - "link": "https://leetcode.com/problems/longest-consecutive-sequence", - "name": "Longest Consecutive Sequence", - "difficulty": "Hard" - }, - "129": { - "link": "https://leetcode.com/problems/sum-root-to-leaf-numbers", - "name": "Sum Root to Leaf Numbers", - "difficulty": "Medium" - }, - "130": { - "link": "https://leetcode.com/problems/surrounded-regions", - "name": "Surrounded Regions", - "difficulty": "Medium" - }, - "131": { - "link": "https://leetcode.com/problems/palindrome-partitioning", - "name": "Palindrome Partitioning", - "difficulty": "Medium" - }, - "132": { - "link": "https://leetcode.com/problems/palindrome-partitioning-ii", - "name": "Palindrome Partitioning II", - "difficulty": "Hard" - }, - "133": { - "link": "https://leetcode.com/problems/clone-graph", - "name": "Clone Graph", - "difficulty": "Medium" - }, - "134": { - "link": "https://leetcode.com/problems/gas-station", - "name": "Gas Station", - "difficulty": "Medium" - }, - "135": { - "link": "https://leetcode.com/problems/candy", - "name": "Candy", - "difficulty": "Hard" - }, - "136": { - "link": "https://leetcode.com/problems/single-number", - "name": "Single Number", - "difficulty": "Easy" - }, - "137": { - "link": "https://leetcode.com/problems/single-number-ii", - "name": "Single Number II", - "difficulty": "Medium" - }, - "138": { - "link": "https://leetcode.com/problems/copy-list-with-random-pointer", - "name": "Copy List with Random Pointer", - "difficulty": "Medium" - }, - "139": { - "link": "https://leetcode.com/problems/word-break", - "name": "Word Break", - "difficulty": "Medium" - }, - "140": { - "link": "https://leetcode.com/problems/word-break-ii", - "name": "Word Break II", - "difficulty": "Hard" - }, - "141": { - "link": "https://leetcode.com/problems/linked-list-cycle", - "name": "Linked List Cycle", - "difficulty": "Easy" - }, - "142": { - "link": "https://leetcode.com/problems/linked-list-cycle-ii", - "name": "Linked List Cycle II", - "difficulty": "Medium" - }, - "143": { - "link": "https://leetcode.com/problems/reorder-list", - "name": "Reorder List", - "difficulty": "Medium" - }, - "144": { - "link": "https://leetcode.com/problems/binary-tree-preorder-traversal", - "name": "Binary Tree Preorder Traversal", - "difficulty": "Medium" - }, - "145": { - "link": "https://leetcode.com/problems/binary-tree-postorder-traversal", - "name": "Binary Tree Postorder Traversal", - "difficulty": "Medium" - }, - "146": { - "link": "https://leetcode.com/problems/lru-cache", - "name": "LRU Cache", - "difficulty": "Medium" - }, - "147": { - "link": "https://leetcode.com/problems/insertion-sort-list", - "name": "Insertion Sort List", - "difficulty": "Medium" - }, - "148": { - "link": "https://leetcode.com/problems/sort-list", - "name": "Sort List", - "difficulty": "Medium" - }, - "149": { - "link": "https://leetcode.com/problems/max-points-on-a-line", - "name": "Max Points on a Line", - "difficulty": "Hard" - }, - "150": { - "link": "https://leetcode.com/problems/evaluate-reverse-polish-notation", - "name": "Evaluate Reverse Polish Notation", - "difficulty": "Medium" - }, - "151": { - "link": "https://leetcode.com/problems/reverse-words-in-a-string", - "name": "Reverse Words in a String", - "difficulty": "Medium" - }, - "152": { - "link": "https://leetcode.com/problems/maximum-product-subarray", - "name": "Maximum Product Subarray", - "difficulty": "Medium" - }, - "153": { - "link": "https://leetcode.com/problems/find-minimum-in-rotated-sorted-array", - "name": "Find Minimum in Rotated Sorted Array", - "difficulty": "Medium" - }, - "154": { - "link": "https://leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii", - "name": "Find Minimum in Rotated Sorted Array II", - "difficulty": "Hard" - }, - "155": { - "link": "https://leetcode.com/problems/min-stack", - "name": "Min Stack", - "difficulty": "Easy" - }, - "156": { - "link": "https://leetcode.com/problems/binary-tree-upside-down", - "name": "Binary Tree Upside Down", - "difficulty": "Medium" - }, - "157": { - "link": "https://leetcode.com/problems/read-n-characters-given-read4", - "name": "Read N Characters Given Read4", - "difficulty": "Easy" - }, - "158": { - "link": "https://leetcode.com/problems/read-n-characters-given-read4-ii-call-multiple-times", - "name": "Read N Characters Given Read4 II - Call multiple times", - "difficulty": "Hard" - }, - "159": { - "link": "https://leetcode.com/problems/longest-substring-with-at-most-two-distinct-characters", - "name": "Longest Substring with At Most Two Distinct Characters", - "difficulty": "Medium" - }, - "160": { - "link": "https://leetcode.com/problems/intersection-of-two-linked-lists", - "name": "Intersection of Two Linked Lists", - "difficulty": "Easy" - }, - "161": { - "link": "https://leetcode.com/problems/one-edit-distance", - "name": "One Edit Distance", - "difficulty": "Medium" - }, - "162": { - "link": "https://leetcode.com/problems/find-peak-element", - "name": "Find Peak Element", - "difficulty": "Medium" - }, - "163": { - "link": "https://leetcode.com/problems/missing-ranges", - "name": "Missing Ranges", - "difficulty": "Medium" - }, - "164": { - "link": "https://leetcode.com/problems/maximum-gap", - "name": "Maximum Gap", - "difficulty": "Hard" - }, - "165": { - "link": "https://leetcode.com/problems/compare-version-numbers", - "name": "Compare Version Numbers", - "difficulty": "Medium" - }, - "166": { - "link": "https://leetcode.com/problems/fraction-to-recurring-decimal", - "name": "Fraction to Recurring Decimal", - "difficulty": "Medium" - }, - "167": { - "link": "https://leetcode.com/problems/two-sum-ii-input-array-is-sorted", - "name": "Two Sum II - Input array is sorted", - "difficulty": "Easy" - }, - "168": { - "link": "https://leetcode.com/problems/excel-sheet-column-title", - "name": "Excel Sheet Column Title", - "difficulty": "Easy" - }, - "169": { - "link": "https://leetcode.com/problems/majority-element", - "name": "Majority Element", - "difficulty": "Easy" - }, - "170": { - "link": "https://leetcode.com/problems/two-sum-iii-data-structure-design", - "name": "Two Sum III - Data structure design", - "difficulty": "Easy" - }, - "171": { - "link": "https://leetcode.com/problems/excel-sheet-column-number", - "name": "Excel Sheet Column Number", - "difficulty": "Easy" - }, - "172": { - "link": "https://leetcode.com/problems/factorial-trailing-zeroes", - "name": "Factorial Trailing Zeroes", - "difficulty": "Easy" - }, - "173": { - "link": "https://leetcode.com/problems/binary-search-tree-iterator", - "name": "Binary Search Tree Iterator", - "difficulty": "Medium" - }, - "174": { - "link": "https://leetcode.com/problems/dungeon-game", - "name": "Dungeon Game", - "difficulty": "Hard" - }, - "179": { - "link": "https://leetcode.com/problems/largest-number", - "name": "Largest Number", - "difficulty": "Medium" - }, - "186": { - "link": "https://leetcode.com/problems/reverse-words-in-a-string-ii", - "name": "Reverse Words in a String II", - "difficulty": "Medium" - }, - "187": { - "link": "https://leetcode.com/problems/repeated-dna-sequences", - "name": "Repeated DNA Sequences", - "difficulty": "Medium" - }, - "188": { - "link": "https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iv", - "name": "Best Time to Buy and Sell Stock IV", - "difficulty": "Hard" - }, - "189": { - "link": "https://leetcode.com/problems/rotate-array", - "name": "Rotate Array", - "difficulty": "Medium" - }, - "190": { - "link": "https://leetcode.com/problems/reverse-bits", - "name": "Reverse Bits", - "difficulty": "Easy" - }, - "191": { - "link": "https://leetcode.com/problems/number-of-1-bits", - "name": "Number of 1 Bits", - "difficulty": "Easy" - }, - "198": { - "link": "https://leetcode.com/problems/house-robber", - "name": "House Robber", - "difficulty": "Easy" - }, - "199": { - "link": "https://leetcode.com/problems/binary-tree-right-side-view", - "name": "Binary Tree Right Side View", - "difficulty": "Medium" - }, - "200": { - "link": "https://leetcode.com/problems/number-of-islands", - "name": "Number of Islands", - "difficulty": "Medium" - }, - "201": { - "link": "https://leetcode.com/problems/bitwise-and-of-numbers-range", - "name": "Bitwise AND of Numbers Range", - "difficulty": "Medium" - }, - "202": { - "link": "https://leetcode.com/problems/happy-number", - "name": "Happy Number", - "difficulty": "Easy" - }, - "203": { - "link": "https://leetcode.com/problems/remove-linked-list-elements", - "name": "Remove Linked List Elements", - "difficulty": "Easy" - }, - "204": { - "link": "https://leetcode.com/problems/count-primes", - "name": "Count Primes", - "difficulty": "Easy" - }, - "205": { - "link": "https://leetcode.com/problems/isomorphic-strings", - "name": "Isomorphic Strings", - "difficulty": "Easy" - }, - "206": { - "link": "https://leetcode.com/problems/reverse-linked-list", - "name": "Reverse Linked List", - "difficulty": "Easy" - }, - "207": { - "link": "https://leetcode.com/problems/course-schedule", - "name": "Course Schedule", - "difficulty": "Medium" - }, - "208": { - "link": "https://leetcode.com/problems/implement-trie-prefix-tree", - "name": "Implement Trie (Prefix Tree)", - "difficulty": "Medium" - }, - "209": { - "link": "https://leetcode.com/problems/minimum-size-subarray-sum", - "name": "Minimum Size Subarray Sum", - "difficulty": "Medium" - }, - "210": { - "link": "https://leetcode.com/problems/course-schedule-ii", - "name": "Course Schedule II", - "difficulty": "Medium" - }, - "211": { - "link": "https://leetcode.com/problems/design-add-and-search-words-data-structure", - "name": "Design Add and Search Words Data Structure", - "difficulty": "Medium" - }, - "212": { - "link": "https://leetcode.com/problems/word-search-ii", - "name": "Word Search II", - "difficulty": "Hard" - }, - "213": { - "link": "https://leetcode.com/problems/house-robber-ii", - "name": "House Robber II", - "difficulty": "Medium" - }, - "214": { - "link": "https://leetcode.com/problems/shortest-palindrome", - "name": "Shortest Palindrome", - "difficulty": "Hard" - }, - "215": { - "link": "https://leetcode.com/problems/kth-largest-element-in-an-array", - "name": "Kth Largest Element in an Array", - "difficulty": "Medium" - }, - "216": { - "link": "https://leetcode.com/problems/combination-sum-iii", - "name": "Combination Sum III", - "difficulty": "Medium" - }, - "217": { - "link": "https://leetcode.com/problems/contains-duplicate", - "name": "Contains Duplicate", - "difficulty": "Easy" - }, - "218": { - "link": "https://leetcode.com/problems/the-skyline-problem", - "name": "The Skyline Problem", - "difficulty": "Hard" - }, - "219": { - "link": "https://leetcode.com/problems/contains-duplicate-ii", - "name": "Contains Duplicate II", - "difficulty": "Easy" - }, - "220": { - "link": "https://leetcode.com/problems/contains-duplicate-iii", - "name": "Contains Duplicate III", - "difficulty": "Medium" - }, - "221": { - "link": "https://leetcode.com/problems/maximal-square", - "name": "Maximal Square", - "difficulty": "Medium" - }, - "222": { - "link": "https://leetcode.com/problems/count-complete-tree-nodes", - "name": "Count Complete Tree Nodes", - "difficulty": "Medium" - }, - "223": { - "link": "https://leetcode.com/problems/rectangle-area", - "name": "Rectangle Area", - "difficulty": "Medium" - }, - "224": { - "link": "https://leetcode.com/problems/basic-calculator", - "name": "Basic Calculator", - "difficulty": "Hard" - }, - "225": { - "link": "https://leetcode.com/problems/implement-stack-using-queues", - "name": "Implement Stack using Queues", - "difficulty": "Easy" - }, - "226": { - "link": "https://leetcode.com/problems/invert-binary-tree", - "name": "Invert Binary Tree", - "difficulty": "Easy" - }, - "227": { - "link": "https://leetcode.com/problems/basic-calculator-ii", - "name": "Basic Calculator II", - "difficulty": "Medium" - }, - "228": { - "link": "https://leetcode.com/problems/summary-ranges", - "name": "Summary Ranges", - "difficulty": "Medium" - }, - "229": { - "link": "https://leetcode.com/problems/majority-element-ii", - "name": "Majority Element II", - "difficulty": "Medium" - }, - "230": { - "link": "https://leetcode.com/problems/kth-smallest-element-in-a-bst", - "name": "Kth Smallest Element in a BST", - "difficulty": "Medium" - }, - "231": { - "link": "https://leetcode.com/problems/power-of-two", - "name": "Power of Two", - "difficulty": "Easy" - }, - "232": { - "link": "https://leetcode.com/problems/implement-queue-using-stacks", - "name": "Implement Queue using Stacks", - "difficulty": "Easy" - }, - "233": { - "link": "https://leetcode.com/problems/number-of-digit-one", - "name": "Number of Digit One", - "difficulty": "Hard" - }, - "234": { - "link": "https://leetcode.com/problems/palindrome-linked-list", - "name": "Palindrome Linked List", - "difficulty": "Easy" - }, - "235": { - "link": "https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree", - "name": "Lowest Common Ancestor of a Binary Search Tree", - "difficulty": "Easy" - }, - "236": { - "link": "https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree", - "name": "Lowest Common Ancestor of a Binary Tree", - "difficulty": "Medium" - }, - "237": { - "link": "https://leetcode.com/problems/delete-node-in-a-linked-list", - "name": "Delete Node in a Linked List", - "difficulty": "Easy" - }, - "238": { - "link": "https://leetcode.com/problems/product-of-array-except-self", - "name": "Product of Array Except Self", - "difficulty": "Medium" - }, - "239": { - "link": "https://leetcode.com/problems/sliding-window-maximum", - "name": "Sliding Window Maximum", - "difficulty": "Hard" - }, - "240": { - "link": "https://leetcode.com/problems/search-a-2d-matrix-ii", - "name": "Search a 2D Matrix II", - "difficulty": "Medium" - }, - "241": { - "link": "https://leetcode.com/problems/different-ways-to-add-parentheses", - "name": "Different Ways to Add Parentheses", - "difficulty": "Medium" - }, - "242": { - "link": "https://leetcode.com/problems/valid-anagram", - "name": "Valid Anagram", - "difficulty": "Easy" - }, - "243": { - "link": "https://leetcode.com/problems/shortest-word-distance", - "name": "Shortest Word Distance", - "difficulty": "Easy" - }, - "244": { - "link": "https://leetcode.com/problems/shortest-word-distance-ii", - "name": "Shortest Word Distance II", - "difficulty": "Medium" - }, - "245": { - "link": "https://leetcode.com/problems/shortest-word-distance-iii", - "name": "Shortest Word Distance III", - "difficulty": "Medium" - }, - "246": { - "link": "https://leetcode.com/problems/strobogrammatic-number", - "name": "Strobogrammatic Number", - "difficulty": "Easy" - }, - "247": { - "link": "https://leetcode.com/problems/strobogrammatic-number-ii", - "name": "Strobogrammatic Number II", - "difficulty": "Medium" - }, - "248": { - "link": "https://leetcode.com/problems/strobogrammatic-number-iii", - "name": "Strobogrammatic Number III", - "difficulty": "Hard" - }, - "249": { - "link": "https://leetcode.com/problems/group-shifted-strings", - "name": "Group Shifted Strings", - "difficulty": "Medium" - }, - "250": { - "link": "https://leetcode.com/problems/count-univalue-subtrees", - "name": "Count Univalue Subtrees", - "difficulty": "Medium" - }, - "251": { - "link": "https://leetcode.com/problems/flatten-2d-vector", - "name": "Flatten 2D Vector", - "difficulty": "Medium" - }, - "252": { - "link": "https://leetcode.com/problems/meeting-rooms", - "name": "Meeting Rooms", - "difficulty": "Easy" - }, - "253": { - "link": "https://leetcode.com/problems/meeting-rooms-ii", - "name": "Meeting Rooms II", - "difficulty": "Medium" - }, - "254": { - "link": "https://leetcode.com/problems/factor-combinations", - "name": "Factor Combinations", - "difficulty": "Medium" - }, - "255": { - "link": "https://leetcode.com/problems/verify-preorder-sequence-in-binary-search-tree", - "name": "Verify Preorder Sequence in Binary Search Tree", - "difficulty": "Medium" - }, - "256": { - "link": "https://leetcode.com/problems/paint-house", - "name": "Paint House", - "difficulty": "Medium" - }, - "257": { - "link": "https://leetcode.com/problems/binary-tree-paths", - "name": "Binary Tree Paths", - "difficulty": "Easy" - }, - "258": { - "link": "https://leetcode.com/problems/add-digits", - "name": "Add Digits", - "difficulty": "Easy" - }, - "259": { - "link": "https://leetcode.com/problems/3sum-smaller", - "name": "3Sum Smaller", - "difficulty": "Medium" - }, - "260": { - "link": "https://leetcode.com/problems/single-number-iii", - "name": "Single Number III", - "difficulty": "Medium" - }, - "261": { - "link": "https://leetcode.com/problems/graph-valid-tree", - "name": "Graph Valid Tree", - "difficulty": "Medium" - }, - "263": { - "link": "https://leetcode.com/problems/ugly-number", - "name": "Ugly Number", - "difficulty": "Easy" - }, - "264": { - "link": "https://leetcode.com/problems/ugly-number-ii", - "name": "Ugly Number II", - "difficulty": "Medium" - }, - "265": { - "link": "https://leetcode.com/problems/paint-house-ii", - "name": "Paint House II", - "difficulty": "Hard" - }, - "266": { - "link": "https://leetcode.com/problems/palindrome-permutation", - "name": "Palindrome Permutation", - "difficulty": "Easy" - }, - "267": { - "link": "https://leetcode.com/problems/palindrome-permutation-ii", - "name": "Palindrome Permutation II", - "difficulty": "Medium" - }, - "268": { - "link": "https://leetcode.com/problems/missing-number", - "name": "Missing Number", - "difficulty": "Easy" - }, - "269": { - "link": "https://leetcode.com/problems/alien-dictionary", - "name": "Alien Dictionary", - "difficulty": "Hard" - }, - "270": { - "link": "https://leetcode.com/problems/closest-binary-search-tree-value", - "name": "Closest Binary Search Tree Value", - "difficulty": "Easy" - }, - "271": { - "link": "https://leetcode.com/problems/encode-and-decode-strings", - "name": "Encode and Decode Strings", - "difficulty": "Medium" - }, - "272": { - "link": "https://leetcode.com/problems/closest-binary-search-tree-value-ii", - "name": "Closest Binary Search Tree Value II", - "difficulty": "Hard" - }, - "273": { - "link": "https://leetcode.com/problems/integer-to-english-words", - "name": "Integer to English Words", - "difficulty": "Hard" - }, - "274": { - "link": "https://leetcode.com/problems/h-index", - "name": "H-Index", - "difficulty": "Medium" - }, - "275": { - "link": "https://leetcode.com/problems/h-index-ii", - "name": "H-Index II", - "difficulty": "Medium" - }, - "276": { - "link": "https://leetcode.com/problems/paint-fence", - "name": "Paint Fence", - "difficulty": "Easy" - }, - "277": { - "link": "https://leetcode.com/problems/find-the-celebrity", - "name": "Find the Celebrity", - "difficulty": "Medium" - }, - "278": { - "link": "https://leetcode.com/problems/first-bad-version", - "name": "First Bad Version", - "difficulty": "Easy" - }, - "279": { - "link": "https://leetcode.com/problems/perfect-squares", - "name": "Perfect Squares", - "difficulty": "Medium" - }, - "280": { - "link": "https://leetcode.com/problems/wiggle-sort", - "name": "Wiggle Sort", - "difficulty": "Medium" - }, - "281": { - "link": "https://leetcode.com/problems/zigzag-iterator", - "name": "Zigzag Iterator", - "difficulty": "Medium" - }, - "282": { - "link": "https://leetcode.com/problems/expression-add-operators", - "name": "Expression Add Operators", - "difficulty": "Hard" - }, - "283": { - "link": "https://leetcode.com/problems/move-zeroes", - "name": "Move Zeroes", - "difficulty": "Easy" - }, - "284": { - "link": "https://leetcode.com/problems/peeking-iterator", - "name": "Peeking Iterator", - "difficulty": "Medium" - }, - "285": { - "link": "https://leetcode.com/problems/inorder-successor-in-bst", - "name": "Inorder Successor in BST", - "difficulty": "Medium" - }, - "286": { - "link": "https://leetcode.com/problems/walls-and-gates", - "name": "Walls and Gates", - "difficulty": "Medium" - }, - "287": { - "link": "https://leetcode.com/problems/find-the-duplicate-number", - "name": "Find the Duplicate Number", - "difficulty": "Medium" - }, - "288": { - "link": "https://leetcode.com/problems/unique-word-abbreviation", - "name": "Unique Word Abbreviation", - "difficulty": "Medium" - }, - "289": { - "link": "https://leetcode.com/problems/game-of-life", - "name": "Game of Life", - "difficulty": "Medium" - }, - "290": { - "link": "https://leetcode.com/problems/word-pattern", - "name": "Word Pattern", - "difficulty": "Easy" - }, - "291": { - "link": "https://leetcode.com/problems/word-pattern-ii", - "name": "Word Pattern II", - "difficulty": "Hard" - }, - "292": { - "link": "https://leetcode.com/problems/nim-game", - "name": "Nim Game", - "difficulty": "Easy" - }, - "293": { - "link": "https://leetcode.com/problems/flip-game", - "name": "Flip Game", - "difficulty": "Easy" - }, - "294": { - "link": "https://leetcode.com/problems/flip-game-ii", - "name": "Flip Game II", - "difficulty": "Medium" - }, - "295": { - "link": "https://leetcode.com/problems/find-median-from-data-stream", - "name": "Find Median from Data Stream", - "difficulty": "Hard" - }, - "296": { - "link": "https://leetcode.com/problems/best-meeting-point", - "name": "Best Meeting Point", - "difficulty": "Hard" - }, - "297": { - "link": "https://leetcode.com/problems/serialize-and-deserialize-binary-tree", - "name": "Serialize and Deserialize Binary Tree", - "difficulty": "Hard" - }, - "298": { - "link": "https://leetcode.com/problems/binary-tree-longest-consecutive-sequence", - "name": "Binary Tree Longest Consecutive Sequence", - "difficulty": "Medium" - }, - "299": { - "link": "https://leetcode.com/problems/bulls-and-cows", - "name": "Bulls and Cows", - "difficulty": "Medium" - }, - "300": { - "link": "https://leetcode.com/problems/longest-increasing-subsequence", - "name": "Longest Increasing Subsequence", - "difficulty": "Medium" - }, - "301": { - "link": "https://leetcode.com/problems/remove-invalid-parentheses", - "name": "Remove Invalid Parentheses", - "difficulty": "Hard" - }, - "302": { - "link": "https://leetcode.com/problems/smallest-rectangle-enclosing-black-pixels", - "name": "Smallest Rectangle Enclosing Black Pixels", - "difficulty": "Hard" - }, - "303": { - "link": "https://leetcode.com/problems/range-sum-query-immutable", - "name": "Range Sum Query - Immutable", - "difficulty": "Easy" - }, - "304": { - "link": "https://leetcode.com/problems/range-sum-query-2d-immutable", - "name": "Range Sum Query 2D - Immutable", - "difficulty": "Medium" - }, - "305": { - "link": "https://leetcode.com/problems/number-of-islands-ii", - "name": "Number of Islands II", - "difficulty": "Hard" - }, - "306": { - "link": "https://leetcode.com/problems/additive-number", - "name": "Additive Number", - "difficulty": "Medium" - }, - "307": { - "link": "https://leetcode.com/problems/range-sum-query-mutable", - "name": "Range Sum Query - Mutable", - "difficulty": "Medium" - }, - "308": { - "link": "https://leetcode.com/problems/range-sum-query-2d-mutable", - "name": "Range Sum Query 2D - Mutable", - "difficulty": "Hard" - }, - "309": { - "link": "https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown", - "name": "Best Time to Buy and Sell Stock with Cooldown", - "difficulty": "Medium" - }, - "310": { - "link": "https://leetcode.com/problems/minimum-height-trees", - "name": "Minimum Height Trees", - "difficulty": "Medium" - }, - "311": { - "link": "https://leetcode.com/problems/sparse-matrix-multiplication", - "name": "Sparse Matrix Multiplication", - "difficulty": "Medium" - }, - "312": { - "link": "https://leetcode.com/problems/burst-balloons", - "name": "Burst Balloons", - "difficulty": "Hard" - }, - "313": { - "link": "https://leetcode.com/problems/super-ugly-number", - "name": "Super Ugly Number", - "difficulty": "Medium" - }, - "314": { - "link": "https://leetcode.com/problems/binary-tree-vertical-order-traversal", - "name": "Binary Tree Vertical Order Traversal", - "difficulty": "Medium" - }, - "315": { - "link": "https://leetcode.com/problems/count-of-smaller-numbers-after-self", - "name": "Count of Smaller Numbers After Self", - "difficulty": "Hard" - }, - "316": { - "link": "https://leetcode.com/problems/remove-duplicate-letters", - "name": "Remove Duplicate Letters", - "difficulty": "Medium" - }, - "317": { - "link": "https://leetcode.com/problems/shortest-distance-from-all-buildings", - "name": "Shortest Distance from All Buildings", - "difficulty": "Hard" - }, - "318": { - "link": "https://leetcode.com/problems/maximum-product-of-word-lengths", - "name": "Maximum Product of Word Lengths", - "difficulty": "Medium" - }, - "319": { - "link": "https://leetcode.com/problems/bulb-switcher", - "name": "Bulb Switcher", - "difficulty": "Medium" - }, - "320": { - "link": "https://leetcode.com/problems/generalized-abbreviation", - "name": "Generalized Abbreviation", - "difficulty": "Medium" - }, - "321": { - "link": "https://leetcode.com/problems/create-maximum-number", - "name": "Create Maximum Number", - "difficulty": "Hard" - }, - "322": { - "link": "https://leetcode.com/problems/coin-change", - "name": "Coin Change", - "difficulty": "Medium" - }, - "323": { - "link": "https://leetcode.com/problems/number-of-connected-components-in-an-undirected-graph", - "name": "Number of Connected Components in an Undirected Graph", - "difficulty": "Medium" - }, - "324": { - "link": "https://leetcode.com/problems/wiggle-sort-ii", - "name": "Wiggle Sort II", - "difficulty": "Medium" - }, - "325": { - "link": "https://leetcode.com/problems/maximum-size-subarray-sum-equals-k", - "name": "Maximum Size Subarray Sum Equals k", - "difficulty": "Medium" - }, - "326": { - "link": "https://leetcode.com/problems/power-of-three", - "name": "Power of Three", - "difficulty": "Easy" - }, - "327": { - "link": "https://leetcode.com/problems/count-of-range-sum", - "name": "Count of Range Sum", - "difficulty": "Hard" - }, - "328": { - "link": "https://leetcode.com/problems/odd-even-linked-list", - "name": "Odd Even Linked List", - "difficulty": "Medium" - }, - "329": { - "link": "https://leetcode.com/problems/longest-increasing-path-in-a-matrix", - "name": "Longest Increasing Path in a Matrix", - "difficulty": "Hard" - }, - "330": { - "link": "https://leetcode.com/problems/patching-array", - "name": "Patching Array", - "difficulty": "Hard" - }, - "331": { - "link": "https://leetcode.com/problems/verify-preorder-serialization-of-a-binary-tree", - "name": "Verify Preorder Serialization of a Binary Tree", - "difficulty": "Medium" - }, - "332": { - "link": "https://leetcode.com/problems/reconstruct-itinerary", - "name": "Reconstruct Itinerary", - "difficulty": "Medium" - }, - "333": { - "link": "https://leetcode.com/problems/largest-bst-subtree", - "name": "Largest BST Subtree", - "difficulty": "Medium" - }, - "334": { - "link": "https://leetcode.com/problems/increasing-triplet-subsequence", - "name": "Increasing Triplet Subsequence", - "difficulty": "Medium" - }, - "335": { - "link": "https://leetcode.com/problems/self-crossing", - "name": "Self Crossing", - "difficulty": "Hard" - }, - "336": { - "link": "https://leetcode.com/problems/palindrome-pairs", - "name": "Palindrome Pairs", - "difficulty": "Hard" - }, - "337": { - "link": "https://leetcode.com/problems/house-robber-iii", - "name": "House Robber III", - "difficulty": "Medium" - }, - "338": { - "link": "https://leetcode.com/problems/counting-bits", - "name": "Counting Bits", - "difficulty": "Medium" - }, - "339": { - "link": "https://leetcode.com/problems/nested-list-weight-sum", - "name": "Nested List Weight Sum", - "difficulty": "Easy" - }, - "340": { - "link": "https://leetcode.com/problems/longest-substring-with-at-most-k-distinct-characters", - "name": "Longest Substring with At Most K Distinct Characters", - "difficulty": "Hard" - }, - "341": { - "link": "https://leetcode.com/problems/flatten-nested-list-iterator", - "name": "Flatten Nested List Iterator", - "difficulty": "Medium" - }, - "342": { - "link": "https://leetcode.com/problems/power-of-four", - "name": "Power of Four", - "difficulty": "Easy" - }, - "343": { - "link": "https://leetcode.com/problems/integer-break", - "name": "Integer Break", - "difficulty": "Medium" - }, - "344": { - "link": "https://leetcode.com/problems/reverse-string", - "name": "Reverse String", - "difficulty": "Easy" - }, - "345": { - "link": "https://leetcode.com/problems/reverse-vowels-of-a-string", - "name": "Reverse Vowels of a String", - "difficulty": "Easy" - }, - "346": { - "link": "https://leetcode.com/problems/moving-average-from-data-stream", - "name": "Moving Average from Data Stream", - "difficulty": "Easy" - }, - "347": { - "link": "https://leetcode.com/problems/top-k-frequent-elements", - "name": "Top K Frequent Elements", - "difficulty": "Medium" - }, - "348": { - "link": "https://leetcode.com/problems/design-tic-tac-toe", - "name": "Design Tic-Tac-Toe", - "difficulty": "Medium" - }, - "349": { - "link": "https://leetcode.com/problems/intersection-of-two-arrays", - "name": "Intersection of Two Arrays", - "difficulty": "Easy" - }, - "350": { - "link": "https://leetcode.com/problems/intersection-of-two-arrays-ii", - "name": "Intersection of Two Arrays II", - "difficulty": "Easy" - }, - "351": { - "link": "https://leetcode.com/problems/android-unlock-patterns", - "name": "Android Unlock Patterns", - "difficulty": "Medium" - }, - "352": { - "link": "https://leetcode.com/problems/data-stream-as-disjoint-intervals", - "name": "Data Stream as Disjoint Intervals", - "difficulty": "Hard" - }, - "353": { - "link": "https://leetcode.com/problems/design-snake-game", - "name": "Design Snake Game", - "difficulty": "Medium" - }, - "354": { - "link": "https://leetcode.com/problems/russian-doll-envelopes", - "name": "Russian Doll Envelopes", - "difficulty": "Hard" - }, - "355": { - "link": "https://leetcode.com/problems/design-twitter", - "name": "Design Twitter", - "difficulty": "Medium" - }, - "356": { - "link": "https://leetcode.com/problems/line-reflection", - "name": "Line Reflection", - "difficulty": "Medium" - }, - "357": { - "link": "https://leetcode.com/problems/count-numbers-with-unique-digits", - "name": "Count Numbers with Unique Digits", - "difficulty": "Medium" - }, - "358": { - "link": "https://leetcode.com/problems/rearrange-string-k-distance-apart", - "name": "Rearrange String k Distance Apart", - "difficulty": "Hard" - }, - "359": { - "link": "https://leetcode.com/problems/logger-rate-limiter", - "name": "Logger Rate Limiter", - "difficulty": "Easy" - }, - "360": { - "link": "https://leetcode.com/problems/sort-transformed-array", - "name": "Sort Transformed Array", - "difficulty": "Medium" - }, - "361": { - "link": "https://leetcode.com/problems/bomb-enemy", - "name": "Bomb Enemy", - "difficulty": "Medium" - }, - "362": { - "link": "https://leetcode.com/problems/design-hit-counter", - "name": "Design Hit Counter", - "difficulty": "Medium" - }, - "363": { - "link": "https://leetcode.com/problems/max-sum-of-rectangle-no-larger-than-k", - "name": "Max Sum of Rectangle No Larger Than K", - "difficulty": "Hard" - }, - "364": { - "link": "https://leetcode.com/problems/nested-list-weight-sum-ii", - "name": "Nested List Weight Sum II", - "difficulty": "Medium" - }, - "365": { - "link": "https://leetcode.com/problems/water-and-jug-problem", - "name": "Water and Jug Problem", - "difficulty": "Medium" - }, - "366": { - "link": "https://leetcode.com/problems/find-leaves-of-binary-tree", - "name": "Find Leaves of Binary Tree", - "difficulty": "Medium" - }, - "367": { - "link": "https://leetcode.com/problems/valid-perfect-square", - "name": "Valid Perfect Square", - "difficulty": "Easy" - }, - "368": { - "link": "https://leetcode.com/problems/largest-divisible-subset", - "name": "Largest Divisible Subset", - "difficulty": "Medium" - }, - "369": { - "link": "https://leetcode.com/problems/plus-one-linked-list", - "name": "Plus One Linked List", - "difficulty": "Medium" - }, - "370": { - "link": "https://leetcode.com/problems/range-addition", - "name": "Range Addition", - "difficulty": "Medium" - }, - "371": { - "link": "https://leetcode.com/problems/sum-of-two-integers", - "name": "Sum of Two Integers", - "difficulty": "Medium" - }, - "372": { - "link": "https://leetcode.com/problems/super-pow", - "name": "Super Pow", - "difficulty": "Medium" - }, - "373": { - "link": "https://leetcode.com/problems/find-k-pairs-with-smallest-sums", - "name": "Find K Pairs with Smallest Sums", - "difficulty": "Medium" - }, - "374": { - "link": "https://leetcode.com/problems/guess-number-higher-or-lower", - "name": "Guess Number Higher or Lower", - "difficulty": "Easy" - }, - "375": { - "link": "https://leetcode.com/problems/guess-number-higher-or-lower-ii", - "name": "Guess Number Higher or Lower II", - "difficulty": "Medium" - }, - "376": { - "link": "https://leetcode.com/problems/wiggle-subsequence", - "name": "Wiggle Subsequence", - "difficulty": "Medium" - }, - "377": { - "link": "https://leetcode.com/problems/combination-sum-iv", - "name": "Combination Sum IV", - "difficulty": "Medium" - }, - "378": { - "link": "https://leetcode.com/problems/kth-smallest-element-in-a-sorted-matrix", - "name": "Kth Smallest Element in a Sorted Matrix", - "difficulty": "Medium" - }, - "379": { - "link": "https://leetcode.com/problems/design-phone-directory", - "name": "Design Phone Directory", - "difficulty": "Medium" - }, - "380": { - "link": "https://leetcode.com/problems/insert-delete-getrandom-o1", - "name": "Insert Delete GetRandom O(1)", - "difficulty": "Medium" - }, - "381": { - "link": "https://leetcode.com/problems/insert-delete-getrandom-o1-duplicates-allowed", - "name": "Insert Delete GetRandom O(1) - Duplicates allowed", - "difficulty": "Hard" - }, - "382": { - "link": "https://leetcode.com/problems/linked-list-random-node", - "name": "Linked List Random Node", - "difficulty": "Medium" - }, - "383": { - "link": "https://leetcode.com/problems/ransom-note", - "name": "Ransom Note", - "difficulty": "Easy" - }, - "384": { - "link": "https://leetcode.com/problems/shuffle-an-array", - "name": "Shuffle an Array", - "difficulty": "Medium" - }, - "385": { - "link": "https://leetcode.com/problems/mini-parser", - "name": "Mini Parser", - "difficulty": "Medium" - }, - "386": { - "link": "https://leetcode.com/problems/lexicographical-numbers", - "name": "Lexicographical Numbers", - "difficulty": "Medium" - }, - "387": { - "link": "https://leetcode.com/problems/first-unique-character-in-a-string", - "name": "First Unique Character in a String", - "difficulty": "Easy" - }, - "388": { - "link": "https://leetcode.com/problems/longest-absolute-file-path", - "name": "Longest Absolute File Path", - "difficulty": "Medium" - }, - "389": { - "link": "https://leetcode.com/problems/find-the-difference", - "name": "Find the Difference", - "difficulty": "Easy" - }, - "390": { - "link": "https://leetcode.com/problems/elimination-game", - "name": "Elimination Game", - "difficulty": "Medium" - }, - "391": { - "link": "https://leetcode.com/problems/perfect-rectangle", - "name": "Perfect Rectangle", - "difficulty": "Hard" - }, - "392": { - "link": "https://leetcode.com/problems/is-subsequence", - "name": "Is Subsequence", - "difficulty": "Easy" - }, - "393": { - "link": "https://leetcode.com/problems/utf-8-validation", - "name": "UTF-8 Validation", - "difficulty": "Medium" - }, - "394": { - "link": "https://leetcode.com/problems/decode-string", - "name": "Decode String", - "difficulty": "Medium" - }, - "395": { - "link": "https://leetcode.com/problems/longest-substring-with-at-least-k-repeating-characters", - "name": "Longest Substring with At Least K Repeating Characters", - "difficulty": "Medium" - }, - "396": { - "link": "https://leetcode.com/problems/rotate-function", - "name": "Rotate Function", - "difficulty": "Medium" - }, - "397": { - "link": "https://leetcode.com/problems/integer-replacement", - "name": "Integer Replacement", - "difficulty": "Medium" - }, - "398": { - "link": "https://leetcode.com/problems/random-pick-index", - "name": "Random Pick Index", - "difficulty": "Medium" - }, - "399": { - "link": "https://leetcode.com/problems/evaluate-division", - "name": "Evaluate Division", - "difficulty": "Medium" - }, - "400": { - "link": "https://leetcode.com/problems/nth-digit", - "name": "Nth Digit", - "difficulty": "Medium" - }, - "401": { - "link": "https://leetcode.com/problems/binary-watch", - "name": "Binary Watch", - "difficulty": "Easy" - }, - "402": { - "link": "https://leetcode.com/problems/remove-k-digits", - "name": "Remove K Digits", - "difficulty": "Medium" - }, - "403": { - "link": "https://leetcode.com/problems/frog-jump", - "name": "Frog Jump", - "difficulty": "Hard" - }, - "404": { - "link": "https://leetcode.com/problems/sum-of-left-leaves", - "name": "Sum of Left Leaves", - "difficulty": "Easy" - }, - "405": { - "link": "https://leetcode.com/problems/convert-a-number-to-hexadecimal", - "name": "Convert a Number to Hexadecimal", - "difficulty": "Easy" - }, - "406": { - "link": "https://leetcode.com/problems/queue-reconstruction-by-height", - "name": "Queue Reconstruction by Height", - "difficulty": "Medium" - }, - "407": { - "link": "https://leetcode.com/problems/trapping-rain-water-ii", - "name": "Trapping Rain Water II", - "difficulty": "Hard" - }, - "408": { - "link": "https://leetcode.com/problems/valid-word-abbreviation", - "name": "Valid Word Abbreviation", - "difficulty": "Easy" - }, - "409": { - "link": "https://leetcode.com/problems/longest-palindrome", - "name": "Longest Palindrome", - "difficulty": "Easy" - }, - "410": { - "link": "https://leetcode.com/problems/split-array-largest-sum", - "name": "Split Array Largest Sum", - "difficulty": "Hard" - }, - "411": { - "link": "https://leetcode.com/problems/minimum-unique-word-abbreviation", - "name": "Minimum Unique Word Abbreviation", - "difficulty": "Hard" - }, - "412": { - "link": "https://leetcode.com/problems/fizz-buzz", - "name": "Fizz Buzz", - "difficulty": "Easy" - }, - "413": { - "link": "https://leetcode.com/problems/arithmetic-slices", - "name": "Arithmetic Slices", - "difficulty": "Medium" - }, - "414": { - "link": "https://leetcode.com/problems/third-maximum-number", - "name": "Third Maximum Number", - "difficulty": "Easy" - }, - "415": { - "link": "https://leetcode.com/problems/add-strings", - "name": "Add Strings", - "difficulty": "Easy" - }, - "416": { - "link": "https://leetcode.com/problems/partition-equal-subset-sum", - "name": "Partition Equal Subset Sum", - "difficulty": "Medium" - }, - "417": { - "link": "https://leetcode.com/problems/pacific-atlantic-water-flow", - "name": "Pacific Atlantic Water Flow", - "difficulty": "Medium" - }, - "418": { - "link": "https://leetcode.com/problems/sentence-screen-fitting", - "name": "Sentence Screen Fitting", - "difficulty": "Medium" - }, - "419": { - "link": "https://leetcode.com/problems/battleships-in-a-board", - "name": "Battleships in a Board", - "difficulty": "Medium" - }, - "420": { - "link": "https://leetcode.com/problems/strong-password-checker", - "name": "Strong Password Checker", - "difficulty": "Hard" - }, - "421": { - "link": "https://leetcode.com/problems/maximum-xor-of-two-numbers-in-an-array", - "name": "Maximum XOR of Two Numbers in an Array", - "difficulty": "Medium" - }, - "422": { - "link": "https://leetcode.com/problems/valid-word-square", - "name": "Valid Word Square", - "difficulty": "Easy" - }, - "423": { - "link": "https://leetcode.com/problems/reconstruct-original-digits-from-english", - "name": "Reconstruct Original Digits from English", - "difficulty": "Medium" - }, - "424": { - "link": "https://leetcode.com/problems/longest-repeating-character-replacement", - "name": "Longest Repeating Character Replacement", - "difficulty": "Medium" - }, - "425": { - "link": "https://leetcode.com/problems/word-squares", - "name": "Word Squares", - "difficulty": "Hard" - }, - "426": { - "link": "https://leetcode.com/problems/convert-binary-search-tree-to-sorted-doubly-linked-list", - "name": "Convert Binary Search Tree to Sorted Doubly Linked List", - "difficulty": "Medium" - }, - "427": { - "link": "https://leetcode.com/problems/construct-quad-tree", - "name": "Construct Quad Tree", - "difficulty": "Medium" - }, - "428": { - "link": "https://leetcode.com/problems/serialize-and-deserialize-n-ary-tree", - "name": "Serialize and Deserialize N-ary Tree", - "difficulty": "Hard" - }, - "429": { - "link": "https://leetcode.com/problems/n-ary-tree-level-order-traversal", - "name": "N-ary Tree Level Order Traversal", - "difficulty": "Medium" - }, - "430": { - "link": "https://leetcode.com/problems/flatten-a-multilevel-doubly-linked-list", - "name": "Flatten a Multilevel Doubly Linked List", - "difficulty": "Medium" - }, - "431": { - "link": "https://leetcode.com/problems/encode-n-ary-tree-to-binary-tree", - "name": "Encode N-ary Tree to Binary Tree", - "difficulty": "Hard" - }, - "432": { - "link": "https://leetcode.com/problems/all-oone-data-structure", - "name": "All O`one Data Structure", - "difficulty": "Hard" - }, - "433": { - "link": "https://leetcode.com/problems/minimum-genetic-mutation", - "name": "Minimum Genetic Mutation", - "difficulty": "Medium" - }, - "434": { - "link": "https://leetcode.com/problems/number-of-segments-in-a-string", - "name": "Number of Segments in a String", - "difficulty": "Easy" - }, - "435": { - "link": "https://leetcode.com/problems/non-overlapping-intervals", - "name": "Non-overlapping Intervals", - "difficulty": "Medium" - }, - "436": { - "link": "https://leetcode.com/problems/find-right-interval", - "name": "Find Right Interval", - "difficulty": "Medium" - }, - "437": { - "link": "https://leetcode.com/problems/path-sum-iii", - "name": "Path Sum III", - "difficulty": "Medium" - }, - "438": { - "link": "https://leetcode.com/problems/find-all-anagrams-in-a-string", - "name": "Find All Anagrams in a String", - "difficulty": "Medium" - }, - "439": { - "link": "https://leetcode.com/problems/ternary-expression-parser", - "name": "Ternary Expression Parser", - "difficulty": "Medium" - }, - "440": { - "link": "https://leetcode.com/problems/k-th-smallest-in-lexicographical-order", - "name": "K-th Smallest in Lexicographical Order", - "difficulty": "Hard" - }, - "441": { - "link": "https://leetcode.com/problems/arranging-coins", - "name": "Arranging Coins", - "difficulty": "Easy" - }, - "442": { - "link": "https://leetcode.com/problems/find-all-duplicates-in-an-array", - "name": "Find All Duplicates in an Array", - "difficulty": "Medium" - }, - "443": { - "link": "https://leetcode.com/problems/string-compression", - "name": "String Compression", - "difficulty": "Medium" - }, - "444": { - "link": "https://leetcode.com/problems/sequence-reconstruction", - "name": "Sequence Reconstruction", - "difficulty": "Medium" - }, - "445": { - "link": "https://leetcode.com/problems/add-two-numbers-ii", - "name": "Add Two Numbers II", - "difficulty": "Medium" - }, - "446": { - "link": "https://leetcode.com/problems/arithmetic-slices-ii-subsequence", - "name": "Arithmetic Slices II - Subsequence", - "difficulty": "Hard" - }, - "447": { - "link": "https://leetcode.com/problems/number-of-boomerangs", - "name": "Number of Boomerangs", - "difficulty": "Easy" - }, - "448": { - "link": "https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array", - "name": "Find All Numbers Disappeared in an Array", - "difficulty": "Easy" - }, - "449": { - "link": "https://leetcode.com/problems/serialize-and-deserialize-bst", - "name": "Serialize and Deserialize BST", - "difficulty": "Medium" - }, - "450": { - "link": "https://leetcode.com/problems/delete-node-in-a-bst", - "name": "Delete Node in a BST", - "difficulty": "Medium" - }, - "451": { - "link": "https://leetcode.com/problems/sort-characters-by-frequency", - "name": "Sort Characters By Frequency", - "difficulty": "Medium" - }, - "452": { - "link": "https://leetcode.com/problems/minimum-number-of-arrows-to-burst-balloons", - "name": "Minimum Number of Arrows to Burst Balloons", - "difficulty": "Medium" - }, - "453": { - "link": "https://leetcode.com/problems/minimum-moves-to-equal-array-elements", - "name": "Minimum Moves to Equal Array Elements", - "difficulty": "Easy" - }, - "454": { - "link": "https://leetcode.com/problems/4sum-ii", - "name": "4Sum II", - "difficulty": "Medium" - }, - "455": { - "link": "https://leetcode.com/problems/assign-cookies", - "name": "Assign Cookies", - "difficulty": "Easy" - }, - "456": { - "link": "https://leetcode.com/problems/132-pattern", - "name": "132 Pattern", - "difficulty": "Medium" - }, - "457": { - "link": "https://leetcode.com/problems/circular-array-loop", - "name": "Circular Array Loop", - "difficulty": "Medium" - }, - "458": { - "link": "https://leetcode.com/problems/poor-pigs", - "name": "Poor Pigs", - "difficulty": "Hard" - }, - "459": { - "link": "https://leetcode.com/problems/repeated-substring-pattern", - "name": "Repeated Substring Pattern", - "difficulty": "Easy" - }, - "460": { - "link": "https://leetcode.com/problems/lfu-cache", - "name": "LFU Cache", - "difficulty": "Hard" - }, - "461": { - "link": "https://leetcode.com/problems/hamming-distance", - "name": "Hamming Distance", - "difficulty": "Easy" - }, - "462": { - "link": "https://leetcode.com/problems/minimum-moves-to-equal-array-elements-ii", - "name": "Minimum Moves to Equal Array Elements II", - "difficulty": "Medium" - }, - "463": { - "link": "https://leetcode.com/problems/island-perimeter", - "name": "Island Perimeter", - "difficulty": "Easy" - }, - "464": { - "link": "https://leetcode.com/problems/can-i-win", - "name": "Can I Win", - "difficulty": "Medium" - }, - "465": { - "link": "https://leetcode.com/problems/optimal-account-balancing", - "name": "Optimal Account Balancing", - "difficulty": "Hard" - }, - "466": { - "link": "https://leetcode.com/problems/count-the-repetitions", - "name": "Count The Repetitions", - "difficulty": "Hard" - }, - "467": { - "link": "https://leetcode.com/problems/unique-substrings-in-wraparound-string", - "name": "Unique Substrings in Wraparound String", - "difficulty": "Medium" - }, - "468": { - "link": "https://leetcode.com/problems/validate-ip-address", - "name": "Validate IP Address", - "difficulty": "Medium" - }, - "469": { - "link": "https://leetcode.com/problems/convex-polygon", - "name": "Convex Polygon", - "difficulty": "Medium" - }, - "470": { - "link": "https://leetcode.com/problems/implement-rand10-using-rand7", - "name": "Implement Rand10() Using Rand7()", - "difficulty": "Medium" - }, - "471": { - "link": "https://leetcode.com/problems/encode-string-with-shortest-length", - "name": "Encode String with Shortest Length", - "difficulty": "Hard" - }, - "472": { - "link": "https://leetcode.com/problems/concatenated-words", - "name": "Concatenated Words", - "difficulty": "Hard" - }, - "473": { - "link": "https://leetcode.com/problems/matchsticks-to-square", - "name": "Matchsticks to Square", - "difficulty": "Medium" - }, - "474": { - "link": "https://leetcode.com/problems/ones-and-zeroes", - "name": "Ones and Zeroes", - "difficulty": "Medium" - }, - "475": { - "link": "https://leetcode.com/problems/heaters", - "name": "Heaters", - "difficulty": "Medium" - }, - "476": { - "link": "https://leetcode.com/problems/number-complement", - "name": "Number Complement", - "difficulty": "Easy" - }, - "477": { - "link": "https://leetcode.com/problems/total-hamming-distance", - "name": "Total Hamming Distance", - "difficulty": "Medium" - }, - "478": { - "link": "https://leetcode.com/problems/generate-random-point-in-a-circle", - "name": "Generate Random Point in a Circle", - "difficulty": "Medium" - }, - "479": { - "link": "https://leetcode.com/problems/largest-palindrome-product", - "name": "Largest Palindrome Product", - "difficulty": "Hard" - }, - "480": { - "link": "https://leetcode.com/problems/sliding-window-median", - "name": "Sliding Window Median", - "difficulty": "Hard" - }, - "481": { - "link": "https://leetcode.com/problems/magical-string", - "name": "Magical String", - "difficulty": "Medium" - }, - "482": { - "link": "https://leetcode.com/problems/license-key-formatting", - "name": "License Key Formatting", - "difficulty": "Easy" - }, - "483": { - "link": "https://leetcode.com/problems/smallest-good-base", - "name": "Smallest Good Base", - "difficulty": "Hard" - }, - "484": { - "link": "https://leetcode.com/problems/find-permutation", - "name": "Find Permutation", - "difficulty": "Medium" - }, - "485": { - "link": "https://leetcode.com/problems/max-consecutive-ones", - "name": "Max Consecutive Ones", - "difficulty": "Easy" - }, - "486": { - "link": "https://leetcode.com/problems/predict-the-winner", - "name": "Predict the Winner", - "difficulty": "Medium" - }, - "487": { - "link": "https://leetcode.com/problems/max-consecutive-ones-ii", - "name": "Max Consecutive Ones II", - "difficulty": "Medium" - }, - "488": { - "link": "https://leetcode.com/problems/zuma-game", - "name": "Zuma Game", - "difficulty": "Hard" - }, - "489": { - "link": "https://leetcode.com/problems/robot-room-cleaner", - "name": "Robot Room Cleaner", - "difficulty": "Hard" - }, - "490": { - "link": "https://leetcode.com/problems/the-maze", - "name": "The Maze", - "difficulty": "Medium" - }, - "491": { - "link": "https://leetcode.com/problems/increasing-subsequences", - "name": "Increasing Subsequences", - "difficulty": "Medium" - }, - "492": { - "link": "https://leetcode.com/problems/construct-the-rectangle", - "name": "Construct the Rectangle", - "difficulty": "Easy" - }, - "493": { - "link": "https://leetcode.com/problems/reverse-pairs", - "name": "Reverse Pairs", - "difficulty": "Hard" - }, - "494": { - "link": "https://leetcode.com/problems/target-sum", - "name": "Target Sum", - "difficulty": "Medium" - }, - "495": { - "link": "https://leetcode.com/problems/teemo-attacking", - "name": "Teemo Attacking", - "difficulty": "Medium" - }, - "496": { - "link": "https://leetcode.com/problems/next-greater-element-i", - "name": "Next Greater Element I", - "difficulty": "Easy" - }, - "497": { - "link": "https://leetcode.com/problems/random-point-in-non-overlapping-rectangles", - "name": "Random Point in Non-overlapping Rectangles", - "difficulty": "Medium" - }, - "498": { - "link": "https://leetcode.com/problems/diagonal-traverse", - "name": "Diagonal Traverse", - "difficulty": "Medium" - }, - "499": { - "link": "https://leetcode.com/problems/the-maze-iii", - "name": "The Maze III", - "difficulty": "Hard" - }, - "500": { - "link": "https://leetcode.com/problems/keyboard-row", - "name": "Keyboard Row", - "difficulty": "Easy" - }, - "501": { - "link": "https://leetcode.com/problems/find-mode-in-binary-search-tree", - "name": "Find Mode in Binary Search Tree", - "difficulty": "Easy" - }, - "502": { - "link": "https://leetcode.com/problems/ipo", - "name": "IPO", - "difficulty": "Hard" - }, - "503": { - "link": "https://leetcode.com/problems/next-greater-element-ii", - "name": "Next Greater Element II", - "difficulty": "Medium" - }, - "504": { - "link": "https://leetcode.com/problems/base-7", - "name": "Base 7", - "difficulty": "Easy" - }, - "505": { - "link": "https://leetcode.com/problems/the-maze-ii", - "name": "The Maze II", - "difficulty": "Medium" - }, - "506": { - "link": "https://leetcode.com/problems/relative-ranks", - "name": "Relative Ranks", - "difficulty": "Easy" - }, - "507": { - "link": "https://leetcode.com/problems/perfect-number", - "name": "Perfect Number", - "difficulty": "Easy" - }, - "508": { - "link": "https://leetcode.com/problems/most-frequent-subtree-sum", - "name": "Most Frequent Subtree Sum", - "difficulty": "Medium" - }, - "509": { - "link": "https://leetcode.com/problems/fibonacci-number", - "name": "Fibonacci Number", - "difficulty": "Easy" - }, - "510": { - "link": "https://leetcode.com/problems/inorder-successor-in-bst-ii", - "name": "Inorder Successor in BST II", - "difficulty": "Medium" - }, - "513": { - "link": "https://leetcode.com/problems/find-bottom-left-tree-value", - "name": "Find Bottom Left Tree Value", - "difficulty": "Medium" - }, - "514": { - "link": "https://leetcode.com/problems/freedom-trail", - "name": "Freedom Trail", - "difficulty": "Hard" - }, - "515": { - "link": "https://leetcode.com/problems/find-largest-value-in-each-tree-row", - "name": "Find Largest Value in Each Tree Row", - "difficulty": "Medium" - }, - "516": { - "link": "https://leetcode.com/problems/longest-palindromic-subsequence", - "name": "Longest Palindromic Subsequence", - "difficulty": "Medium" - }, - "517": { - "link": "https://leetcode.com/problems/super-washing-machines", - "name": "Super Washing Machines", - "difficulty": "Hard" - }, - "518": { - "link": "https://leetcode.com/problems/coin-change-2", - "name": "Coin Change 2", - "difficulty": "Medium" - }, - "519": { - "link": "https://leetcode.com/problems/random-flip-matrix", - "name": "Random Flip Matrix", - "difficulty": "Medium" - }, - "520": { - "link": "https://leetcode.com/problems/detect-capital", - "name": "Detect Capital", - "difficulty": "Easy" - }, - "521": { - "link": "https://leetcode.com/problems/longest-uncommon-subsequence-i", - "name": "Longest Uncommon Subsequence I", - "difficulty": "Easy" - }, - "522": { - "link": "https://leetcode.com/problems/longest-uncommon-subsequence-ii", - "name": "Longest Uncommon Subsequence II", - "difficulty": "Medium" - }, - "523": { - "link": "https://leetcode.com/problems/continuous-subarray-sum", - "name": "Continuous Subarray Sum", - "difficulty": "Medium" - }, - "524": { - "link": "https://leetcode.com/problems/longest-word-in-dictionary-through-deleting", - "name": "Longest Word in Dictionary through Deleting", - "difficulty": "Medium" - }, - "525": { - "link": "https://leetcode.com/problems/contiguous-array", - "name": "Contiguous Array", - "difficulty": "Medium" - }, - "526": { - "link": "https://leetcode.com/problems/beautiful-arrangement", - "name": "Beautiful Arrangement", - "difficulty": "Medium" - }, - "527": { - "link": "https://leetcode.com/problems/word-abbreviation", - "name": "Word Abbreviation", - "difficulty": "Hard" - }, - "528": { - "link": "https://leetcode.com/problems/random-pick-with-weight", - "name": "Random Pick with Weight", - "difficulty": "Medium" - }, - "529": { - "link": "https://leetcode.com/problems/minesweeper", - "name": "Minesweeper", - "difficulty": "Medium" - }, - "530": { - "link": "https://leetcode.com/problems/minimum-absolute-difference-in-bst", - "name": "Minimum Absolute Difference in BST", - "difficulty": "Easy" - }, - "531": { - "link": "https://leetcode.com/problems/lonely-pixel-i", - "name": "Lonely Pixel I", - "difficulty": "Medium" - }, - "532": { - "link": "https://leetcode.com/problems/k-diff-pairs-in-an-array", - "name": "K-diff Pairs in an Array", - "difficulty": "Medium" - }, - "533": { - "link": "https://leetcode.com/problems/lonely-pixel-ii", - "name": "Lonely Pixel II", - "difficulty": "Medium" - }, - "535": { - "link": "https://leetcode.com/problems/encode-and-decode-tinyurl", - "name": "Encode and Decode TinyURL", - "difficulty": "Medium" - }, - "536": { - "link": "https://leetcode.com/problems/construct-binary-tree-from-string", - "name": "Construct Binary Tree from String", - "difficulty": "Medium" - }, - "537": { - "link": "https://leetcode.com/problems/complex-number-multiplication", - "name": "Complex Number Multiplication", - "difficulty": "Medium" - }, - "538": { - "link": "https://leetcode.com/problems/convert-bst-to-greater-tree", - "name": "Convert BST to Greater Tree", - "difficulty": "Medium" - }, - "539": { - "link": "https://leetcode.com/problems/minimum-time-difference", - "name": "Minimum Time Difference", - "difficulty": "Medium" - }, - "540": { - "link": "https://leetcode.com/problems/single-element-in-a-sorted-array", - "name": "Single Element in a Sorted Array", - "difficulty": "Medium" - }, - "541": { - "link": "https://leetcode.com/problems/reverse-string-ii", - "name": "Reverse String II", - "difficulty": "Easy" - }, - "542": { - "link": "https://leetcode.com/problems/01-matrix", - "name": "01 Matrix", - "difficulty": "Medium" - }, - "543": { - "link": "https://leetcode.com/problems/diameter-of-binary-tree", - "name": "Diameter of Binary Tree", - "difficulty": "Easy" - }, - "544": { - "link": "https://leetcode.com/problems/output-contest-matches", - "name": "Output Contest Matches", - "difficulty": "Medium" - }, - "545": { - "link": "https://leetcode.com/problems/boundary-of-binary-tree", - "name": "Boundary of Binary Tree", - "difficulty": "Medium" - }, - "546": { - "link": "https://leetcode.com/problems/remove-boxes", - "name": "Remove Boxes", - "difficulty": "Hard" - }, - "547": { - "link": "https://leetcode.com/problems/friend-circles", - "name": "Friend Circles", - "difficulty": "Medium" - }, - "548": { - "link": "https://leetcode.com/problems/split-array-with-equal-sum", - "name": "Split Array with Equal Sum", - "difficulty": "Medium" - }, - "549": { - "link": "https://leetcode.com/problems/binary-tree-longest-consecutive-sequence-ii", - "name": "Binary Tree Longest Consecutive Sequence II", - "difficulty": "Medium" - }, - "551": { - "link": "https://leetcode.com/problems/student-attendance-record-i", - "name": "Student Attendance Record I", - "difficulty": "Easy" - }, - "552": { - "link": "https://leetcode.com/problems/student-attendance-record-ii", - "name": "Student Attendance Record II", - "difficulty": "Hard" - }, - "553": { - "link": "https://leetcode.com/problems/optimal-division", - "name": "Optimal Division", - "difficulty": "Medium" - }, - "554": { - "link": "https://leetcode.com/problems/brick-wall", - "name": "Brick Wall", - "difficulty": "Medium" - }, - "555": { - "link": "https://leetcode.com/problems/split-concatenated-strings", - "name": "Split Concatenated Strings", - "difficulty": "Medium" - }, - "556": { - "link": "https://leetcode.com/problems/next-greater-element-iii", - "name": "Next Greater Element III", - "difficulty": "Medium" - }, - "557": { - "link": "https://leetcode.com/problems/reverse-words-in-a-string-iii", - "name": "Reverse Words in a String III", - "difficulty": "Easy" - }, - "558": { - "link": "https://leetcode.com/problems/logical-or-of-two-binary-grids-represented-as-quad-trees", - "name": "Logical OR of Two Binary Grids Represented as Quad-Trees", - "difficulty": "Medium" - }, - "559": { - "link": "https://leetcode.com/problems/maximum-depth-of-n-ary-tree", - "name": "Maximum Depth of N-ary Tree", - "difficulty": "Easy" - }, - "560": { - "link": "https://leetcode.com/problems/subarray-sum-equals-k", - "name": "Subarray Sum Equals K", - "difficulty": "Medium" - }, - "561": { - "link": "https://leetcode.com/problems/array-partition-i", - "name": "Array Partition I", - "difficulty": "Easy" - }, - "562": { - "link": "https://leetcode.com/problems/longest-line-of-consecutive-one-in-matrix", - "name": "Longest Line of Consecutive One in Matrix", - "difficulty": "Medium" - }, - "563": { - "link": "https://leetcode.com/problems/binary-tree-tilt", - "name": "Binary Tree Tilt", - "difficulty": "Easy" - }, - "564": { - "link": "https://leetcode.com/problems/find-the-closest-palindrome", - "name": "Find the Closest Palindrome", - "difficulty": "Hard" - }, - "565": { - "link": "https://leetcode.com/problems/array-nesting", - "name": "Array Nesting", - "difficulty": "Medium" - }, - "566": { - "link": "https://leetcode.com/problems/reshape-the-matrix", - "name": "Reshape the Matrix", - "difficulty": "Easy" - }, - "567": { - "link": "https://leetcode.com/problems/permutation-in-string", - "name": "Permutation in String", - "difficulty": "Medium" - }, - "568": { - "link": "https://leetcode.com/problems/maximum-vacation-days", - "name": "Maximum Vacation Days", - "difficulty": "Hard" - }, - "572": { - "link": "https://leetcode.com/problems/subtree-of-another-tree", - "name": "Subtree of Another Tree", - "difficulty": "Easy" - }, - "573": { - "link": "https://leetcode.com/problems/squirrel-simulation", - "name": "Squirrel Simulation", - "difficulty": "Medium" - }, - "575": { - "link": "https://leetcode.com/problems/distribute-candies", - "name": "Distribute Candies", - "difficulty": "Easy" - }, - "576": { - "link": "https://leetcode.com/problems/out-of-boundary-paths", - "name": "Out of Boundary Paths", - "difficulty": "Medium" - }, - "581": { - "link": "https://leetcode.com/problems/shortest-unsorted-continuous-subarray", - "name": "Shortest Unsorted Continuous Subarray", - "difficulty": "Medium" - }, - "582": { - "link": "https://leetcode.com/problems/kill-process", - "name": "Kill Process", - "difficulty": "Medium" - }, - "583": { - "link": "https://leetcode.com/problems/delete-operation-for-two-strings", - "name": "Delete Operation for Two Strings", - "difficulty": "Medium" - }, - "587": { - "link": "https://leetcode.com/problems/erect-the-fence", - "name": "Erect the Fence", - "difficulty": "Hard" - }, - "588": { - "link": "https://leetcode.com/problems/design-in-memory-file-system", - "name": "Design In-Memory File System", - "difficulty": "Hard" - }, - "589": { - "link": "https://leetcode.com/problems/n-ary-tree-preorder-traversal", - "name": "N-ary Tree Preorder Traversal", - "difficulty": "Easy" - }, - "590": { - "link": "https://leetcode.com/problems/n-ary-tree-postorder-traversal", - "name": "N-ary Tree Postorder Traversal", - "difficulty": "Easy" - }, - "591": { - "link": "https://leetcode.com/problems/tag-validator", - "name": "Tag Validator", - "difficulty": "Hard" - }, - "592": { - "link": "https://leetcode.com/problems/fraction-addition-and-subtraction", - "name": "Fraction Addition and Subtraction", - "difficulty": "Medium" - }, - "593": { - "link": "https://leetcode.com/problems/valid-square", - "name": "Valid Square", - "difficulty": "Medium" - }, - "594": { - "link": "https://leetcode.com/problems/longest-harmonious-subsequence", - "name": "Longest Harmonious Subsequence", - "difficulty": "Easy" - }, - "598": { - "link": "https://leetcode.com/problems/range-addition-ii", - "name": "Range Addition II", - "difficulty": "Easy" - }, - "599": { - "link": "https://leetcode.com/problems/minimum-index-sum-of-two-lists", - "name": "Minimum Index Sum of Two Lists", - "difficulty": "Easy" - }, - "600": { - "link": "https://leetcode.com/problems/non-negative-integers-without-consecutive-ones", - "name": "Non-negative Integers without Consecutive Ones", - "difficulty": "Hard" - }, - "604": { - "link": "https://leetcode.com/problems/design-compressed-string-iterator", - "name": "Design Compressed String Iterator", - "difficulty": "Easy" - }, - "605": { - "link": "https://leetcode.com/problems/can-place-flowers", - "name": "Can Place Flowers", - "difficulty": "Easy" - }, - "606": { - "link": "https://leetcode.com/problems/construct-string-from-binary-tree", - "name": "Construct String from Binary Tree", - "difficulty": "Easy" - }, - "609": { - "link": "https://leetcode.com/problems/find-duplicate-file-in-system", - "name": "Find Duplicate File in System", - "difficulty": "Medium" - }, - "611": { - "link": "https://leetcode.com/problems/valid-triangle-number", - "name": "Valid Triangle Number", - "difficulty": "Medium" - }, - "616": { - "link": "https://leetcode.com/problems/add-bold-tag-in-string", - "name": "Add Bold Tag in String", - "difficulty": "Medium" - }, - "617": { - "link": "https://leetcode.com/problems/merge-two-binary-trees", - "name": "Merge Two Binary Trees", - "difficulty": "Easy" - }, - "621": { - "link": "https://leetcode.com/problems/task-scheduler", - "name": "Task Scheduler", - "difficulty": "Medium" - }, - "622": { - "link": "https://leetcode.com/problems/design-circular-queue", - "name": "Design Circular Queue", - "difficulty": "Medium" - }, - "623": { - "link": "https://leetcode.com/problems/add-one-row-to-tree", - "name": "Add One Row to Tree", - "difficulty": "Medium" - }, - "624": { - "link": "https://leetcode.com/problems/maximum-distance-in-arrays", - "name": "Maximum Distance in Arrays", - "difficulty": "Medium" - }, - "625": { - "link": "https://leetcode.com/problems/minimum-factorization", - "name": "Minimum Factorization", - "difficulty": "Medium" - }, - "628": { - "link": "https://leetcode.com/problems/maximum-product-of-three-numbers", - "name": "Maximum Product of Three Numbers", - "difficulty": "Easy" - }, - "629": { - "link": "https://leetcode.com/problems/k-inverse-pairs-array", - "name": "K Inverse Pairs Array", - "difficulty": "Hard" - }, - "630": { - "link": "https://leetcode.com/problems/course-schedule-iii", - "name": "Course Schedule III", - "difficulty": "Hard" - }, - "631": { - "link": "https://leetcode.com/problems/design-excel-sum-formula", - "name": "Design Excel Sum Formula", - "difficulty": "Hard" - }, - "632": { - "link": "https://leetcode.com/problems/smallest-range-covering-elements-from-k-lists", - "name": "Smallest Range Covering Elements from K Lists", - "difficulty": "Hard" - }, - "633": { - "link": "https://leetcode.com/problems/sum-of-square-numbers", - "name": "Sum of Square Numbers", - "difficulty": "Medium" - }, - "634": { - "link": "https://leetcode.com/problems/find-the-derangement-of-an-array", - "name": "Find the Derangement of An Array", - "difficulty": "Medium" - }, - "635": { - "link": "https://leetcode.com/problems/design-log-storage-system", - "name": "Design Log Storage System", - "difficulty": "Medium" - }, - "636": { - "link": "https://leetcode.com/problems/exclusive-time-of-functions", - "name": "Exclusive Time of Functions", - "difficulty": "Medium" - }, - "637": { - "link": "https://leetcode.com/problems/average-of-levels-in-binary-tree", - "name": "Average of Levels in Binary Tree", - "difficulty": "Easy" - }, - "638": { - "link": "https://leetcode.com/problems/shopping-offers", - "name": "Shopping Offers", - "difficulty": "Medium" - }, - "639": { - "link": "https://leetcode.com/problems/decode-ways-ii", - "name": "Decode Ways II", - "difficulty": "Hard" - }, - "640": { - "link": "https://leetcode.com/problems/solve-the-equation", - "name": "Solve the Equation", - "difficulty": "Medium" - }, - "641": { - "link": "https://leetcode.com/problems/design-circular-deque", - "name": "Design Circular Deque", - "difficulty": "Medium" - }, - "642": { - "link": "https://leetcode.com/problems/design-search-autocomplete-system", - "name": "Design Search Autocomplete System", - "difficulty": "Hard" - }, - "643": { - "link": "https://leetcode.com/problems/maximum-average-subarray-i", - "name": "Maximum Average Subarray I", - "difficulty": "Easy" - }, - "644": { - "link": "https://leetcode.com/problems/maximum-average-subarray-ii", - "name": "Maximum Average Subarray II", - "difficulty": "Hard" - }, - "645": { - "link": "https://leetcode.com/problems/set-mismatch", - "name": "Set Mismatch", - "difficulty": "Easy" - }, - "646": { - "link": "https://leetcode.com/problems/maximum-length-of-pair-chain", - "name": "Maximum Length of Pair Chain", - "difficulty": "Medium" - }, - "647": { - "link": "https://leetcode.com/problems/palindromic-substrings", - "name": "Palindromic Substrings", - "difficulty": "Medium" - }, - "648": { - "link": "https://leetcode.com/problems/replace-words", - "name": "Replace Words", - "difficulty": "Medium" - }, - "649": { - "link": "https://leetcode.com/problems/dota2-senate", - "name": "Dota2 Senate", - "difficulty": "Medium" - }, - "650": { - "link": "https://leetcode.com/problems/2-keys-keyboard", - "name": "2 Keys Keyboard", - "difficulty": "Medium" - }, - "651": { - "link": "https://leetcode.com/problems/4-keys-keyboard", - "name": "4 Keys Keyboard", - "difficulty": "Medium" - }, - "652": { - "link": "https://leetcode.com/problems/find-duplicate-subtrees", - "name": "Find Duplicate Subtrees", - "difficulty": "Medium" - }, - "653": { - "link": "https://leetcode.com/problems/two-sum-iv-input-is-a-bst", - "name": "Two Sum IV - Input is a BST", - "difficulty": "Easy" - }, - "654": { - "link": "https://leetcode.com/problems/maximum-binary-tree", - "name": "Maximum Binary Tree", - "difficulty": "Medium" - }, - "655": { - "link": "https://leetcode.com/problems/print-binary-tree", - "name": "Print Binary Tree", - "difficulty": "Medium" - }, - "656": { - "link": "https://leetcode.com/problems/coin-path", - "name": "Coin Path", - "difficulty": "Hard" - }, - "657": { - "link": "https://leetcode.com/problems/robot-return-to-origin", - "name": "Robot Return to Origin", - "difficulty": "Easy" - }, - "658": { - "link": "https://leetcode.com/problems/find-k-closest-elements", - "name": "Find K Closest Elements", - "difficulty": "Medium" - }, - "659": { - "link": "https://leetcode.com/problems/split-array-into-consecutive-subsequences", - "name": "Split Array into Consecutive Subsequences", - "difficulty": "Medium" - }, - "660": { - "link": "https://leetcode.com/problems/remove-9", - "name": "Remove 9", - "difficulty": "Hard" - }, - "661": { - "link": "https://leetcode.com/problems/image-smoother", - "name": "Image Smoother", - "difficulty": "Easy" - }, - "662": { - "link": "https://leetcode.com/problems/maximum-width-of-binary-tree", - "name": "Maximum Width of Binary Tree", - "difficulty": "Medium" - }, - "663": { - "link": "https://leetcode.com/problems/equal-tree-partition", - "name": "Equal Tree Partition", - "difficulty": "Medium" - }, - "664": { - "link": "https://leetcode.com/problems/strange-printer", - "name": "Strange Printer", - "difficulty": "Hard" - }, - "665": { - "link": "https://leetcode.com/problems/non-decreasing-array", - "name": "Non-decreasing Array", - "difficulty": "Easy" - }, - "666": { - "link": "https://leetcode.com/problems/path-sum-iv", - "name": "Path Sum IV", - "difficulty": "Medium" - }, - "667": { - "link": "https://leetcode.com/problems/beautiful-arrangement-ii", - "name": "Beautiful Arrangement II", - "difficulty": "Medium" - }, - "668": { - "link": "https://leetcode.com/problems/kth-smallest-number-in-multiplication-table", - "name": "Kth Smallest Number in Multiplication Table", - "difficulty": "Hard" - }, - "669": { - "link": "https://leetcode.com/problems/trim-a-binary-search-tree", - "name": "Trim a Binary Search Tree", - "difficulty": "Easy" - }, - "670": { - "link": "https://leetcode.com/problems/maximum-swap", - "name": "Maximum Swap", - "difficulty": "Medium" - }, - "671": { - "link": "https://leetcode.com/problems/second-minimum-node-in-a-binary-tree", - "name": "Second Minimum Node In a Binary Tree", - "difficulty": "Easy" - }, - "672": { - "link": "https://leetcode.com/problems/bulb-switcher-ii", - "name": "Bulb Switcher II", - "difficulty": "Medium" - }, - "673": { - "link": "https://leetcode.com/problems/number-of-longest-increasing-subsequence", - "name": "Number of Longest Increasing Subsequence", - "difficulty": "Medium" - }, - "674": { - "link": "https://leetcode.com/problems/longest-continuous-increasing-subsequence", - "name": "Longest Continuous Increasing Subsequence", - "difficulty": "Easy" - }, - "675": { - "link": "https://leetcode.com/problems/cut-off-trees-for-golf-event", - "name": "Cut Off Trees for Golf Event", - "difficulty": "Hard" - }, - "676": { - "link": "https://leetcode.com/problems/implement-magic-dictionary", - "name": "Implement Magic Dictionary", - "difficulty": "Medium" - }, - "677": { - "link": "https://leetcode.com/problems/map-sum-pairs", - "name": "Map Sum Pairs", - "difficulty": "Medium" - }, - "678": { - "link": "https://leetcode.com/problems/valid-parenthesis-string", - "name": "Valid Parenthesis String", - "difficulty": "Medium" - }, - "679": { - "link": "https://leetcode.com/problems/24-game", - "name": "24 Game", - "difficulty": "Hard" - }, - "680": { - "link": "https://leetcode.com/problems/valid-palindrome-ii", - "name": "Valid Palindrome II", - "difficulty": "Easy" - }, - "681": { - "link": "https://leetcode.com/problems/next-closest-time", - "name": "Next Closest Time", - "difficulty": "Medium" - }, - "682": { - "link": "https://leetcode.com/problems/baseball-game", - "name": "Baseball Game", - "difficulty": "Easy" - }, - "683": { - "link": "https://leetcode.com/problems/k-empty-slots", - "name": "K Empty Slots", - "difficulty": "Hard" - }, - "684": { - "link": "https://leetcode.com/problems/redundant-connection", - "name": "Redundant Connection", - "difficulty": "Medium" - }, - "685": { - "link": "https://leetcode.com/problems/redundant-connection-ii", - "name": "Redundant Connection II", - "difficulty": "Hard" - }, - "686": { - "link": "https://leetcode.com/problems/repeated-string-match", - "name": "Repeated String Match", - "difficulty": "Medium" - }, - "687": { - "link": "https://leetcode.com/problems/longest-univalue-path", - "name": "Longest Univalue Path", - "difficulty": "Medium" - }, - "688": { - "link": "https://leetcode.com/problems/knight-probability-in-chessboard", - "name": "Knight Probability in Chessboard", - "difficulty": "Medium" - }, - "689": { - "link": "https://leetcode.com/problems/maximum-sum-of-3-non-overlapping-subarrays", - "name": "Maximum Sum of 3 Non-Overlapping Subarrays", - "difficulty": "Hard" - }, - "690": { - "link": "https://leetcode.com/problems/employee-importance", - "name": "Employee Importance", - "difficulty": "Easy" - }, - "691": { - "link": "https://leetcode.com/problems/stickers-to-spell-word", - "name": "Stickers to Spell Word", - "difficulty": "Hard" - }, - "692": { - "link": "https://leetcode.com/problems/top-k-frequent-words", - "name": "Top K Frequent Words", - "difficulty": "Medium" - }, - "693": { - "link": "https://leetcode.com/problems/binary-number-with-alternating-bits", - "name": "Binary Number with Alternating Bits", - "difficulty": "Easy" - }, - "694": { - "link": "https://leetcode.com/problems/number-of-distinct-islands", - "name": "Number of Distinct Islands", - "difficulty": "Medium" - }, - "695": { - "link": "https://leetcode.com/problems/max-area-of-island", - "name": "Max Area of Island", - "difficulty": "Medium" - }, - "696": { - "link": "https://leetcode.com/problems/count-binary-substrings", - "name": "Count Binary Substrings", - "difficulty": "Easy" - }, - "697": { - "link": "https://leetcode.com/problems/degree-of-an-array", - "name": "Degree of an Array", - "difficulty": "Easy" - }, - "698": { - "link": "https://leetcode.com/problems/partition-to-k-equal-sum-subsets", - "name": "Partition to K Equal Sum Subsets", - "difficulty": "Medium" - }, - "699": { - "link": "https://leetcode.com/problems/falling-squares", - "name": "Falling Squares", - "difficulty": "Hard" - }, - "700": { - "link": "https://leetcode.com/problems/search-in-a-binary-search-tree", - "name": "Search in a Binary Search Tree", - "difficulty": "Easy" - }, - "701": { - "link": "https://leetcode.com/problems/insert-into-a-binary-search-tree", - "name": "Insert into a Binary Search Tree", - "difficulty": "Medium" - }, - "702": { - "link": "https://leetcode.com/problems/search-in-a-sorted-array-of-unknown-size", - "name": "Search in a Sorted Array of Unknown Size", - "difficulty": "Medium" - }, - "703": { - "link": "https://leetcode.com/problems/kth-largest-element-in-a-stream", - "name": "Kth Largest Element in a Stream", - "difficulty": "Easy" - }, - "704": { - "link": "https://leetcode.com/problems/binary-search", - "name": "Binary Search", - "difficulty": "Easy" - }, - "705": { - "link": "https://leetcode.com/problems/design-hashset", - "name": "Design HashSet", - "difficulty": "Easy" - }, - "706": { - "link": "https://leetcode.com/problems/design-hashmap", - "name": "Design HashMap", - "difficulty": "Easy" - }, - "707": { - "link": "https://leetcode.com/problems/design-linked-list", - "name": "Design Linked List", - "difficulty": "Medium" - }, - "708": { - "link": "https://leetcode.com/problems/insert-into-a-sorted-circular-linked-list", - "name": "Insert into a Sorted Circular Linked List", - "difficulty": "Medium" - }, - "709": { - "link": "https://leetcode.com/problems/to-lower-case", - "name": "To Lower Case", - "difficulty": "Easy" - }, - "710": { - "link": "https://leetcode.com/problems/random-pick-with-blacklist", - "name": "Random Pick with Blacklist", - "difficulty": "Hard" - }, - "711": { - "link": "https://leetcode.com/problems/number-of-distinct-islands-ii", - "name": "Number of Distinct Islands II", - "difficulty": "Hard" - }, - "712": { - "link": "https://leetcode.com/problems/minimum-ascii-delete-sum-for-two-strings", - "name": "Minimum ASCII Delete Sum for Two Strings", - "difficulty": "Medium" - }, - "713": { - "link": "https://leetcode.com/problems/subarray-product-less-than-k", - "name": "Subarray Product Less Than K", - "difficulty": "Medium" - }, - "714": { - "link": "https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee", - "name": "Best Time to Buy and Sell Stock with Transaction Fee", - "difficulty": "Medium" - }, - "715": { - "link": "https://leetcode.com/problems/range-module", - "name": "Range Module", - "difficulty": "Hard" - }, - "716": { - "link": "https://leetcode.com/problems/max-stack", - "name": "Max Stack", - "difficulty": "Easy" - }, - "717": { - "link": "https://leetcode.com/problems/1-bit-and-2-bit-characters", - "name": "1-bit and 2-bit Characters", - "difficulty": "Easy" - }, - "718": { - "link": "https://leetcode.com/problems/maximum-length-of-repeated-subarray", - "name": "Maximum Length of Repeated Subarray", - "difficulty": "Medium" - }, - "719": { - "link": "https://leetcode.com/problems/find-k-th-smallest-pair-distance", - "name": "Find K-th Smallest Pair Distance", - "difficulty": "Hard" - }, - "720": { - "link": "https://leetcode.com/problems/longest-word-in-dictionary", - "name": "Longest Word in Dictionary", - "difficulty": "Easy" - }, - "721": { - "link": "https://leetcode.com/problems/accounts-merge", - "name": "Accounts Merge", - "difficulty": "Medium" - }, - "722": { - "link": "https://leetcode.com/problems/remove-comments", - "name": "Remove Comments", - "difficulty": "Medium" - }, - "723": { - "link": "https://leetcode.com/problems/candy-crush", - "name": "Candy Crush", - "difficulty": "Medium" - }, - "724": { - "link": "https://leetcode.com/problems/find-pivot-index", - "name": "Find Pivot Index", - "difficulty": "Easy" - }, - "725": { - "link": "https://leetcode.com/problems/split-linked-list-in-parts", - "name": "Split Linked List in Parts", - "difficulty": "Medium" - }, - "726": { - "link": "https://leetcode.com/problems/number-of-atoms", - "name": "Number of Atoms", - "difficulty": "Hard" - }, - "727": { - "link": "https://leetcode.com/problems/minimum-window-subsequence", - "name": "Minimum Window Subsequence", - "difficulty": "Hard" - }, - "728": { - "link": "https://leetcode.com/problems/self-dividing-numbers", - "name": "Self Dividing Numbers", - "difficulty": "Easy" - }, - "729": { - "link": "https://leetcode.com/problems/my-calendar-i", - "name": "My Calendar I", - "difficulty": "Medium" - }, - "730": { - "link": "https://leetcode.com/problems/count-different-palindromic-subsequences", - "name": "Count Different Palindromic Subsequences", - "difficulty": "Hard" - }, - "731": { - "link": "https://leetcode.com/problems/my-calendar-ii", - "name": "My Calendar II", - "difficulty": "Medium" - }, - "732": { - "link": "https://leetcode.com/problems/my-calendar-iii", - "name": "My Calendar III", - "difficulty": "Hard" - }, - "733": { - "link": "https://leetcode.com/problems/flood-fill", - "name": "Flood Fill", - "difficulty": "Easy" - }, - "734": { - "link": "https://leetcode.com/problems/sentence-similarity", - "name": "Sentence Similarity", - "difficulty": "Easy" - }, - "735": { - "link": "https://leetcode.com/problems/asteroid-collision", - "name": "Asteroid Collision", - "difficulty": "Medium" - }, - "736": { - "link": "https://leetcode.com/problems/parse-lisp-expression", - "name": "Parse Lisp Expression", - "difficulty": "Hard" - }, - "737": { - "link": "https://leetcode.com/problems/sentence-similarity-ii", - "name": "Sentence Similarity II", - "difficulty": "Medium" - }, - "738": { - "link": "https://leetcode.com/problems/monotone-increasing-digits", - "name": "Monotone Increasing Digits", - "difficulty": "Medium" - }, - "739": { - "link": "https://leetcode.com/problems/daily-temperatures", - "name": "Daily Temperatures", - "difficulty": "Medium" - }, - "740": { - "link": "https://leetcode.com/problems/delete-and-earn", - "name": "Delete and Earn", - "difficulty": "Medium" - }, - "741": { - "link": "https://leetcode.com/problems/cherry-pickup", - "name": "Cherry Pickup", - "difficulty": "Hard" - }, - "742": { - "link": "https://leetcode.com/problems/closest-leaf-in-a-binary-tree", - "name": "Closest Leaf in a Binary Tree", - "difficulty": "Medium" - }, - "743": { - "link": "https://leetcode.com/problems/network-delay-time", - "name": "Network Delay Time", - "difficulty": "Medium" - }, - "744": { - "link": "https://leetcode.com/problems/find-smallest-letter-greater-than-target", - "name": "Find Smallest Letter Greater Than Target", - "difficulty": "Easy" - }, - "745": { - "link": "https://leetcode.com/problems/prefix-and-suffix-search", - "name": "Prefix and Suffix Search", - "difficulty": "Hard" - }, - "746": { - "link": "https://leetcode.com/problems/min-cost-climbing-stairs", - "name": "Min Cost Climbing Stairs", - "difficulty": "Easy" - }, - "747": { - "link": "https://leetcode.com/problems/largest-number-at-least-twice-of-others", - "name": "Largest Number At Least Twice of Others", - "difficulty": "Easy" - }, - "748": { - "link": "https://leetcode.com/problems/shortest-completing-word", - "name": "Shortest Completing Word", - "difficulty": "Easy" - }, - "749": { - "link": "https://leetcode.com/problems/contain-virus", - "name": "Contain Virus", - "difficulty": "Hard" - }, - "750": { - "link": "https://leetcode.com/problems/number-of-corner-rectangles", - "name": "Number Of Corner Rectangles", - "difficulty": "Medium" - }, - "751": { - "link": "https://leetcode.com/problems/ip-to-cidr", - "name": "IP to CIDR", - "difficulty": "Medium" - }, - "752": { - "link": "https://leetcode.com/problems/open-the-lock", - "name": "Open the Lock", - "difficulty": "Medium" - }, - "753": { - "link": "https://leetcode.com/problems/cracking-the-safe", - "name": "Cracking the Safe", - "difficulty": "Hard" - }, - "754": { - "link": "https://leetcode.com/problems/reach-a-number", - "name": "Reach a Number", - "difficulty": "Medium" - }, - "755": { - "link": "https://leetcode.com/problems/pour-water", - "name": "Pour Water", - "difficulty": "Medium" - }, - "756": { - "link": "https://leetcode.com/problems/pyramid-transition-matrix", - "name": "Pyramid Transition Matrix", - "difficulty": "Medium" - }, - "757": { - "link": "https://leetcode.com/problems/set-intersection-size-at-least-two", - "name": "Set Intersection Size At Least Two", - "difficulty": "Hard" - }, - "758": { - "link": "https://leetcode.com/problems/bold-words-in-string", - "name": "Bold Words in String", - "difficulty": "Easy" - }, - "759": { - "link": "https://leetcode.com/problems/employee-free-time", - "name": "Employee Free Time", - "difficulty": "Hard" - }, - "760": { - "link": "https://leetcode.com/problems/find-anagram-mappings", - "name": "Find Anagram Mappings", - "difficulty": "Easy" - }, - "761": { - "link": "https://leetcode.com/problems/special-binary-string", - "name": "Special Binary String", - "difficulty": "Hard" - }, - "762": { - "link": "https://leetcode.com/problems/prime-number-of-set-bits-in-binary-representation", - "name": "Prime Number of Set Bits in Binary Representation", - "difficulty": "Easy" - }, - "763": { - "link": "https://leetcode.com/problems/partition-labels", - "name": "Partition Labels", - "difficulty": "Medium" - }, - "764": { - "link": "https://leetcode.com/problems/largest-plus-sign", - "name": "Largest Plus Sign", - "difficulty": "Medium" - }, - "765": { - "link": "https://leetcode.com/problems/couples-holding-hands", - "name": "Couples Holding Hands", - "difficulty": "Hard" - }, - "766": { - "link": "https://leetcode.com/problems/toeplitz-matrix", - "name": "Toeplitz Matrix", - "difficulty": "Easy" - }, - "767": { - "link": "https://leetcode.com/problems/reorganize-string", - "name": "Reorganize String", - "difficulty": "Medium" - }, - "768": { - "link": "https://leetcode.com/problems/max-chunks-to-make-sorted-ii", - "name": "Max Chunks To Make Sorted II", - "difficulty": "Hard" - }, - "769": { - "link": "https://leetcode.com/problems/max-chunks-to-make-sorted", - "name": "Max Chunks To Make Sorted", - "difficulty": "Medium" - }, - "770": { - "link": "https://leetcode.com/problems/basic-calculator-iv", - "name": "Basic Calculator IV", - "difficulty": "Hard" - }, - "771": { - "link": "https://leetcode.com/problems/jewels-and-stones", - "name": "Jewels and Stones", - "difficulty": "Easy" - }, - "772": { - "link": "https://leetcode.com/problems/basic-calculator-iii", - "name": "Basic Calculator III", - "difficulty": "Hard" - }, - "773": { - "link": "https://leetcode.com/problems/sliding-puzzle", - "name": "Sliding Puzzle", - "difficulty": "Hard" - }, - "774": { - "link": "https://leetcode.com/problems/minimize-max-distance-to-gas-station", - "name": "Minimize Max Distance to Gas Station", - "difficulty": "Hard" - }, - "775": { - "link": "https://leetcode.com/problems/global-and-local-inversions", - "name": "Global and Local Inversions", - "difficulty": "Medium" - }, - "776": { - "link": "https://leetcode.com/problems/split-bst", - "name": "Split BST", - "difficulty": "Medium" - }, - "777": { - "link": "https://leetcode.com/problems/swap-adjacent-in-lr-string", - "name": "Swap Adjacent in LR String", - "difficulty": "Medium" - }, - "778": { - "link": "https://leetcode.com/problems/swim-in-rising-water", - "name": "Swim in Rising Water", - "difficulty": "Hard" - }, - "779": { - "link": "https://leetcode.com/problems/k-th-symbol-in-grammar", - "name": "K-th Symbol in Grammar", - "difficulty": "Medium" - }, - "780": { - "link": "https://leetcode.com/problems/reaching-points", - "name": "Reaching Points", - "difficulty": "Hard" - }, - "781": { - "link": "https://leetcode.com/problems/rabbits-in-forest", - "name": "Rabbits in Forest", - "difficulty": "Medium" - }, - "782": { - "link": "https://leetcode.com/problems/transform-to-chessboard", - "name": "Transform to Chessboard", - "difficulty": "Hard" - }, - "783": { - "link": "https://leetcode.com/problems/minimum-distance-between-bst-nodes", - "name": "Minimum Distance Between BST Nodes", - "difficulty": "Easy" - }, - "784": { - "link": "https://leetcode.com/problems/letter-case-permutation", - "name": "Letter Case Permutation", - "difficulty": "Medium" - }, - "785": { - "link": "https://leetcode.com/problems/is-graph-bipartite", - "name": "Is Graph Bipartite?", - "difficulty": "Medium" - }, - "786": { - "link": "https://leetcode.com/problems/k-th-smallest-prime-fraction", - "name": "K-th Smallest Prime Fraction", - "difficulty": "Hard" - }, - "787": { - "link": "https://leetcode.com/problems/cheapest-flights-within-k-stops", - "name": "Cheapest Flights Within K Stops", - "difficulty": "Medium" - }, - "788": { - "link": "https://leetcode.com/problems/rotated-digits", - "name": "Rotated Digits", - "difficulty": "Easy" - }, - "789": { - "link": "https://leetcode.com/problems/escape-the-ghosts", - "name": "Escape The Ghosts", - "difficulty": "Medium" - }, - "790": { - "link": "https://leetcode.com/problems/domino-and-tromino-tiling", - "name": "Domino and Tromino Tiling", - "difficulty": "Medium" - }, - "791": { - "link": "https://leetcode.com/problems/custom-sort-string", - "name": "Custom Sort String", - "difficulty": "Medium" - }, - "792": { - "link": "https://leetcode.com/problems/number-of-matching-subsequences", - "name": "Number of Matching Subsequences", - "difficulty": "Medium" - }, - "793": { - "link": "https://leetcode.com/problems/preimage-size-of-factorial-zeroes-function", - "name": "Preimage Size of Factorial Zeroes Function", - "difficulty": "Hard" - }, - "794": { - "link": "https://leetcode.com/problems/valid-tic-tac-toe-state", - "name": "Valid Tic-Tac-Toe State", - "difficulty": "Medium" - }, - "795": { - "link": "https://leetcode.com/problems/number-of-subarrays-with-bounded-maximum", - "name": "Number of Subarrays with Bounded Maximum", - "difficulty": "Medium" - }, - "796": { - "link": "https://leetcode.com/problems/rotate-string", - "name": "Rotate String", - "difficulty": "Easy" - }, - "797": { - "link": "https://leetcode.com/problems/all-paths-from-source-to-target", - "name": "All Paths From Source to Target", - "difficulty": "Medium" - }, - "798": { - "link": "https://leetcode.com/problems/smallest-rotation-with-highest-score", - "name": "Smallest Rotation with Highest Score", - "difficulty": "Hard" - }, - "799": { - "link": "https://leetcode.com/problems/champagne-tower", - "name": "Champagne Tower", - "difficulty": "Medium" - }, - "800": { - "link": "https://leetcode.com/problems/similar-rgb-color", - "name": "Similar RGB Color", - "difficulty": "Easy" - }, - "801": { - "link": "https://leetcode.com/problems/minimum-swaps-to-make-sequences-increasing", - "name": "Minimum Swaps To Make Sequences Increasing", - "difficulty": "Medium" - }, - "802": { - "link": "https://leetcode.com/problems/find-eventual-safe-states", - "name": "Find Eventual Safe States", - "difficulty": "Medium" - }, - "803": { - "link": "https://leetcode.com/problems/bricks-falling-when-hit", - "name": "Bricks Falling When Hit", - "difficulty": "Hard" - }, - "804": { - "link": "https://leetcode.com/problems/unique-morse-code-words", - "name": "Unique Morse Code Words", - "difficulty": "Easy" - }, - "805": { - "link": "https://leetcode.com/problems/split-array-with-same-average", - "name": "Split Array With Same Average", - "difficulty": "Hard" - }, - "806": { - "link": "https://leetcode.com/problems/number-of-lines-to-write-string", - "name": "Number of Lines To Write String", - "difficulty": "Easy" - }, - "807": { - "link": "https://leetcode.com/problems/max-increase-to-keep-city-skyline", - "name": "Max Increase to Keep City Skyline", - "difficulty": "Medium" - }, - "808": { - "link": "https://leetcode.com/problems/soup-servings", - "name": "Soup Servings", - "difficulty": "Medium" - }, - "809": { - "link": "https://leetcode.com/problems/expressive-words", - "name": "Expressive Words", - "difficulty": "Medium" - }, - "810": { - "link": "https://leetcode.com/problems/chalkboard-xor-game", - "name": "Chalkboard XOR Game", - "difficulty": "Hard" - }, - "811": { - "link": "https://leetcode.com/problems/subdomain-visit-count", - "name": "Subdomain Visit Count", - "difficulty": "Easy" - }, - "812": { - "link": "https://leetcode.com/problems/largest-triangle-area", - "name": "Largest Triangle Area", - "difficulty": "Easy" - }, - "813": { - "link": "https://leetcode.com/problems/largest-sum-of-averages", - "name": "Largest Sum of Averages", - "difficulty": "Medium" - }, - "814": { - "link": "https://leetcode.com/problems/binary-tree-pruning", - "name": "Binary Tree Pruning", - "difficulty": "Medium" - }, - "815": { - "link": "https://leetcode.com/problems/bus-routes", - "name": "Bus Routes", - "difficulty": "Hard" - }, - "816": { - "link": "https://leetcode.com/problems/ambiguous-coordinates", - "name": "Ambiguous Coordinates", - "difficulty": "Medium" - }, - "817": { - "link": "https://leetcode.com/problems/linked-list-components", - "name": "Linked List Components", - "difficulty": "Medium" - }, - "818": { - "link": "https://leetcode.com/problems/race-car", - "name": "Race Car", - "difficulty": "Hard" - }, - "819": { - "link": "https://leetcode.com/problems/most-common-word", - "name": "Most Common Word", - "difficulty": "Easy" - }, - "820": { - "link": "https://leetcode.com/problems/short-encoding-of-words", - "name": "Short Encoding of Words", - "difficulty": "Medium" - }, - "821": { - "link": "https://leetcode.com/problems/shortest-distance-to-a-character", - "name": "Shortest Distance to a Character", - "difficulty": "Easy" - }, - "822": { - "link": "https://leetcode.com/problems/card-flipping-game", - "name": "Card Flipping Game", - "difficulty": "Medium" - }, - "823": { - "link": "https://leetcode.com/problems/binary-trees-with-factors", - "name": "Binary Trees With Factors", - "difficulty": "Medium" - }, - "824": { - "link": "https://leetcode.com/problems/goat-latin", - "name": "Goat Latin", - "difficulty": "Easy" - }, - "825": { - "link": "https://leetcode.com/problems/friends-of-appropriate-ages", - "name": "Friends Of Appropriate Ages", - "difficulty": "Medium" - }, - "826": { - "link": "https://leetcode.com/problems/most-profit-assigning-work", - "name": "Most Profit Assigning Work", - "difficulty": "Medium" - }, - "827": { - "link": "https://leetcode.com/problems/making-a-large-island", - "name": "Making A Large Island", - "difficulty": "Hard" - }, - "828": { - "link": "https://leetcode.com/problems/count-unique-characters-of-all-substrings-of-a-given-string", - "name": "Count Unique Characters of All Substrings of a Given String", - "difficulty": "Hard" - }, - "829": { - "link": "https://leetcode.com/problems/consecutive-numbers-sum", - "name": "Consecutive Numbers Sum", - "difficulty": "Hard" - }, - "830": { - "link": "https://leetcode.com/problems/positions-of-large-groups", - "name": "Positions of Large Groups", - "difficulty": "Easy" - }, - "831": { - "link": "https://leetcode.com/problems/masking-personal-information", - "name": "Masking Personal Information", - "difficulty": "Medium" - }, - "832": { - "link": "https://leetcode.com/problems/flipping-an-image", - "name": "Flipping an Image", - "difficulty": "Easy" - }, - "833": { - "link": "https://leetcode.com/problems/find-and-replace-in-string", - "name": "Find And Replace in String", - "difficulty": "Medium" - }, - "834": { - "link": "https://leetcode.com/problems/sum-of-distances-in-tree", - "name": "Sum of Distances in Tree", - "difficulty": "Hard" - }, - "835": { - "link": "https://leetcode.com/problems/image-overlap", - "name": "Image Overlap", - "difficulty": "Medium" - }, - "836": { - "link": "https://leetcode.com/problems/rectangle-overlap", - "name": "Rectangle Overlap", - "difficulty": "Easy" - }, - "837": { - "link": "https://leetcode.com/problems/new-21-game", - "name": "New 21 Game", - "difficulty": "Medium" - }, - "838": { - "link": "https://leetcode.com/problems/push-dominoes", - "name": "Push Dominoes", - "difficulty": "Medium" - }, - "839": { - "link": "https://leetcode.com/problems/similar-string-groups", - "name": "Similar String Groups", - "difficulty": "Hard" - }, - "840": { - "link": "https://leetcode.com/problems/magic-squares-in-grid", - "name": "Magic Squares In Grid", - "difficulty": "Medium" - }, - "841": { - "link": "https://leetcode.com/problems/keys-and-rooms", - "name": "Keys and Rooms", - "difficulty": "Medium" - }, - "842": { - "link": "https://leetcode.com/problems/split-array-into-fibonacci-sequence", - "name": "Split Array into Fibonacci Sequence", - "difficulty": "Medium" - }, - "843": { - "link": "https://leetcode.com/problems/guess-the-word", - "name": "Guess the Word", - "difficulty": "Hard" - }, - "844": { - "link": "https://leetcode.com/problems/backspace-string-compare", - "name": "Backspace String Compare", - "difficulty": "Easy" - }, - "845": { - "link": "https://leetcode.com/problems/longest-mountain-in-array", - "name": "Longest Mountain in Array", - "difficulty": "Medium" - }, - "846": { - "link": "https://leetcode.com/problems/hand-of-straights", - "name": "Hand of Straights", - "difficulty": "Medium" - }, - "847": { - "link": "https://leetcode.com/problems/shortest-path-visiting-all-nodes", - "name": "Shortest Path Visiting All Nodes", - "difficulty": "Hard" - }, - "848": { - "link": "https://leetcode.com/problems/shifting-letters", - "name": "Shifting Letters", - "difficulty": "Medium" - }, - "849": { - "link": "https://leetcode.com/problems/maximize-distance-to-closest-person", - "name": "Maximize Distance to Closest Person", - "difficulty": "Medium" - }, - "850": { - "link": "https://leetcode.com/problems/rectangle-area-ii", - "name": "Rectangle Area II", - "difficulty": "Hard" - }, - "851": { - "link": "https://leetcode.com/problems/loud-and-rich", - "name": "Loud and Rich", - "difficulty": "Medium" - }, - "852": { - "link": "https://leetcode.com/problems/peak-index-in-a-mountain-array", - "name": "Peak Index in a Mountain Array", - "difficulty": "Easy" - }, - "853": { - "link": "https://leetcode.com/problems/car-fleet", - "name": "Car Fleet", - "difficulty": "Medium" - }, - "854": { - "link": "https://leetcode.com/problems/k-similar-strings", - "name": "K-Similar Strings", - "difficulty": "Hard" - }, - "855": { - "link": "https://leetcode.com/problems/exam-room", - "name": "Exam Room", - "difficulty": "Medium" - }, - "856": { - "link": "https://leetcode.com/problems/score-of-parentheses", - "name": "Score of Parentheses", - "difficulty": "Medium" - }, - "857": { - "link": "https://leetcode.com/problems/minimum-cost-to-hire-k-workers", - "name": "Minimum Cost to Hire K Workers", - "difficulty": "Hard" - }, - "858": { - "link": "https://leetcode.com/problems/mirror-reflection", - "name": "Mirror Reflection", - "difficulty": "Medium" - }, - "859": { - "link": "https://leetcode.com/problems/buddy-strings", - "name": "Buddy Strings", - "difficulty": "Easy" - }, - "860": { - "link": "https://leetcode.com/problems/lemonade-change", - "name": "Lemonade Change", - "difficulty": "Easy" - }, - "861": { - "link": "https://leetcode.com/problems/score-after-flipping-matrix", - "name": "Score After Flipping Matrix", - "difficulty": "Medium" - }, - "862": { - "link": "https://leetcode.com/problems/shortest-subarray-with-sum-at-least-k", - "name": "Shortest Subarray with Sum at Least K", - "difficulty": "Hard" - }, - "863": { - "link": "https://leetcode.com/problems/all-nodes-distance-k-in-binary-tree", - "name": "All Nodes Distance K in Binary Tree", - "difficulty": "Medium" - }, - "864": { - "link": "https://leetcode.com/problems/shortest-path-to-get-all-keys", - "name": "Shortest Path to Get All Keys", - "difficulty": "Hard" - }, - "865": { - "link": "https://leetcode.com/problems/smallest-subtree-with-all-the-deepest-nodes", - "name": "Smallest Subtree with all the Deepest Nodes", - "difficulty": "Medium" - }, - "866": { - "link": "https://leetcode.com/problems/prime-palindrome", - "name": "Prime Palindrome", - "difficulty": "Medium" - }, - "867": { - "link": "https://leetcode.com/problems/transpose-matrix", - "name": "Transpose Matrix", - "difficulty": "Easy" - }, - "868": { - "link": "https://leetcode.com/problems/binary-gap", - "name": "Binary Gap", - "difficulty": "Easy" - }, - "869": { - "link": "https://leetcode.com/problems/reordered-power-of-2", - "name": "Reordered Power of 2", - "difficulty": "Medium" - }, - "870": { - "link": "https://leetcode.com/problems/advantage-shuffle", - "name": "Advantage Shuffle", - "difficulty": "Medium" - }, - "871": { - "link": "https://leetcode.com/problems/minimum-number-of-refueling-stops", - "name": "Minimum Number of Refueling Stops", - "difficulty": "Hard" - }, - "872": { - "link": "https://leetcode.com/problems/leaf-similar-trees", - "name": "Leaf-Similar Trees", - "difficulty": "Easy" - }, - "873": { - "link": "https://leetcode.com/problems/length-of-longest-fibonacci-subsequence", - "name": "Length of Longest Fibonacci Subsequence", - "difficulty": "Medium" - }, - "874": { - "link": "https://leetcode.com/problems/walking-robot-simulation", - "name": "Walking Robot Simulation", - "difficulty": "Easy" - }, - "875": { - "link": "https://leetcode.com/problems/koko-eating-bananas", - "name": "Koko Eating Bananas", - "difficulty": "Medium" - }, - "876": { - "link": "https://leetcode.com/problems/middle-of-the-linked-list", - "name": "Middle of the Linked List", - "difficulty": "Easy" - }, - "877": { - "link": "https://leetcode.com/problems/stone-game", - "name": "Stone Game", - "difficulty": "Medium" - }, - "878": { - "link": "https://leetcode.com/problems/nth-magical-number", - "name": "Nth Magical Number", - "difficulty": "Hard" - }, - "879": { - "link": "https://leetcode.com/problems/profitable-schemes", - "name": "Profitable Schemes", - "difficulty": "Hard" - }, - "880": { - "link": "https://leetcode.com/problems/decoded-string-at-index", - "name": "Decoded String at Index", - "difficulty": "Medium" - }, - "881": { - "link": "https://leetcode.com/problems/boats-to-save-people", - "name": "Boats to Save People", - "difficulty": "Medium" - }, - "882": { - "link": "https://leetcode.com/problems/reachable-nodes-in-subdivided-graph", - "name": "Reachable Nodes In Subdivided Graph", - "difficulty": "Hard" - }, - "883": { - "link": "https://leetcode.com/problems/projection-area-of-3d-shapes", - "name": "Projection Area of 3D Shapes", - "difficulty": "Easy" - }, - "884": { - "link": "https://leetcode.com/problems/uncommon-words-from-two-sentences", - "name": "Uncommon Words from Two Sentences", - "difficulty": "Easy" - }, - "885": { - "link": "https://leetcode.com/problems/spiral-matrix-iii", - "name": "Spiral Matrix III", - "difficulty": "Medium" - }, - "886": { - "link": "https://leetcode.com/problems/possible-bipartition", - "name": "Possible Bipartition", - "difficulty": "Medium" - }, - "887": { - "link": "https://leetcode.com/problems/super-egg-drop", - "name": "Super Egg Drop", - "difficulty": "Hard" - }, - "888": { - "link": "https://leetcode.com/problems/fair-candy-swap", - "name": "Fair Candy Swap", - "difficulty": "Easy" - }, - "889": { - "link": "https://leetcode.com/problems/construct-binary-tree-from-preorder-and-postorder-traversal", - "name": "Construct Binary Tree from Preorder and Postorder Traversal", - "difficulty": "Medium" - }, - "890": { - "link": "https://leetcode.com/problems/find-and-replace-pattern", - "name": "Find and Replace Pattern", - "difficulty": "Medium" - }, - "891": { - "link": "https://leetcode.com/problems/sum-of-subsequence-widths", - "name": "Sum of Subsequence Widths", - "difficulty": "Hard" - }, - "892": { - "link": "https://leetcode.com/problems/surface-area-of-3d-shapes", - "name": "Surface Area of 3D Shapes", - "difficulty": "Easy" - }, - "893": { - "link": "https://leetcode.com/problems/groups-of-special-equivalent-strings", - "name": "Groups of Special-Equivalent Strings", - "difficulty": "Easy" - }, - "894": { - "link": "https://leetcode.com/problems/all-possible-full-binary-trees", - "name": "All Possible Full Binary Trees", - "difficulty": "Medium" - }, - "895": { - "link": "https://leetcode.com/problems/maximum-frequency-stack", - "name": "Maximum Frequency Stack", - "difficulty": "Hard" - }, - "896": { - "link": "https://leetcode.com/problems/monotonic-array", - "name": "Monotonic Array", - "difficulty": "Easy" - }, - "897": { - "link": "https://leetcode.com/problems/increasing-order-search-tree", - "name": "Increasing Order Search Tree", - "difficulty": "Easy" - }, - "898": { - "link": "https://leetcode.com/problems/bitwise-ors-of-subarrays", - "name": "Bitwise ORs of Subarrays", - "difficulty": "Medium" - }, - "899": { - "link": "https://leetcode.com/problems/orderly-queue", - "name": "Orderly Queue", - "difficulty": "Hard" - }, - "900": { - "link": "https://leetcode.com/problems/rle-iterator", - "name": "RLE Iterator", - "difficulty": "Medium" - }, - "901": { - "link": "https://leetcode.com/problems/online-stock-span", - "name": "Online Stock Span", - "difficulty": "Medium" - }, - "902": { - "link": "https://leetcode.com/problems/numbers-at-most-n-given-digit-set", - "name": "Numbers At Most N Given Digit Set", - "difficulty": "Hard" - }, - "903": { - "link": "https://leetcode.com/problems/valid-permutations-for-di-sequence", - "name": "Valid Permutations for DI Sequence", - "difficulty": "Hard" - }, - "904": { - "link": "https://leetcode.com/problems/fruit-into-baskets", - "name": "Fruit Into Baskets", - "difficulty": "Medium" - }, - "905": { - "link": "https://leetcode.com/problems/sort-array-by-parity", - "name": "Sort Array By Parity", - "difficulty": "Easy" - }, - "906": { - "link": "https://leetcode.com/problems/super-palindromes", - "name": "Super Palindromes", - "difficulty": "Hard" - }, - "907": { - "link": "https://leetcode.com/problems/sum-of-subarray-minimums", - "name": "Sum of Subarray Minimums", - "difficulty": "Medium" - }, - "908": { - "link": "https://leetcode.com/problems/smallest-range-i", - "name": "Smallest Range I", - "difficulty": "Easy" - }, - "909": { - "link": "https://leetcode.com/problems/snakes-and-ladders", - "name": "Snakes and Ladders", - "difficulty": "Medium" - }, - "910": { - "link": "https://leetcode.com/problems/smallest-range-ii", - "name": "Smallest Range II", - "difficulty": "Medium" - }, - "911": { - "link": "https://leetcode.com/problems/online-election", - "name": "Online Election", - "difficulty": "Medium" - }, - "912": { - "link": "https://leetcode.com/problems/sort-an-array", - "name": "Sort an Array", - "difficulty": "Medium" - }, - "913": { - "link": "https://leetcode.com/problems/cat-and-mouse", - "name": "Cat and Mouse", - "difficulty": "Hard" - }, - "914": { - "link": "https://leetcode.com/problems/x-of-a-kind-in-a-deck-of-cards", - "name": "X of a Kind in a Deck of Cards", - "difficulty": "Easy" - }, - "915": { - "link": "https://leetcode.com/problems/partition-array-into-disjoint-intervals", - "name": "Partition Array into Disjoint Intervals", - "difficulty": "Medium" - }, - "916": { - "link": "https://leetcode.com/problems/word-subsets", - "name": "Word Subsets", - "difficulty": "Medium" - }, - "917": { - "link": "https://leetcode.com/problems/reverse-only-letters", - "name": "Reverse Only Letters", - "difficulty": "Easy" - }, - "918": { - "link": "https://leetcode.com/problems/maximum-sum-circular-subarray", - "name": "Maximum Sum Circular Subarray", - "difficulty": "Medium" - }, - "919": { - "link": "https://leetcode.com/problems/complete-binary-tree-inserter", - "name": "Complete Binary Tree Inserter", - "difficulty": "Medium" - }, - "920": { - "link": "https://leetcode.com/problems/number-of-music-playlists", - "name": "Number of Music Playlists", - "difficulty": "Hard" - }, - "921": { - "link": "https://leetcode.com/problems/minimum-add-to-make-parentheses-valid", - "name": "Minimum Add to Make Parentheses Valid", - "difficulty": "Medium" - }, - "922": { - "link": "https://leetcode.com/problems/sort-array-by-parity-ii", - "name": "Sort Array By Parity II", - "difficulty": "Easy" - }, - "923": { - "link": "https://leetcode.com/problems/3sum-with-multiplicity", - "name": "3Sum With Multiplicity", - "difficulty": "Medium" - }, - "924": { - "link": "https://leetcode.com/problems/minimize-malware-spread", - "name": "Minimize Malware Spread", - "difficulty": "Hard" - }, - "925": { - "link": "https://leetcode.com/problems/long-pressed-name", - "name": "Long Pressed Name", - "difficulty": "Easy" - }, - "926": { - "link": "https://leetcode.com/problems/flip-string-to-monotone-increasing", - "name": "Flip String to Monotone Increasing", - "difficulty": "Medium" - }, - "927": { - "link": "https://leetcode.com/problems/three-equal-parts", - "name": "Three Equal Parts", - "difficulty": "Hard" - }, - "928": { - "link": "https://leetcode.com/problems/minimize-malware-spread-ii", - "name": "Minimize Malware Spread II", - "difficulty": "Hard" - }, - "929": { - "link": "https://leetcode.com/problems/unique-email-addresses", - "name": "Unique Email Addresses", - "difficulty": "Easy" - }, - "930": { - "link": "https://leetcode.com/problems/binary-subarrays-with-sum", - "name": "Binary Subarrays With Sum", - "difficulty": "Medium" - }, - "931": { - "link": "https://leetcode.com/problems/minimum-falling-path-sum", - "name": "Minimum Falling Path Sum", - "difficulty": "Medium" - }, - "932": { - "link": "https://leetcode.com/problems/beautiful-array", - "name": "Beautiful Array", - "difficulty": "Medium" - }, - "933": { - "link": "https://leetcode.com/problems/number-of-recent-calls", - "name": "Number of Recent Calls", - "difficulty": "Easy" - }, - "934": { - "link": "https://leetcode.com/problems/shortest-bridge", - "name": "Shortest Bridge", - "difficulty": "Medium" - }, - "935": { - "link": "https://leetcode.com/problems/knight-dialer", - "name": "Knight Dialer", - "difficulty": "Medium" - }, - "936": { - "link": "https://leetcode.com/problems/stamping-the-sequence", - "name": "Stamping The Sequence", - "difficulty": "Hard" - }, - "937": { - "link": "https://leetcode.com/problems/reorder-data-in-log-files", - "name": "Reorder Data in Log Files", - "difficulty": "Easy" - }, - "938": { - "link": "https://leetcode.com/problems/range-sum-of-bst", - "name": "Range Sum of BST", - "difficulty": "Easy" - }, - "939": { - "link": "https://leetcode.com/problems/minimum-area-rectangle", - "name": "Minimum Area Rectangle", - "difficulty": "Medium" - }, - "940": { - "link": "https://leetcode.com/problems/distinct-subsequences-ii", - "name": "Distinct Subsequences II", - "difficulty": "Hard" - }, - "941": { - "link": "https://leetcode.com/problems/valid-mountain-array", - "name": "Valid Mountain Array", - "difficulty": "Easy" - }, - "942": { - "link": "https://leetcode.com/problems/di-string-match", - "name": "DI String Match", - "difficulty": "Easy" - }, - "943": { - "link": "https://leetcode.com/problems/find-the-shortest-superstring", - "name": "Find the Shortest Superstring", - "difficulty": "Hard" - }, - "944": { - "link": "https://leetcode.com/problems/delete-columns-to-make-sorted", - "name": "Delete Columns to Make Sorted", - "difficulty": "Easy" - }, - "945": { - "link": "https://leetcode.com/problems/minimum-increment-to-make-array-unique", - "name": "Minimum Increment to Make Array Unique", - "difficulty": "Medium" - }, - "946": { - "link": "https://leetcode.com/problems/validate-stack-sequences", - "name": "Validate Stack Sequences", - "difficulty": "Medium" - }, - "947": { - "link": "https://leetcode.com/problems/most-stones-removed-with-same-row-or-column", - "name": "Most Stones Removed with Same Row or Column", - "difficulty": "Medium" - }, - "948": { - "link": "https://leetcode.com/problems/bag-of-tokens", - "name": "Bag of Tokens", - "difficulty": "Medium" - }, - "949": { - "link": "https://leetcode.com/problems/largest-time-for-given-digits", - "name": "Largest Time for Given Digits", - "difficulty": "Medium" - }, - "950": { - "link": "https://leetcode.com/problems/reveal-cards-in-increasing-order", - "name": "Reveal Cards In Increasing Order", - "difficulty": "Medium" - }, - "951": { - "link": "https://leetcode.com/problems/flip-equivalent-binary-trees", - "name": "Flip Equivalent Binary Trees", - "difficulty": "Medium" - }, - "952": { - "link": "https://leetcode.com/problems/largest-component-size-by-common-factor", - "name": "Largest Component Size by Common Factor", - "difficulty": "Hard" - }, - "953": { - "link": "https://leetcode.com/problems/verifying-an-alien-dictionary", - "name": "Verifying an Alien Dictionary", - "difficulty": "Easy" - }, - "954": { - "link": "https://leetcode.com/problems/array-of-doubled-pairs", - "name": "Array of Doubled Pairs", - "difficulty": "Medium" - }, - "955": { - "link": "https://leetcode.com/problems/delete-columns-to-make-sorted-ii", - "name": "Delete Columns to Make Sorted II", - "difficulty": "Medium" - }, - "956": { - "link": "https://leetcode.com/problems/tallest-billboard", - "name": "Tallest Billboard", - "difficulty": "Hard" - }, - "957": { - "link": "https://leetcode.com/problems/prison-cells-after-n-days", - "name": "Prison Cells After N Days", - "difficulty": "Medium" - }, - "958": { - "link": "https://leetcode.com/problems/check-completeness-of-a-binary-tree", - "name": "Check Completeness of a Binary Tree", - "difficulty": "Medium" - }, - "959": { - "link": "https://leetcode.com/problems/regions-cut-by-slashes", - "name": "Regions Cut By Slashes", - "difficulty": "Medium" - }, - "960": { - "link": "https://leetcode.com/problems/delete-columns-to-make-sorted-iii", - "name": "Delete Columns to Make Sorted III", - "difficulty": "Hard" - }, - "961": { - "link": "https://leetcode.com/problems/n-repeated-element-in-size-2n-array", - "name": "N-Repeated Element in Size 2N Array", - "difficulty": "Easy" - }, - "962": { - "link": "https://leetcode.com/problems/maximum-width-ramp", - "name": "Maximum Width Ramp", - "difficulty": "Medium" - }, - "963": { - "link": "https://leetcode.com/problems/minimum-area-rectangle-ii", - "name": "Minimum Area Rectangle II", - "difficulty": "Medium" - }, - "964": { - "link": "https://leetcode.com/problems/least-operators-to-express-number", - "name": "Least Operators to Express Number", - "difficulty": "Hard" - }, - "965": { - "link": "https://leetcode.com/problems/univalued-binary-tree", - "name": "Univalued Binary Tree", - "difficulty": "Easy" - }, - "966": { - "link": "https://leetcode.com/problems/vowel-spellchecker", - "name": "Vowel Spellchecker", - "difficulty": "Medium" - }, - "967": { - "link": "https://leetcode.com/problems/numbers-with-same-consecutive-differences", - "name": "Numbers With Same Consecutive Differences", - "difficulty": "Medium" - }, - "968": { - "link": "https://leetcode.com/problems/binary-tree-cameras", - "name": "Binary Tree Cameras", - "difficulty": "Hard" - }, - "969": { - "link": "https://leetcode.com/problems/pancake-sorting", - "name": "Pancake Sorting", - "difficulty": "Medium" - }, - "970": { - "link": "https://leetcode.com/problems/powerful-integers", - "name": "Powerful Integers", - "difficulty": "Easy" - }, - "971": { - "link": "https://leetcode.com/problems/flip-binary-tree-to-match-preorder-traversal", - "name": "Flip Binary Tree To Match Preorder Traversal", - "difficulty": "Medium" - }, - "972": { - "link": "https://leetcode.com/problems/equal-rational-numbers", - "name": "Equal Rational Numbers", - "difficulty": "Hard" - }, - "973": { - "link": "https://leetcode.com/problems/k-closest-points-to-origin", - "name": "K Closest Points to Origin", - "difficulty": "Medium" - }, - "974": { - "link": "https://leetcode.com/problems/subarray-sums-divisible-by-k", - "name": "Subarray Sums Divisible by K", - "difficulty": "Medium" - }, - "975": { - "link": "https://leetcode.com/problems/odd-even-jump", - "name": "Odd Even Jump", - "difficulty": "Hard" - }, - "976": { - "link": "https://leetcode.com/problems/largest-perimeter-triangle", - "name": "Largest Perimeter Triangle", - "difficulty": "Easy" - }, - "977": { - "link": "https://leetcode.com/problems/squares-of-a-sorted-array", - "name": "Squares of a Sorted Array", - "difficulty": "Easy" - }, - "978": { - "link": "https://leetcode.com/problems/longest-turbulent-subarray", - "name": "Longest Turbulent Subarray", - "difficulty": "Medium" - }, - "979": { - "link": "https://leetcode.com/problems/distribute-coins-in-binary-tree", - "name": "Distribute Coins in Binary Tree", - "difficulty": "Medium" - }, - "980": { - "link": "https://leetcode.com/problems/unique-paths-iii", - "name": "Unique Paths III", - "difficulty": "Hard" - }, - "981": { - "link": "https://leetcode.com/problems/time-based-key-value-store", - "name": "Time Based Key-Value Store", - "difficulty": "Medium" - }, - "982": { - "link": "https://leetcode.com/problems/triples-with-bitwise-and-equal-to-zero", - "name": "Triples with Bitwise AND Equal To Zero", - "difficulty": "Hard" - }, - "983": { - "link": "https://leetcode.com/problems/minimum-cost-for-tickets", - "name": "Minimum Cost For Tickets", - "difficulty": "Medium" - }, - "984": { - "link": "https://leetcode.com/problems/string-without-aaa-or-bbb", - "name": "String Without AAA or BBB", - "difficulty": "Medium" - }, - "985": { - "link": "https://leetcode.com/problems/sum-of-even-numbers-after-queries", - "name": "Sum of Even Numbers After Queries", - "difficulty": "Easy" - }, - "986": { - "link": "https://leetcode.com/problems/interval-list-intersections", - "name": "Interval List Intersections", - "difficulty": "Medium" - }, - "987": { - "link": "https://leetcode.com/problems/vertical-order-traversal-of-a-binary-tree", - "name": "Vertical Order Traversal of a Binary Tree", - "difficulty": "Medium" - }, - "988": { - "link": "https://leetcode.com/problems/smallest-string-starting-from-leaf", - "name": "Smallest String Starting From Leaf", - "difficulty": "Medium" - }, - "989": { - "link": "https://leetcode.com/problems/add-to-array-form-of-integer", - "name": "Add to Array-Form of Integer", - "difficulty": "Easy" - }, - "990": { - "link": "https://leetcode.com/problems/satisfiability-of-equality-equations", - "name": "Satisfiability of Equality Equations", - "difficulty": "Medium" - }, - "991": { - "link": "https://leetcode.com/problems/broken-calculator", - "name": "Broken Calculator", - "difficulty": "Medium" - }, - "992": { - "link": "https://leetcode.com/problems/subarrays-with-k-different-integers", - "name": "Subarrays with K Different Integers", - "difficulty": "Hard" - }, - "993": { - "link": "https://leetcode.com/problems/cousins-in-binary-tree", - "name": "Cousins in Binary Tree", - "difficulty": "Easy" - }, - "994": { - "link": "https://leetcode.com/problems/rotting-oranges", - "name": "Rotting Oranges", - "difficulty": "Medium" - }, - "995": { - "link": "https://leetcode.com/problems/minimum-number-of-k-consecutive-bit-flips", - "name": "Minimum Number of K Consecutive Bit Flips", - "difficulty": "Hard" - }, - "996": { - "link": "https://leetcode.com/problems/number-of-squareful-arrays", - "name": "Number of Squareful Arrays", - "difficulty": "Hard" - }, - "997": { - "link": "https://leetcode.com/problems/find-the-town-judge", - "name": "Find the Town Judge", - "difficulty": "Easy" - }, - "998": { - "link": "https://leetcode.com/problems/maximum-binary-tree-ii", - "name": "Maximum Binary Tree II", - "difficulty": "Medium" - }, - "999": { - "link": "https://leetcode.com/problems/available-captures-for-rook", - "name": "Available Captures for Rook", - "difficulty": "Easy" - }, - "1000": { - "link": "https://leetcode.com/problems/minimum-cost-to-merge-stones", - "name": "Minimum Cost to Merge Stones", - "difficulty": "Hard" - }, - "1001": { - "link": "https://leetcode.com/problems/grid-illumination", - "name": "Grid Illumination", - "difficulty": "Hard" - }, - "1002": { - "link": "https://leetcode.com/problems/find-common-characters", - "name": "Find Common Characters", - "difficulty": "Easy" - }, - "1003": { - "link": "https://leetcode.com/problems/check-if-word-is-valid-after-substitutions", - "name": "Check If Word Is Valid After Substitutions", - "difficulty": "Medium" - }, - "1004": { - "link": "https://leetcode.com/problems/max-consecutive-ones-iii", - "name": "Max Consecutive Ones III", - "difficulty": "Medium" - }, - "1005": { - "link": "https://leetcode.com/problems/maximize-sum-of-array-after-k-negations", - "name": "Maximize Sum Of Array After K Negations", - "difficulty": "Easy" - }, - "1006": { - "link": "https://leetcode.com/problems/clumsy-factorial", - "name": "Clumsy Factorial", - "difficulty": "Medium" - }, - "1007": { - "link": "https://leetcode.com/problems/minimum-domino-rotations-for-equal-row", - "name": "Minimum Domino Rotations For Equal Row", - "difficulty": "Medium" - }, - "1008": { - "link": "https://leetcode.com/problems/construct-binary-search-tree-from-preorder-traversal", - "name": "Construct Binary Search Tree from Preorder Traversal", - "difficulty": "Medium" - }, - "1009": { - "link": "https://leetcode.com/problems/complement-of-base-10-integer", - "name": "Complement of Base 10 Integer", - "difficulty": "Easy" - }, - "1010": { - "link": "https://leetcode.com/problems/pairs-of-songs-with-total-durations-divisible-by-60", - "name": "Pairs of Songs With Total Durations Divisible by 60", - "difficulty": "Easy" - }, - "1011": { - "link": "https://leetcode.com/problems/capacity-to-ship-packages-within-d-days", - "name": "Capacity To Ship Packages Within D Days", - "difficulty": "Medium" - }, - "1012": { - "link": "https://leetcode.com/problems/numbers-with-repeated-digits", - "name": "Numbers With Repeated Digits", - "difficulty": "Hard" - }, - "1013": { - "link": "https://leetcode.com/problems/partition-array-into-three-parts-with-equal-sum", - "name": "Partition Array Into Three Parts With Equal Sum", - "difficulty": "Easy" - }, - "1014": { - "link": "https://leetcode.com/problems/best-sightseeing-pair", - "name": "Best Sightseeing Pair", - "difficulty": "Medium" - }, - "1015": { - "link": "https://leetcode.com/problems/smallest-integer-divisible-by-k", - "name": "Smallest Integer Divisible by K", - "difficulty": "Medium" - }, - "1016": { - "link": "https://leetcode.com/problems/binary-string-with-substrings-representing-1-to-n", - "name": "Binary String With Substrings Representing 1 To N", - "difficulty": "Medium" - }, - "1017": { - "link": "https://leetcode.com/problems/convert-to-base-2", - "name": "Convert to Base -2", - "difficulty": "Medium" - }, - "1018": { - "link": "https://leetcode.com/problems/binary-prefix-divisible-by-5", - "name": "Binary Prefix Divisible By 5", - "difficulty": "Easy" - }, - "1019": { - "link": "https://leetcode.com/problems/next-greater-node-in-linked-list", - "name": "Next Greater Node In Linked List", - "difficulty": "Medium" - }, - "1020": { - "link": "https://leetcode.com/problems/number-of-enclaves", - "name": "Number of Enclaves", - "difficulty": "Medium" - }, - "1021": { - "link": "https://leetcode.com/problems/remove-outermost-parentheses", - "name": "Remove Outermost Parentheses", - "difficulty": "Easy" - }, - "1022": { - "link": "https://leetcode.com/problems/sum-of-root-to-leaf-binary-numbers", - "name": "Sum of Root To Leaf Binary Numbers", - "difficulty": "Easy" - }, - "1023": { - "link": "https://leetcode.com/problems/camelcase-matching", - "name": "Camelcase Matching", - "difficulty": "Medium" - }, - "1024": { - "link": "https://leetcode.com/problems/video-stitching", - "name": "Video Stitching", - "difficulty": "Medium" - }, - "1025": { - "link": "https://leetcode.com/problems/divisor-game", - "name": "Divisor Game", - "difficulty": "Easy" - }, - "1026": { - "link": "https://leetcode.com/problems/maximum-difference-between-node-and-ancestor", - "name": "Maximum Difference Between Node and Ancestor", - "difficulty": "Medium" - }, - "1027": { - "link": "https://leetcode.com/problems/longest-arithmetic-subsequence", - "name": "Longest Arithmetic Subsequence", - "difficulty": "Medium" - }, - "1028": { - "link": "https://leetcode.com/problems/recover-a-tree-from-preorder-traversal", - "name": "Recover a Tree From Preorder Traversal", - "difficulty": "Hard" - }, - "1029": { - "link": "https://leetcode.com/problems/two-city-scheduling", - "name": "Two City Scheduling", - "difficulty": "Medium" - }, - "1030": { - "link": "https://leetcode.com/problems/matrix-cells-in-distance-order", - "name": "Matrix Cells in Distance Order", - "difficulty": "Easy" - }, - "1031": { - "link": "https://leetcode.com/problems/maximum-sum-of-two-non-overlapping-subarrays", - "name": "Maximum Sum of Two Non-Overlapping Subarrays", - "difficulty": "Medium" - }, - "1032": { - "link": "https://leetcode.com/problems/stream-of-characters", - "name": "Stream of Characters", - "difficulty": "Hard" - }, - "1033": { - "link": "https://leetcode.com/problems/moving-stones-until-consecutive", - "name": "Moving Stones Until Consecutive", - "difficulty": "Easy" - }, - "1034": { - "link": "https://leetcode.com/problems/coloring-a-border", - "name": "Coloring A Border", - "difficulty": "Medium" - }, - "1035": { - "link": "https://leetcode.com/problems/uncrossed-lines", - "name": "Uncrossed Lines", - "difficulty": "Medium" - }, - "1036": { - "link": "https://leetcode.com/problems/escape-a-large-maze", - "name": "Escape a Large Maze", - "difficulty": "Hard" - }, - "1037": { - "link": "https://leetcode.com/problems/valid-boomerang", - "name": "Valid Boomerang", - "difficulty": "Easy" - }, - "1038": { - "link": "https://leetcode.com/problems/binary-search-tree-to-greater-sum-tree", - "name": "Binary Search Tree to Greater Sum Tree", - "difficulty": "Medium" - }, - "1039": { - "link": "https://leetcode.com/problems/minimum-score-triangulation-of-polygon", - "name": "Minimum Score Triangulation of Polygon", - "difficulty": "Medium" - }, - "1040": { - "link": "https://leetcode.com/problems/moving-stones-until-consecutive-ii", - "name": "Moving Stones Until Consecutive II", - "difficulty": "Medium" - }, - "1041": { - "link": "https://leetcode.com/problems/robot-bounded-in-circle", - "name": "Robot Bounded In Circle", - "difficulty": "Medium" - }, - "1042": { - "link": "https://leetcode.com/problems/flower-planting-with-no-adjacent", - "name": "Flower Planting With No Adjacent", - "difficulty": "Easy" - }, - "1043": { - "link": "https://leetcode.com/problems/partition-array-for-maximum-sum", - "name": "Partition Array for Maximum Sum", - "difficulty": "Medium" - }, - "1044": { - "link": "https://leetcode.com/problems/longest-duplicate-substring", - "name": "Longest Duplicate Substring", - "difficulty": "Hard" - }, - "1046": { - "link": "https://leetcode.com/problems/last-stone-weight", - "name": "Last Stone Weight", - "difficulty": "Easy" - }, - "1047": { - "link": "https://leetcode.com/problems/remove-all-adjacent-duplicates-in-string", - "name": "Remove All Adjacent Duplicates In String", - "difficulty": "Easy" - }, - "1048": { - "link": "https://leetcode.com/problems/longest-string-chain", - "name": "Longest String Chain", - "difficulty": "Medium" - }, - "1049": { - "link": "https://leetcode.com/problems/last-stone-weight-ii", - "name": "Last Stone Weight II", - "difficulty": "Medium" - }, - "1051": { - "link": "https://leetcode.com/problems/height-checker", - "name": "Height Checker", - "difficulty": "Easy" - }, - "1052": { - "link": "https://leetcode.com/problems/grumpy-bookstore-owner", - "name": "Grumpy Bookstore Owner", - "difficulty": "Medium" - }, - "1053": { - "link": "https://leetcode.com/problems/previous-permutation-with-one-swap", - "name": "Previous Permutation With One Swap", - "difficulty": "Medium" - }, - "1054": { - "link": "https://leetcode.com/problems/distant-barcodes", - "name": "Distant Barcodes", - "difficulty": "Medium" - }, - "1055": { - "link": "https://leetcode.com/problems/shortest-way-to-form-string", - "name": "Shortest Way to Form String", - "difficulty": "Medium" - }, - "1056": { - "link": "https://leetcode.com/problems/confusing-number", - "name": "Confusing Number", - "difficulty": "Easy" - }, - "1057": { - "link": "https://leetcode.com/problems/campus-bikes", - "name": "Campus Bikes", - "difficulty": "Medium" - }, - "1058": { - "link": "https://leetcode.com/problems/minimize-rounding-error-to-meet-target", - "name": "Minimize Rounding Error to Meet Target", - "difficulty": "Medium" - }, - "1059": { - "link": "https://leetcode.com/problems/all-paths-from-source-lead-to-destination", - "name": "All Paths from Source Lead to Destination", - "difficulty": "Medium" - }, - "1060": { - "link": "https://leetcode.com/problems/missing-element-in-sorted-array", - "name": "Missing Element in Sorted Array", - "difficulty": "Medium" - }, - "1061": { - "link": "https://leetcode.com/problems/lexicographically-smallest-equivalent-string", - "name": "Lexicographically Smallest Equivalent String", - "difficulty": "Medium" - }, - "1062": { - "link": "https://leetcode.com/problems/longest-repeating-substring", - "name": "Longest Repeating Substring", - "difficulty": "Medium" - }, - "1063": { - "link": "https://leetcode.com/problems/number-of-valid-subarrays", - "name": "Number of Valid Subarrays", - "difficulty": "Hard" - }, - "1064": { - "link": "https://leetcode.com/problems/fixed-point", - "name": "Fixed Point", - "difficulty": "Easy" - }, - "1065": { - "link": "https://leetcode.com/problems/index-pairs-of-a-string", - "name": "Index Pairs of a String", - "difficulty": "Easy" - }, - "1066": { - "link": "https://leetcode.com/problems/campus-bikes-ii", - "name": "Campus Bikes II", - "difficulty": "Medium" - }, - "1067": { - "link": "https://leetcode.com/problems/digit-count-in-range", - "name": "Digit Count in Range", - "difficulty": "Hard" - }, - "1071": { - "link": "https://leetcode.com/problems/greatest-common-divisor-of-strings", - "name": "Greatest Common Divisor of Strings", - "difficulty": "Easy" - }, - "1072": { - "link": "https://leetcode.com/problems/flip-columns-for-maximum-number-of-equal-rows", - "name": "Flip Columns For Maximum Number of Equal Rows", - "difficulty": "Medium" - }, - "1073": { - "link": "https://leetcode.com/problems/adding-two-negabinary-numbers", - "name": "Adding Two Negabinary Numbers", - "difficulty": "Medium" - }, - "1074": { - "link": "https://leetcode.com/problems/number-of-submatrices-that-sum-to-target", - "name": "Number of Submatrices That Sum to Target", - "difficulty": "Hard" - }, - "1078": { - "link": "https://leetcode.com/problems/occurrences-after-bigram", - "name": "Occurrences After Bigram", - "difficulty": "Easy" - }, - "1079": { - "link": "https://leetcode.com/problems/letter-tile-possibilities", - "name": "Letter Tile Possibilities", - "difficulty": "Medium" - }, - "1080": { - "link": "https://leetcode.com/problems/insufficient-nodes-in-root-to-leaf-paths", - "name": "Insufficient Nodes in Root to Leaf Paths", - "difficulty": "Medium" - }, - "1081": { - "link": "https://leetcode.com/problems/smallest-subsequence-of-distinct-characters", - "name": "Smallest Subsequence of Distinct Characters", - "difficulty": "Medium" - }, - "1085": { - "link": "https://leetcode.com/problems/sum-of-digits-in-the-minimum-number", - "name": "Sum of Digits in the Minimum Number", - "difficulty": "Easy" - }, - "1086": { - "link": "https://leetcode.com/problems/high-five", - "name": "High Five", - "difficulty": "Easy" - }, - "1087": { - "link": "https://leetcode.com/problems/brace-expansion", - "name": "Brace Expansion", - "difficulty": "Medium" - }, - "1088": { - "link": "https://leetcode.com/problems/confusing-number-ii", - "name": "Confusing Number II", - "difficulty": "Hard" - }, - "1089": { - "link": "https://leetcode.com/problems/duplicate-zeros", - "name": "Duplicate Zeros", - "difficulty": "Easy" - }, - "1090": { - "link": "https://leetcode.com/problems/largest-values-from-labels", - "name": "Largest Values From Labels", - "difficulty": "Medium" - }, - "1091": { - "link": "https://leetcode.com/problems/shortest-path-in-binary-matrix", - "name": "Shortest Path in Binary Matrix", - "difficulty": "Medium" - }, - "1092": { - "link": "https://leetcode.com/problems/shortest-common-supersequence", - "name": "Shortest Common Supersequence ", - "difficulty": "Hard" - }, - "1093": { - "link": "https://leetcode.com/problems/statistics-from-a-large-sample", - "name": "Statistics from a Large Sample", - "difficulty": "Medium" - }, - "1094": { - "link": "https://leetcode.com/problems/car-pooling", - "name": "Car Pooling", - "difficulty": "Medium" - }, - "1095": { - "link": "https://leetcode.com/problems/find-in-mountain-array", - "name": "Find in Mountain Array", - "difficulty": "Hard" - }, - "1096": { - "link": "https://leetcode.com/problems/brace-expansion-ii", - "name": "Brace Expansion II", - "difficulty": "Hard" - }, - "1099": { - "link": "https://leetcode.com/problems/two-sum-less-than-k", - "name": "Two Sum Less Than K", - "difficulty": "Easy" - }, - "1100": { - "link": "https://leetcode.com/problems/find-k-length-substrings-with-no-repeated-characters", - "name": "Find K-Length Substrings With No Repeated Characters", - "difficulty": "Medium" - }, - "1101": { - "link": "https://leetcode.com/problems/the-earliest-moment-when-everyone-become-friends", - "name": "The Earliest Moment When Everyone Become Friends", - "difficulty": "Medium" - }, - "1102": { - "link": "https://leetcode.com/problems/path-with-maximum-minimum-value", - "name": "Path With Maximum Minimum Value", - "difficulty": "Medium" - }, - "1103": { - "link": "https://leetcode.com/problems/distribute-candies-to-people", - "name": "Distribute Candies to People", - "difficulty": "Easy" - }, - "1104": { - "link": "https://leetcode.com/problems/path-in-zigzag-labelled-binary-tree", - "name": "Path In Zigzag Labelled Binary Tree", - "difficulty": "Medium" - }, - "1105": { - "link": "https://leetcode.com/problems/filling-bookcase-shelves", - "name": "Filling Bookcase Shelves", - "difficulty": "Medium" - }, - "1106": { - "link": "https://leetcode.com/problems/parsing-a-boolean-expression", - "name": "Parsing A Boolean Expression", - "difficulty": "Hard" - }, - "1108": { - "link": "https://leetcode.com/problems/defanging-an-ip-address", - "name": "Defanging an IP Address", - "difficulty": "Easy" - }, - "1109": { - "link": "https://leetcode.com/problems/corporate-flight-bookings", - "name": "Corporate Flight Bookings", - "difficulty": "Medium" - }, - "1110": { - "link": "https://leetcode.com/problems/delete-nodes-and-return-forest", - "name": "Delete Nodes And Return Forest", - "difficulty": "Medium" - }, - "1111": { - "link": "https://leetcode.com/problems/maximum-nesting-depth-of-two-valid-parentheses-strings", - "name": "Maximum Nesting Depth of Two Valid Parentheses Strings", - "difficulty": "Medium" - }, - "1118": { - "link": "https://leetcode.com/problems/number-of-days-in-a-month", - "name": "Number of Days in a Month", - "difficulty": "Easy" - }, - "1119": { - "link": "https://leetcode.com/problems/remove-vowels-from-a-string", - "name": "Remove Vowels from a String", - "difficulty": "Easy" - }, - "1120": { - "link": "https://leetcode.com/problems/maximum-average-subtree", - "name": "Maximum Average Subtree", - "difficulty": "Medium" - }, - "1121": { - "link": "https://leetcode.com/problems/divide-array-into-increasing-sequences", - "name": "Divide Array Into Increasing Sequences", - "difficulty": "Hard" - }, - "1122": { - "link": "https://leetcode.com/problems/relative-sort-array", - "name": "Relative Sort Array", - "difficulty": "Easy" - }, - "1123": { - "link": "https://leetcode.com/problems/lowest-common-ancestor-of-deepest-leaves", - "name": "Lowest Common Ancestor of Deepest Leaves", - "difficulty": "Medium" - }, - "1124": { - "link": "https://leetcode.com/problems/longest-well-performing-interval", - "name": "Longest Well-Performing Interval", - "difficulty": "Medium" - }, - "1125": { - "link": "https://leetcode.com/problems/smallest-sufficient-team", - "name": "Smallest Sufficient Team", - "difficulty": "Hard" - }, - "1128": { - "link": "https://leetcode.com/problems/number-of-equivalent-domino-pairs", - "name": "Number of Equivalent Domino Pairs", - "difficulty": "Easy" - }, - "1129": { - "link": "https://leetcode.com/problems/shortest-path-with-alternating-colors", - "name": "Shortest Path with Alternating Colors", - "difficulty": "Medium" - }, - "1130": { - "link": "https://leetcode.com/problems/minimum-cost-tree-from-leaf-values", - "name": "Minimum Cost Tree From Leaf Values", - "difficulty": "Medium" - }, - "1131": { - "link": "https://leetcode.com/problems/maximum-of-absolute-value-expression", - "name": "Maximum of Absolute Value Expression", - "difficulty": "Medium" - }, - "1133": { - "link": "https://leetcode.com/problems/largest-unique-number", - "name": "Largest Unique Number", - "difficulty": "Easy" - }, - "1134": { - "link": "https://leetcode.com/problems/armstrong-number", - "name": "Armstrong Number", - "difficulty": "Easy" - }, - "1135": { - "link": "https://leetcode.com/problems/connecting-cities-with-minimum-cost", - "name": "Connecting Cities With Minimum Cost", - "difficulty": "Medium" - }, - "1136": { - "link": "https://leetcode.com/problems/parallel-courses", - "name": "Parallel Courses", - "difficulty": "Hard" - }, - "1137": { - "link": "https://leetcode.com/problems/n-th-tribonacci-number", - "name": "N-th Tribonacci Number", - "difficulty": "Easy" - }, - "1138": { - "link": "https://leetcode.com/problems/alphabet-board-path", - "name": "Alphabet Board Path", - "difficulty": "Medium" - }, - "1139": { - "link": "https://leetcode.com/problems/largest-1-bordered-square", - "name": "Largest 1-Bordered Square", - "difficulty": "Medium" - }, - "1140": { - "link": "https://leetcode.com/problems/stone-game-ii", - "name": "Stone Game II", - "difficulty": "Medium" - }, - "1143": { - "link": "https://leetcode.com/problems/longest-common-subsequence", - "name": "Longest Common Subsequence", - "difficulty": "Medium" - }, - "1144": { - "link": "https://leetcode.com/problems/decrease-elements-to-make-array-zigzag", - "name": "Decrease Elements To Make Array Zigzag", - "difficulty": "Medium" - }, - "1145": { - "link": "https://leetcode.com/problems/binary-tree-coloring-game", - "name": "Binary Tree Coloring Game", - "difficulty": "Medium" - }, - "1146": { - "link": "https://leetcode.com/problems/snapshot-array", - "name": "Snapshot Array", - "difficulty": "Medium" - }, - "1147": { - "link": "https://leetcode.com/problems/longest-chunked-palindrome-decomposition", - "name": "Longest Chunked Palindrome Decomposition", - "difficulty": "Hard" - }, - "1150": { - "link": "https://leetcode.com/problems/check-if-a-number-is-majority-element-in-a-sorted-array", - "name": "Check If a Number Is Majority Element in a Sorted Array", - "difficulty": "Easy" - }, - "1151": { - "link": "https://leetcode.com/problems/minimum-swaps-to-group-all-1s-together", - "name": "Minimum Swaps to Group All 1's Together", - "difficulty": "Medium" - }, - "1152": { - "link": "https://leetcode.com/problems/analyze-user-website-visit-pattern", - "name": "Analyze User Website Visit Pattern", - "difficulty": "Medium" - }, - "1153": { - "link": "https://leetcode.com/problems/string-transforms-into-another-string", - "name": "String Transforms Into Another String", - "difficulty": "Hard" - }, - "1154": { - "link": "https://leetcode.com/problems/day-of-the-year", - "name": "Day of the Year", - "difficulty": "Easy" - }, - "1155": { - "link": "https://leetcode.com/problems/number-of-dice-rolls-with-target-sum", - "name": "Number of Dice Rolls With Target Sum", - "difficulty": "Medium" - }, - "1156": { - "link": "https://leetcode.com/problems/swap-for-longest-repeated-character-substring", - "name": "Swap For Longest Repeated Character Substring", - "difficulty": "Medium" - }, - "1157": { - "link": "https://leetcode.com/problems/online-majority-element-in-subarray", - "name": "Online Majority Element In Subarray", - "difficulty": "Hard" - }, - "1160": { - "link": "https://leetcode.com/problems/find-words-that-can-be-formed-by-characters", - "name": "Find Words That Can Be Formed by Characters", - "difficulty": "Easy" - }, - "1161": { - "link": "https://leetcode.com/problems/maximum-level-sum-of-a-binary-tree", - "name": "Maximum Level Sum of a Binary Tree", - "difficulty": "Medium" - }, - "1162": { - "link": "https://leetcode.com/problems/as-far-from-land-as-possible", - "name": "As Far from Land as Possible", - "difficulty": "Medium" - }, - "1163": { - "link": "https://leetcode.com/problems/last-substring-in-lexicographical-order", - "name": "Last Substring in Lexicographical Order", - "difficulty": "Hard" - }, - "1165": { - "link": "https://leetcode.com/problems/single-row-keyboard", - "name": "Single-Row Keyboard", - "difficulty": "Easy" - }, - "1166": { - "link": "https://leetcode.com/problems/design-file-system", - "name": "Design File System", - "difficulty": "Medium" - }, - "1167": { - "link": "https://leetcode.com/problems/minimum-cost-to-connect-sticks", - "name": "Minimum Cost to Connect Sticks", - "difficulty": "Medium" - }, - "1168": { - "link": "https://leetcode.com/problems/optimize-water-distribution-in-a-village", - "name": "Optimize Water Distribution in a Village", - "difficulty": "Hard" - }, - "1169": { - "link": "https://leetcode.com/problems/invalid-transactions", - "name": "Invalid Transactions", - "difficulty": "Medium" - }, - "1170": { - "link": "https://leetcode.com/problems/compare-strings-by-frequency-of-the-smallest-character", - "name": "Compare Strings by Frequency of the Smallest Character", - "difficulty": "Easy" - }, - "1171": { - "link": "https://leetcode.com/problems/remove-zero-sum-consecutive-nodes-from-linked-list", - "name": "Remove Zero Sum Consecutive Nodes from Linked List", - "difficulty": "Medium" - }, - "1172": { - "link": "https://leetcode.com/problems/dinner-plate-stacks", - "name": "Dinner Plate Stacks", - "difficulty": "Hard" - }, - "1175": { - "link": "https://leetcode.com/problems/prime-arrangements", - "name": "Prime Arrangements", - "difficulty": "Easy" - }, - "1176": { - "link": "https://leetcode.com/problems/diet-plan-performance", - "name": "Diet Plan Performance", - "difficulty": "Easy" - }, - "1177": { - "link": "https://leetcode.com/problems/can-make-palindrome-from-substring", - "name": "Can Make Palindrome from Substring", - "difficulty": "Medium" - }, - "1178": { - "link": "https://leetcode.com/problems/number-of-valid-words-for-each-puzzle", - "name": "Number of Valid Words for Each Puzzle", - "difficulty": "Hard" - }, - "1180": { - "link": "https://leetcode.com/problems/count-substrings-with-only-one-distinct-letter", - "name": "Count Substrings with Only One Distinct Letter", - "difficulty": "Easy" - }, - "1181": { - "link": "https://leetcode.com/problems/before-and-after-puzzle", - "name": "Before and After Puzzle", - "difficulty": "Medium" - }, - "1182": { - "link": "https://leetcode.com/problems/shortest-distance-to-target-color", - "name": "Shortest Distance to Target Color", - "difficulty": "Medium" - }, - "1183": { - "link": "https://leetcode.com/problems/maximum-number-of-ones", - "name": "Maximum Number of Ones", - "difficulty": "Hard" - }, - "1184": { - "link": "https://leetcode.com/problems/distance-between-bus-stops", - "name": "Distance Between Bus Stops", - "difficulty": "Easy" - }, - "1185": { - "link": "https://leetcode.com/problems/day-of-the-week", - "name": "Day of the Week", - "difficulty": "Easy" - }, - "1186": { - "link": "https://leetcode.com/problems/maximum-subarray-sum-with-one-deletion", - "name": "Maximum Subarray Sum with One Deletion", - "difficulty": "Medium" - }, - "1187": { - "link": "https://leetcode.com/problems/make-array-strictly-increasing", - "name": "Make Array Strictly Increasing", - "difficulty": "Hard" - }, - "1189": { - "link": "https://leetcode.com/problems/maximum-number-of-balloons", - "name": "Maximum Number of Balloons", - "difficulty": "Easy" - }, - "1190": { - "link": "https://leetcode.com/problems/reverse-substrings-between-each-pair-of-parentheses", - "name": "Reverse Substrings Between Each Pair of Parentheses", - "difficulty": "Medium" - }, - "1191": { - "link": "https://leetcode.com/problems/k-concatenation-maximum-sum", - "name": "K-Concatenation Maximum Sum", - "difficulty": "Medium" - }, - "1192": { - "link": "https://leetcode.com/problems/critical-connections-in-a-network", - "name": "Critical Connections in a Network", - "difficulty": "Hard" - }, - "1196": { - "link": "https://leetcode.com/problems/how-many-apples-can-you-put-into-the-basket", - "name": "How Many Apples Can You Put into the Basket", - "difficulty": "Easy" - }, - "1197": { - "link": "https://leetcode.com/problems/minimum-knight-moves", - "name": "Minimum Knight Moves", - "difficulty": "Medium" - }, - "1198": { - "link": "https://leetcode.com/problems/find-smallest-common-element-in-all-rows", - "name": "Find Smallest Common Element in All Rows", - "difficulty": "Medium" - }, - "1199": { - "link": "https://leetcode.com/problems/minimum-time-to-build-blocks", - "name": "Minimum Time to Build Blocks", - "difficulty": "Hard" - }, - "1200": { - "link": "https://leetcode.com/problems/minimum-absolute-difference", - "name": "Minimum Absolute Difference", - "difficulty": "Easy" - }, - "1201": { - "link": "https://leetcode.com/problems/ugly-number-iii", - "name": "Ugly Number III", - "difficulty": "Medium" - }, - "1202": { - "link": "https://leetcode.com/problems/smallest-string-with-swaps", - "name": "Smallest String With Swaps", - "difficulty": "Medium" - }, - "1203": { - "link": "https://leetcode.com/problems/sort-items-by-groups-respecting-dependencies", - "name": "Sort Items by Groups Respecting Dependencies", - "difficulty": "Hard" - }, - "1206": { - "link": "https://leetcode.com/problems/design-skiplist", - "name": "Design Skiplist", - "difficulty": "Hard" - }, - "1207": { - "link": "https://leetcode.com/problems/unique-number-of-occurrences", - "name": "Unique Number of Occurrences", - "difficulty": "Easy" - }, - "1208": { - "link": "https://leetcode.com/problems/get-equal-substrings-within-budget", - "name": "Get Equal Substrings Within Budget", - "difficulty": "Medium" - }, - "1209": { - "link": "https://leetcode.com/problems/remove-all-adjacent-duplicates-in-string-ii", - "name": "Remove All Adjacent Duplicates in String II", - "difficulty": "Medium" - }, - "1210": { - "link": "https://leetcode.com/problems/minimum-moves-to-reach-target-with-rotations", - "name": "Minimum Moves to Reach Target with Rotations", - "difficulty": "Hard" - }, - "1213": { - "link": "https://leetcode.com/problems/intersection-of-three-sorted-arrays", - "name": "Intersection of Three Sorted Arrays", - "difficulty": "Easy" - }, - "1214": { - "link": "https://leetcode.com/problems/two-sum-bsts", - "name": "Two Sum BSTs", - "difficulty": "Medium" - }, - "1215": { - "link": "https://leetcode.com/problems/stepping-numbers", - "name": "Stepping Numbers", - "difficulty": "Medium" - }, - "1216": { - "link": "https://leetcode.com/problems/valid-palindrome-iii", - "name": "Valid Palindrome III", - "difficulty": "Hard" - }, - "1217": { - "link": "https://leetcode.com/problems/minimum-cost-to-move-chips-to-the-same-position", - "name": "Minimum Cost to Move Chips to The Same Position", - "difficulty": "Easy" - }, - "1218": { - "link": "https://leetcode.com/problems/longest-arithmetic-subsequence-of-given-difference", - "name": "Longest Arithmetic Subsequence of Given Difference", - "difficulty": "Medium" - }, - "1219": { - "link": "https://leetcode.com/problems/path-with-maximum-gold", - "name": "Path with Maximum Gold", - "difficulty": "Medium" - }, - "1220": { - "link": "https://leetcode.com/problems/count-vowels-permutation", - "name": "Count Vowels Permutation", - "difficulty": "Hard" - }, - "1221": { - "link": "https://leetcode.com/problems/split-a-string-in-balanced-strings", - "name": "Split a String in Balanced Strings", - "difficulty": "Easy" - }, - "1222": { - "link": "https://leetcode.com/problems/queens-that-can-attack-the-king", - "name": "Queens That Can Attack the King", - "difficulty": "Medium" - }, - "1223": { - "link": "https://leetcode.com/problems/dice-roll-simulation", - "name": "Dice Roll Simulation", - "difficulty": "Medium" - }, - "1224": { - "link": "https://leetcode.com/problems/maximum-equal-frequency", - "name": "Maximum Equal Frequency", - "difficulty": "Hard" - }, - "1227": { - "link": "https://leetcode.com/problems/airplane-seat-assignment-probability", - "name": "Airplane Seat Assignment Probability", - "difficulty": "Medium" - }, - "1228": { - "link": "https://leetcode.com/problems/missing-number-in-arithmetic-progression", - "name": "Missing Number In Arithmetic Progression", - "difficulty": "Easy" - }, - "1229": { - "link": "https://leetcode.com/problems/meeting-scheduler", - "name": "Meeting Scheduler", - "difficulty": "Medium" - }, - "1230": { - "link": "https://leetcode.com/problems/toss-strange-coins", - "name": "Toss Strange Coins", - "difficulty": "Medium" - }, - "1231": { - "link": "https://leetcode.com/problems/divide-chocolate", - "name": "Divide Chocolate", - "difficulty": "Hard" - }, - "1232": { - "link": "https://leetcode.com/problems/check-if-it-is-a-straight-line", - "name": "Check If It Is a Straight Line", - "difficulty": "Easy" - }, - "1233": { - "link": "https://leetcode.com/problems/remove-sub-folders-from-the-filesystem", - "name": "Remove Sub-Folders from the Filesystem", - "difficulty": "Medium" - }, - "1234": { - "link": "https://leetcode.com/problems/replace-the-substring-for-balanced-string", - "name": "Replace the Substring for Balanced String", - "difficulty": "Medium" - }, - "1235": { - "link": "https://leetcode.com/problems/maximum-profit-in-job-scheduling", - "name": "Maximum Profit in Job Scheduling", - "difficulty": "Hard" - }, - "1236": { - "link": "https://leetcode.com/problems/web-crawler", - "name": "Web Crawler", - "difficulty": "Medium" - }, - "1237": { - "link": "https://leetcode.com/problems/find-positive-integer-solution-for-a-given-equation", - "name": "Find Positive Integer Solution for a Given Equation", - "difficulty": "Easy" - }, - "1238": { - "link": "https://leetcode.com/problems/circular-permutation-in-binary-representation", - "name": "Circular Permutation in Binary Representation", - "difficulty": "Medium" - }, - "1239": { - "link": "https://leetcode.com/problems/maximum-length-of-a-concatenated-string-with-unique-characters", - "name": "Maximum Length of a Concatenated String with Unique Characters", - "difficulty": "Medium" - }, - "1240": { - "link": "https://leetcode.com/problems/tiling-a-rectangle-with-the-fewest-squares", - "name": "Tiling a Rectangle with the Fewest Squares", - "difficulty": "Hard" - }, - "1243": { - "link": "https://leetcode.com/problems/array-transformation", - "name": "Array Transformation", - "difficulty": "Easy" - }, - "1244": { - "link": "https://leetcode.com/problems/design-a-leaderboard", - "name": "Design A Leaderboard", - "difficulty": "Medium" - }, - "1245": { - "link": "https://leetcode.com/problems/tree-diameter", - "name": "Tree Diameter", - "difficulty": "Medium" - }, - "1246": { - "link": "https://leetcode.com/problems/palindrome-removal", - "name": "Palindrome Removal", - "difficulty": "Hard" - }, - "1247": { - "link": "https://leetcode.com/problems/minimum-swaps-to-make-strings-equal", - "name": "Minimum Swaps to Make Strings Equal", - "difficulty": "Medium" - }, - "1248": { - "link": "https://leetcode.com/problems/count-number-of-nice-subarrays", - "name": "Count Number of Nice Subarrays", - "difficulty": "Medium" - }, - "1249": { - "link": "https://leetcode.com/problems/minimum-remove-to-make-valid-parentheses", - "name": "Minimum Remove to Make Valid Parentheses", - "difficulty": "Medium" - }, - "1250": { - "link": "https://leetcode.com/problems/check-if-it-is-a-good-array", - "name": "Check If It Is a Good Array", - "difficulty": "Hard" - }, - "1252": { - "link": "https://leetcode.com/problems/cells-with-odd-values-in-a-matrix", - "name": "Cells with Odd Values in a Matrix", - "difficulty": "Easy" - }, - "1253": { - "link": "https://leetcode.com/problems/reconstruct-a-2-row-binary-matrix", - "name": "Reconstruct a 2-Row Binary Matrix", - "difficulty": "Medium" - }, - "1254": { - "link": "https://leetcode.com/problems/number-of-closed-islands", - "name": "Number of Closed Islands", - "difficulty": "Medium" - }, - "1255": { - "link": "https://leetcode.com/problems/maximum-score-words-formed-by-letters", - "name": "Maximum Score Words Formed by Letters", - "difficulty": "Hard" - }, - "1256": { - "link": "https://leetcode.com/problems/encode-number", - "name": "Encode Number", - "difficulty": "Medium" - }, - "1257": { - "link": "https://leetcode.com/problems/smallest-common-region", - "name": "Smallest Common Region", - "difficulty": "Medium" - }, - "1258": { - "link": "https://leetcode.com/problems/synonymous-sentences", - "name": "Synonymous Sentences", - "difficulty": "Medium" - }, - "1259": { - "link": "https://leetcode.com/problems/handshakes-that-dont-cross", - "name": "Handshakes That Don't Cross", - "difficulty": "Hard" - }, - "1260": { - "link": "https://leetcode.com/problems/shift-2d-grid", - "name": "Shift 2D Grid", - "difficulty": "Easy" - }, - "1261": { - "link": "https://leetcode.com/problems/find-elements-in-a-contaminated-binary-tree", - "name": "Find Elements in a Contaminated Binary Tree", - "difficulty": "Medium" - }, - "1262": { - "link": "https://leetcode.com/problems/greatest-sum-divisible-by-three", - "name": "Greatest Sum Divisible by Three", - "difficulty": "Medium" - }, - "1263": { - "link": "https://leetcode.com/problems/minimum-moves-to-move-a-box-to-their-target-location", - "name": "Minimum Moves to Move a Box to Their Target Location", - "difficulty": "Hard" - }, - "1265": { - "link": "https://leetcode.com/problems/print-immutable-linked-list-in-reverse", - "name": "Print Immutable Linked List in Reverse", - "difficulty": "Medium" - }, - "1266": { - "link": "https://leetcode.com/problems/minimum-time-visiting-all-points", - "name": "Minimum Time Visiting All Points", - "difficulty": "Easy" - }, - "1267": { - "link": "https://leetcode.com/problems/count-servers-that-communicate", - "name": "Count Servers that Communicate", - "difficulty": "Medium" - }, - "1268": { - "link": "https://leetcode.com/problems/search-suggestions-system", - "name": "Search Suggestions System", - "difficulty": "Medium" - }, - "1269": { - "link": "https://leetcode.com/problems/number-of-ways-to-stay-in-the-same-place-after-some-steps", - "name": "Number of Ways to Stay in the Same Place After Some Steps", - "difficulty": "Hard" - }, - "1271": { - "link": "https://leetcode.com/problems/hexspeak", - "name": "Hexspeak", - "difficulty": "Easy" - }, - "1272": { - "link": "https://leetcode.com/problems/remove-interval", - "name": "Remove Interval", - "difficulty": "Medium" - }, - "1273": { - "link": "https://leetcode.com/problems/delete-tree-nodes", - "name": "Delete Tree Nodes", - "difficulty": "Medium" - }, - "1274": { - "link": "https://leetcode.com/problems/number-of-ships-in-a-rectangle", - "name": "Number of Ships in a Rectangle", - "difficulty": "Hard" - }, - "1275": { - "link": "https://leetcode.com/problems/find-winner-on-a-tic-tac-toe-game", - "name": "Find Winner on a Tic Tac Toe Game", - "difficulty": "Easy" - }, - "1276": { - "link": "https://leetcode.com/problems/number-of-burgers-with-no-waste-of-ingredients", - "name": "Number of Burgers with No Waste of Ingredients", - "difficulty": "Medium" - }, - "1277": { - "link": "https://leetcode.com/problems/count-square-submatrices-with-all-ones", - "name": "Count Square Submatrices with All Ones", - "difficulty": "Medium" - }, - "1278": { - "link": "https://leetcode.com/problems/palindrome-partitioning-iii", - "name": "Palindrome Partitioning III", - "difficulty": "Hard" - }, - "1281": { - "link": "https://leetcode.com/problems/subtract-the-product-and-sum-of-digits-of-an-integer", - "name": "Subtract the Product and Sum of Digits of an Integer", - "difficulty": "Easy" - }, - "1282": { - "link": "https://leetcode.com/problems/group-the-people-given-the-group-size-they-belong-to", - "name": "Group the People Given the Group Size They Belong To", - "difficulty": "Medium" - }, - "1283": { - "link": "https://leetcode.com/problems/find-the-smallest-divisor-given-a-threshold", - "name": "Find the Smallest Divisor Given a Threshold", - "difficulty": "Medium" - }, - "1284": { - "link": "https://leetcode.com/problems/minimum-number-of-flips-to-convert-binary-matrix-to-zero-matrix", - "name": "Minimum Number of Flips to Convert Binary Matrix to Zero Matrix", - "difficulty": "Hard" - }, - "1286": { - "link": "https://leetcode.com/problems/iterator-for-combination", - "name": "Iterator for Combination", - "difficulty": "Medium" - }, - "1287": { - "link": "https://leetcode.com/problems/element-appearing-more-than-25-in-sorted-array", - "name": "Element Appearing More Than 25% In Sorted Array", - "difficulty": "Easy" - }, - "1288": { - "link": "https://leetcode.com/problems/remove-covered-intervals", - "name": "Remove Covered Intervals", - "difficulty": "Medium" - }, - "1289": { - "link": "https://leetcode.com/problems/minimum-falling-path-sum-ii", - "name": "Minimum Falling Path Sum II", - "difficulty": "Hard" - }, - "1290": { - "link": "https://leetcode.com/problems/convert-binary-number-in-a-linked-list-to-integer", - "name": "Convert Binary Number in a Linked List to Integer", - "difficulty": "Easy" - }, - "1291": { - "link": "https://leetcode.com/problems/sequential-digits", - "name": "Sequential Digits", - "difficulty": "Medium" - }, - "1292": { - "link": "https://leetcode.com/problems/maximum-side-length-of-a-square-with-sum-less-than-or-equal-to-threshold", - "name": "Maximum Side Length of a Square with Sum Less than or Equal to Threshold", - "difficulty": "Medium" - }, - "1293": { - "link": "https://leetcode.com/problems/shortest-path-in-a-grid-with-obstacles-elimination", - "name": "Shortest Path in a Grid with Obstacles Elimination", - "difficulty": "Hard" - }, - "1295": { - "link": "https://leetcode.com/problems/find-numbers-with-even-number-of-digits", - "name": "Find Numbers with Even Number of Digits", - "difficulty": "Easy" - }, - "1296": { - "link": "https://leetcode.com/problems/divide-array-in-sets-of-k-consecutive-numbers", - "name": "Divide Array in Sets of K Consecutive Numbers", - "difficulty": "Medium" - }, - "1297": { - "link": "https://leetcode.com/problems/maximum-number-of-occurrences-of-a-substring", - "name": "Maximum Number of Occurrences of a Substring", - "difficulty": "Medium" - }, - "1298": { - "link": "https://leetcode.com/problems/maximum-candies-you-can-get-from-boxes", - "name": "Maximum Candies You Can Get from Boxes", - "difficulty": "Hard" - }, - "1299": { - "link": "https://leetcode.com/problems/replace-elements-with-greatest-element-on-right-side", - "name": "Replace Elements with Greatest Element on Right Side", - "difficulty": "Easy" - }, - "1300": { - "link": "https://leetcode.com/problems/sum-of-mutated-array-closest-to-target", - "name": "Sum of Mutated Array Closest to Target", - "difficulty": "Medium" - }, - "1301": { - "link": "https://leetcode.com/problems/number-of-paths-with-max-score", - "name": "Number of Paths with Max Score", - "difficulty": "Hard" - }, - "1302": { - "link": "https://leetcode.com/problems/deepest-leaves-sum", - "name": "Deepest Leaves Sum", - "difficulty": "Medium" - }, - "1304": { - "link": "https://leetcode.com/problems/find-n-unique-integers-sum-up-to-zero", - "name": "Find N Unique Integers Sum up to Zero", - "difficulty": "Easy" - }, - "1305": { - "link": "https://leetcode.com/problems/all-elements-in-two-binary-search-trees", - "name": "All Elements in Two Binary Search Trees", - "difficulty": "Medium" - }, - "1306": { - "link": "https://leetcode.com/problems/jump-game-iii", - "name": "Jump Game III", - "difficulty": "Medium" - }, - "1307": { - "link": "https://leetcode.com/problems/verbal-arithmetic-puzzle", - "name": "Verbal Arithmetic Puzzle", - "difficulty": "Hard" - }, - "1309": { - "link": "https://leetcode.com/problems/decrypt-string-from-alphabet-to-integer-mapping", - "name": "Decrypt String from Alphabet to Integer Mapping", - "difficulty": "Easy" - }, - "1310": { - "link": "https://leetcode.com/problems/xor-queries-of-a-subarray", - "name": "XOR Queries of a Subarray", - "difficulty": "Medium" - }, - "1311": { - "link": "https://leetcode.com/problems/get-watched-videos-by-your-friends", - "name": "Get Watched Videos by Your Friends", - "difficulty": "Medium" - }, - "1312": { - "link": "https://leetcode.com/problems/minimum-insertion-steps-to-make-a-string-palindrome", - "name": "Minimum Insertion Steps to Make a String Palindrome", - "difficulty": "Hard" - }, - "1313": { - "link": "https://leetcode.com/problems/decompress-run-length-encoded-list", - "name": "Decompress Run-Length Encoded List", - "difficulty": "Easy" - }, - "1314": { - "link": "https://leetcode.com/problems/matrix-block-sum", - "name": "Matrix Block Sum", - "difficulty": "Medium" - }, - "1315": { - "link": "https://leetcode.com/problems/sum-of-nodes-with-even-valued-grandparent", - "name": "Sum of Nodes with Even-Valued Grandparent", - "difficulty": "Medium" - }, - "1316": { - "link": "https://leetcode.com/problems/distinct-echo-substrings", - "name": "Distinct Echo Substrings", - "difficulty": "Hard" - }, - "1317": { - "link": "https://leetcode.com/problems/convert-integer-to-the-sum-of-two-no-zero-integers", - "name": "Convert Integer to the Sum of Two No-Zero Integers", - "difficulty": "Easy" - }, - "1318": { - "link": "https://leetcode.com/problems/minimum-flips-to-make-a-or-b-equal-to-c", - "name": "Minimum Flips to Make a OR b Equal to c", - "difficulty": "Medium" - }, - "1319": { - "link": "https://leetcode.com/problems/number-of-operations-to-make-network-connected", - "name": "Number of Operations to Make Network Connected", - "difficulty": "Medium" - }, - "1320": { - "link": "https://leetcode.com/problems/minimum-distance-to-type-a-word-using-two-fingers", - "name": "Minimum Distance to Type a Word Using Two Fingers", - "difficulty": "Hard" - }, - "1323": { - "link": "https://leetcode.com/problems/maximum-69-number", - "name": "Maximum 69 Number", - "difficulty": "Easy" - }, - "1324": { - "link": "https://leetcode.com/problems/print-words-vertically", - "name": "Print Words Vertically", - "difficulty": "Medium" - }, - "1325": { - "link": "https://leetcode.com/problems/delete-leaves-with-a-given-value", - "name": "Delete Leaves With a Given Value", - "difficulty": "Medium" - }, - "1326": { - "link": "https://leetcode.com/problems/minimum-number-of-taps-to-open-to-water-a-garden", - "name": "Minimum Number of Taps to Open to Water a Garden", - "difficulty": "Hard" - }, - "1328": { - "link": "https://leetcode.com/problems/break-a-palindrome", - "name": "Break a Palindrome", - "difficulty": "Medium" - }, - "1329": { - "link": "https://leetcode.com/problems/sort-the-matrix-diagonally", - "name": "Sort the Matrix Diagonally", - "difficulty": "Medium" - }, - "1330": { - "link": "https://leetcode.com/problems/reverse-subarray-to-maximize-array-value", - "name": "Reverse Subarray To Maximize Array Value", - "difficulty": "Hard" - }, - "1331": { - "link": "https://leetcode.com/problems/rank-transform-of-an-array", - "name": "Rank Transform of an Array", - "difficulty": "Easy" - }, - "1332": { - "link": "https://leetcode.com/problems/remove-palindromic-subsequences", - "name": "Remove Palindromic Subsequences", - "difficulty": "Easy" - }, - "1333": { - "link": "https://leetcode.com/problems/filter-restaurants-by-vegan-friendly-price-and-distance", - "name": "Filter Restaurants by Vegan-Friendly, Price and Distance", - "difficulty": "Medium" - }, - "1334": { - "link": "https://leetcode.com/problems/find-the-city-with-the-smallest-number-of-neighbors-at-a-threshold-distance", - "name": "Find the City With the Smallest Number of Neighbors at a Threshold Distance", - "difficulty": "Medium" - }, - "1335": { - "link": "https://leetcode.com/problems/minimum-difficulty-of-a-job-schedule", - "name": "Minimum Difficulty of a Job Schedule", - "difficulty": "Hard" - }, - "1337": { - "link": "https://leetcode.com/problems/the-k-weakest-rows-in-a-matrix", - "name": "The K Weakest Rows in a Matrix", - "difficulty": "Easy" - }, - "1338": { - "link": "https://leetcode.com/problems/reduce-array-size-to-the-half", - "name": "Reduce Array Size to The Half", - "difficulty": "Medium" - }, - "1339": { - "link": "https://leetcode.com/problems/maximum-product-of-splitted-binary-tree", - "name": "Maximum Product of Splitted Binary Tree", - "difficulty": "Medium" - }, - "1340": { - "link": "https://leetcode.com/problems/jump-game-v", - "name": "Jump Game V", - "difficulty": "Hard" - }, - "1342": { - "link": "https://leetcode.com/problems/number-of-steps-to-reduce-a-number-to-zero", - "name": "Number of Steps to Reduce a Number to Zero", - "difficulty": "Easy" - }, - "1343": { - "link": "https://leetcode.com/problems/number-of-sub-arrays-of-size-k-and-average-greater-than-or-equal-to-threshold", - "name": "Number of Sub-arrays of Size K and Average Greater than or Equal to Threshold", - "difficulty": "Medium" - }, - "1344": { - "link": "https://leetcode.com/problems/angle-between-hands-of-a-clock", - "name": "Angle Between Hands of a Clock", - "difficulty": "Medium" - }, - "1345": { - "link": "https://leetcode.com/problems/jump-game-iv", - "name": "Jump Game IV", - "difficulty": "Hard" - }, - "1346": { - "link": "https://leetcode.com/problems/check-if-n-and-its-double-exist", - "name": "Check If N and Its Double Exist", - "difficulty": "Easy" - }, - "1347": { - "link": "https://leetcode.com/problems/minimum-number-of-steps-to-make-two-strings-anagram", - "name": "Minimum Number of Steps to Make Two Strings Anagram", - "difficulty": "Medium" - }, - "1348": { - "link": "https://leetcode.com/problems/tweet-counts-per-frequency", - "name": "Tweet Counts Per Frequency", - "difficulty": "Medium" - }, - "1349": { - "link": "https://leetcode.com/problems/maximum-students-taking-exam", - "name": "Maximum Students Taking Exam", - "difficulty": "Hard" - }, - "1351": { - "link": "https://leetcode.com/problems/count-negative-numbers-in-a-sorted-matrix", - "name": "Count Negative Numbers in a Sorted Matrix", - "difficulty": "Easy" - }, - "1352": { - "link": "https://leetcode.com/problems/product-of-the-last-k-numbers", - "name": "Product of the Last K Numbers", - "difficulty": "Medium" - }, - "1353": { - "link": "https://leetcode.com/problems/maximum-number-of-events-that-can-be-attended", - "name": "Maximum Number of Events That Can Be Attended", - "difficulty": "Medium" - }, - "1354": { - "link": "https://leetcode.com/problems/construct-target-array-with-multiple-sums", - "name": "Construct Target Array With Multiple Sums", - "difficulty": "Hard" - }, - "1356": { - "link": "https://leetcode.com/problems/sort-integers-by-the-number-of-1-bits", - "name": "Sort Integers by The Number of 1 Bits", - "difficulty": "Easy" - }, - "1357": { - "link": "https://leetcode.com/problems/apply-discount-every-n-orders", - "name": "Apply Discount Every n Orders", - "difficulty": "Medium" - }, - "1358": { - "link": "https://leetcode.com/problems/number-of-substrings-containing-all-three-characters", - "name": "Number of Substrings Containing All Three Characters", - "difficulty": "Medium" - }, - "1359": { - "link": "https://leetcode.com/problems/count-all-valid-pickup-and-delivery-options", - "name": "Count All Valid Pickup and Delivery Options", - "difficulty": "Hard" - }, - "1360": { - "link": "https://leetcode.com/problems/number-of-days-between-two-dates", - "name": "Number of Days Between Two Dates", - "difficulty": "Easy" - }, - "1361": { - "link": "https://leetcode.com/problems/validate-binary-tree-nodes", - "name": "Validate Binary Tree Nodes", - "difficulty": "Medium" - }, - "1362": { - "link": "https://leetcode.com/problems/closest-divisors", - "name": "Closest Divisors", - "difficulty": "Medium" - }, - "1363": { - "link": "https://leetcode.com/problems/largest-multiple-of-three", - "name": "Largest Multiple of Three", - "difficulty": "Hard" - }, - "1365": { - "link": "https://leetcode.com/problems/how-many-numbers-are-smaller-than-the-current-number", - "name": "How Many Numbers Are Smaller Than the Current Number", - "difficulty": "Easy" - }, - "1366": { - "link": "https://leetcode.com/problems/rank-teams-by-votes", - "name": "Rank Teams by Votes", - "difficulty": "Medium" - }, - "1367": { - "link": "https://leetcode.com/problems/linked-list-in-binary-tree", - "name": "Linked List in Binary Tree", - "difficulty": "Medium" - }, - "1368": { - "link": "https://leetcode.com/problems/minimum-cost-to-make-at-least-one-valid-path-in-a-grid", - "name": "Minimum Cost to Make at Least One Valid Path in a Grid", - "difficulty": "Hard" - }, - "1370": { - "link": "https://leetcode.com/problems/increasing-decreasing-string", - "name": "Increasing Decreasing String", - "difficulty": "Easy" - }, - "1371": { - "link": "https://leetcode.com/problems/find-the-longest-substring-containing-vowels-in-even-counts", - "name": "Find the Longest Substring Containing Vowels in Even Counts", - "difficulty": "Medium" - }, - "1372": { - "link": "https://leetcode.com/problems/longest-zigzag-path-in-a-binary-tree", - "name": "Longest ZigZag Path in a Binary Tree", - "difficulty": "Medium" - }, - "1373": { - "link": "https://leetcode.com/problems/maximum-sum-bst-in-binary-tree", - "name": "Maximum Sum BST in Binary Tree", - "difficulty": "Hard" - }, - "1374": { - "link": "https://leetcode.com/problems/generate-a-string-with-characters-that-have-odd-counts", - "name": "Generate a String With Characters That Have Odd Counts", - "difficulty": "Easy" - }, - "1375": { - "link": "https://leetcode.com/problems/bulb-switcher-iii", - "name": "Bulb Switcher III", - "difficulty": "Medium" - }, - "1376": { - "link": "https://leetcode.com/problems/time-needed-to-inform-all-employees", - "name": "Time Needed to Inform All Employees", - "difficulty": "Medium" - }, - "1377": { - "link": "https://leetcode.com/problems/frog-position-after-t-seconds", - "name": "Frog Position After T Seconds", - "difficulty": "Hard" - }, - "1379": { - "link": "https://leetcode.com/problems/find-a-corresponding-node-of-a-binary-tree-in-a-clone-of-that-tree", - "name": "Find a Corresponding Node of a Binary Tree in a Clone of That Tree", - "difficulty": "Medium" - }, - "1380": { - "link": "https://leetcode.com/problems/lucky-numbers-in-a-matrix", - "name": "Lucky Numbers in a Matrix", - "difficulty": "Easy" - }, - "1381": { - "link": "https://leetcode.com/problems/design-a-stack-with-increment-operation", - "name": "Design a Stack With Increment Operation", - "difficulty": "Medium" - }, - "1382": { - "link": "https://leetcode.com/problems/balance-a-binary-search-tree", - "name": "Balance a Binary Search Tree", - "difficulty": "Medium" - }, - "1383": { - "link": "https://leetcode.com/problems/maximum-performance-of-a-team", - "name": "Maximum Performance of a Team", - "difficulty": "Hard" - }, - "1385": { - "link": "https://leetcode.com/problems/find-the-distance-value-between-two-arrays", - "name": "Find the Distance Value Between Two Arrays", - "difficulty": "Easy" - }, - "1386": { - "link": "https://leetcode.com/problems/cinema-seat-allocation", - "name": "Cinema Seat Allocation", - "difficulty": "Medium" - }, - "1387": { - "link": "https://leetcode.com/problems/sort-integers-by-the-power-value", - "name": "Sort Integers by The Power Value", - "difficulty": "Medium" - }, - "1388": { - "link": "https://leetcode.com/problems/pizza-with-3n-slices", - "name": "Pizza With 3n Slices", - "difficulty": "Hard" - }, - "1389": { - "link": "https://leetcode.com/problems/create-target-array-in-the-given-order", - "name": "Create Target Array in the Given Order", - "difficulty": "Easy" - }, - "1390": { - "link": "https://leetcode.com/problems/four-divisors", - "name": "Four Divisors", - "difficulty": "Medium" - }, - "1391": { - "link": "https://leetcode.com/problems/check-if-there-is-a-valid-path-in-a-grid", - "name": "Check if There is a Valid Path in a Grid", - "difficulty": "Medium" - }, - "1392": { - "link": "https://leetcode.com/problems/longest-happy-prefix", - "name": "Longest Happy Prefix", - "difficulty": "Hard" - }, - "1394": { - "link": "https://leetcode.com/problems/find-lucky-integer-in-an-array", - "name": "Find Lucky Integer in an Array", - "difficulty": "Easy" - }, - "1395": { - "link": "https://leetcode.com/problems/count-number-of-teams", - "name": "Count Number of Teams", - "difficulty": "Medium" - }, - "1396": { - "link": "https://leetcode.com/problems/design-underground-system", - "name": "Design Underground System", - "difficulty": "Medium" - }, - "1397": { - "link": "https://leetcode.com/problems/find-all-good-strings", - "name": "Find All Good Strings", - "difficulty": "Hard" - }, - "1399": { - "link": "https://leetcode.com/problems/count-largest-group", - "name": "Count Largest Group", - "difficulty": "Easy" - }, - "1400": { - "link": "https://leetcode.com/problems/construct-k-palindrome-strings", - "name": "Construct K Palindrome Strings", - "difficulty": "Medium" - }, - "1401": { - "link": "https://leetcode.com/problems/circle-and-rectangle-overlapping", - "name": "Circle and Rectangle Overlapping", - "difficulty": "Medium" - }, - "1402": { - "link": "https://leetcode.com/problems/reducing-dishes", - "name": "Reducing Dishes", - "difficulty": "Hard" - }, - "1403": { - "link": "https://leetcode.com/problems/minimum-subsequence-in-non-increasing-order", - "name": "Minimum Subsequence in Non-Increasing Order", - "difficulty": "Easy" - }, - "1404": { - "link": "https://leetcode.com/problems/number-of-steps-to-reduce-a-number-in-binary-representation-to-one", - "name": "Number of Steps to Reduce a Number in Binary Representation to One", - "difficulty": "Medium" - }, - "1405": { - "link": "https://leetcode.com/problems/longest-happy-string", - "name": "Longest Happy String", - "difficulty": "Medium" - }, - "1406": { - "link": "https://leetcode.com/problems/stone-game-iii", - "name": "Stone Game III", - "difficulty": "Hard" - }, - "1408": { - "link": "https://leetcode.com/problems/string-matching-in-an-array", - "name": "String Matching in an Array", - "difficulty": "Easy" - }, - "1409": { - "link": "https://leetcode.com/problems/queries-on-a-permutation-with-key", - "name": "Queries on a Permutation With Key", - "difficulty": "Medium" - }, - "1410": { - "link": "https://leetcode.com/problems/html-entity-parser", - "name": "HTML Entity Parser", - "difficulty": "Medium" - }, - "1411": { - "link": "https://leetcode.com/problems/number-of-ways-to-paint-n-3-grid", - "name": "Number of Ways to Paint N \u00d7 3 Grid", - "difficulty": "Hard" - }, - "1413": { - "link": "https://leetcode.com/problems/minimum-value-to-get-positive-step-by-step-sum", - "name": "Minimum Value to Get Positive Step by Step Sum", - "difficulty": "Easy" - }, - "1414": { - "link": "https://leetcode.com/problems/find-the-minimum-number-of-fibonacci-numbers-whose-sum-is-k", - "name": "Find the Minimum Number of Fibonacci Numbers Whose Sum Is K", - "difficulty": "Medium" - }, - "1415": { - "link": "https://leetcode.com/problems/the-k-th-lexicographical-string-of-all-happy-strings-of-length-n", - "name": "The k-th Lexicographical String of All Happy Strings of Length n", - "difficulty": "Medium" - }, - "1416": { - "link": "https://leetcode.com/problems/restore-the-array", - "name": "Restore The Array", - "difficulty": "Hard" - }, - "1417": { - "link": "https://leetcode.com/problems/reformat-the-string", - "name": "Reformat The String", - "difficulty": "Easy" - }, - "1418": { - "link": "https://leetcode.com/problems/display-table-of-food-orders-in-a-restaurant", - "name": "Display Table of Food Orders in a Restaurant", - "difficulty": "Medium" - }, - "1419": { - "link": "https://leetcode.com/problems/minimum-number-of-frogs-croaking", - "name": "Minimum Number of Frogs Croaking", - "difficulty": "Medium" - }, - "1420": { - "link": "https://leetcode.com/problems/build-array-where-you-can-find-the-maximum-exactly-k-comparisons", - "name": "Build Array Where You Can Find The Maximum Exactly K Comparisons", - "difficulty": "Hard" - }, - "1422": { - "link": "https://leetcode.com/problems/maximum-score-after-splitting-a-string", - "name": "Maximum Score After Splitting a String", - "difficulty": "Easy" - }, - "1423": { - "link": "https://leetcode.com/problems/maximum-points-you-can-obtain-from-cards", - "name": "Maximum Points You Can Obtain from Cards", - "difficulty": "Medium" - }, - "1424": { - "link": "https://leetcode.com/problems/diagonal-traverse-ii", - "name": "Diagonal Traverse II", - "difficulty": "Medium" - }, - "1425": { - "link": "https://leetcode.com/problems/constrained-subsequence-sum", - "name": "Constrained Subsequence Sum", - "difficulty": "Hard" - }, - "1426": { - "link": "https://leetcode.com/problems/counting-elements", - "name": "Counting Elements", - "difficulty": "Easy" - }, - "1427": { - "link": "https://leetcode.com/problems/perform-string-shifts", - "name": "Perform String Shifts", - "difficulty": "Easy" - }, - "1428": { - "link": "https://leetcode.com/problems/leftmost-column-with-at-least-a-one", - "name": "Leftmost Column with at Least a One", - "difficulty": "Medium" - }, - "1429": { - "link": "https://leetcode.com/problems/first-unique-number", - "name": "First Unique Number", - "difficulty": "Medium" - }, - "1430": { - "link": "https://leetcode.com/problems/check-if-a-string-is-a-valid-sequence-from-root-to-leaves-path-in-a-binary-tree", - "name": "Check If a String Is a Valid Sequence from Root to Leaves Path in a Binary Tree", - "difficulty": "Medium" - }, - "1431": { - "link": "https://leetcode.com/problems/kids-with-the-greatest-number-of-candies", - "name": "Kids With the Greatest Number of Candies", - "difficulty": "Easy" - }, - "1432": { - "link": "https://leetcode.com/problems/max-difference-you-can-get-from-changing-an-integer", - "name": "Max Difference You Can Get From Changing an Integer", - "difficulty": "Medium" - }, - "1433": { - "link": "https://leetcode.com/problems/check-if-a-string-can-break-another-string", - "name": "Check If a String Can Break Another String", - "difficulty": "Medium" - }, - "1434": { - "link": "https://leetcode.com/problems/number-of-ways-to-wear-different-hats-to-each-other", - "name": "Number of Ways to Wear Different Hats to Each Other", - "difficulty": "Hard" - }, - "1436": { - "link": "https://leetcode.com/problems/destination-city", - "name": "Destination City", - "difficulty": "Easy" - }, - "1437": { - "link": "https://leetcode.com/problems/check-if-all-1s-are-at-least-length-k-places-away", - "name": "Check If All 1's Are at Least Length K Places Away", - "difficulty": "Medium" - }, - "1438": { - "link": "https://leetcode.com/problems/longest-continuous-subarray-with-absolute-diff-less-than-or-equal-to-limit", - "name": "Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit", - "difficulty": "Medium" - }, - "1439": { - "link": "https://leetcode.com/problems/find-the-kth-smallest-sum-of-a-matrix-with-sorted-rows", - "name": "Find the Kth Smallest Sum of a Matrix With Sorted Rows", - "difficulty": "Hard" - }, - "1441": { - "link": "https://leetcode.com/problems/build-an-array-with-stack-operations", - "name": "Build an Array With Stack Operations", - "difficulty": "Easy" - }, - "1442": { - "link": "https://leetcode.com/problems/count-triplets-that-can-form-two-arrays-of-equal-xor", - "name": "Count Triplets That Can Form Two Arrays of Equal XOR", - "difficulty": "Medium" - }, - "1443": { - "link": "https://leetcode.com/problems/minimum-time-to-collect-all-apples-in-a-tree", - "name": "Minimum Time to Collect All Apples in a Tree", - "difficulty": "Medium" - }, - "1444": { - "link": "https://leetcode.com/problems/number-of-ways-of-cutting-a-pizza", - "name": "Number of Ways of Cutting a Pizza", - "difficulty": "Hard" - }, - "1446": { - "link": "https://leetcode.com/problems/consecutive-characters", - "name": "Consecutive Characters", - "difficulty": "Easy" - }, - "1447": { - "link": "https://leetcode.com/problems/simplified-fractions", - "name": "Simplified Fractions", - "difficulty": "Medium" - }, - "1448": { - "link": "https://leetcode.com/problems/count-good-nodes-in-binary-tree", - "name": "Count Good Nodes in Binary Tree", - "difficulty": "Medium" - }, - "1449": { - "link": "https://leetcode.com/problems/form-largest-integer-with-digits-that-add-up-to-target", - "name": "Form Largest Integer With Digits That Add up to Target", - "difficulty": "Hard" - }, - "1450": { - "link": "https://leetcode.com/problems/number-of-students-doing-homework-at-a-given-time", - "name": "Number of Students Doing Homework at a Given Time", - "difficulty": "Easy" - }, - "1451": { - "link": "https://leetcode.com/problems/rearrange-words-in-a-sentence", - "name": "Rearrange Words in a Sentence", - "difficulty": "Medium" - }, - "1452": { - "link": "https://leetcode.com/problems/people-whose-list-of-favorite-companies-is-not-a-subset-of-another-list", - "name": "People Whose List of Favorite Companies Is Not a Subset of Another List", - "difficulty": "Medium" - }, - "1453": { - "link": "https://leetcode.com/problems/maximum-number-of-darts-inside-of-a-circular-dartboard", - "name": "Maximum Number of Darts Inside of a Circular Dartboard", - "difficulty": "Hard" - }, - "1455": { - "link": "https://leetcode.com/problems/check-if-a-word-occurs-as-a-prefix-of-any-word-in-a-sentence", - "name": "Check If a Word Occurs As a Prefix of Any Word in a Sentence", - "difficulty": "Easy" - }, - "1456": { - "link": "https://leetcode.com/problems/maximum-number-of-vowels-in-a-substring-of-given-length", - "name": "Maximum Number of Vowels in a Substring of Given Length", - "difficulty": "Medium" - }, - "1457": { - "link": "https://leetcode.com/problems/pseudo-palindromic-paths-in-a-binary-tree", - "name": "Pseudo-Palindromic Paths in a Binary Tree", - "difficulty": "Medium" - }, - "1458": { - "link": "https://leetcode.com/problems/max-dot-product-of-two-subsequences", - "name": "Max Dot Product of Two Subsequences", - "difficulty": "Hard" - }, - "1460": { - "link": "https://leetcode.com/problems/make-two-arrays-equal-by-reversing-sub-arrays", - "name": "Make Two Arrays Equal by Reversing Sub-arrays", - "difficulty": "Easy" - }, - "1461": { - "link": "https://leetcode.com/problems/check-if-a-string-contains-all-binary-codes-of-size-k", - "name": "Check If a String Contains All Binary Codes of Size K", - "difficulty": "Medium" - }, - "1462": { - "link": "https://leetcode.com/problems/course-schedule-iv", - "name": "Course Schedule IV", - "difficulty": "Medium" - }, - "1463": { - "link": "https://leetcode.com/problems/cherry-pickup-ii", - "name": "Cherry Pickup II", - "difficulty": "Hard" - }, - "1464": { - "link": "https://leetcode.com/problems/maximum-product-of-two-elements-in-an-array", - "name": "Maximum Product of Two Elements in an Array", - "difficulty": "Easy" - }, - "1465": { - "link": "https://leetcode.com/problems/maximum-area-of-a-piece-of-cake-after-horizontal-and-vertical-cuts", - "name": "Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts", - "difficulty": "Medium" - }, - "1466": { - "link": "https://leetcode.com/problems/reorder-routes-to-make-all-paths-lead-to-the-city-zero", - "name": "Reorder Routes to Make All Paths Lead to the City Zero", - "difficulty": "Medium" - }, - "1467": { - "link": "https://leetcode.com/problems/probability-of-a-two-boxes-having-the-same-number-of-distinct-balls", - "name": "Probability of a Two Boxes Having The Same Number of Distinct Balls", - "difficulty": "Hard" - }, - "1469": { - "link": "https://leetcode.com/problems/find-all-the-lonely-nodes", - "name": "Find All The Lonely Nodes", - "difficulty": "Easy" - }, - "1470": { - "link": "https://leetcode.com/problems/shuffle-the-array", - "name": "Shuffle the Array", - "difficulty": "Easy" - }, - "1471": { - "link": "https://leetcode.com/problems/the-k-strongest-values-in-an-array", - "name": "The k Strongest Values in an Array", - "difficulty": "Medium" - }, - "1472": { - "link": "https://leetcode.com/problems/design-browser-history", - "name": "Design Browser History", - "difficulty": "Medium" - }, - "1473": { - "link": "https://leetcode.com/problems/paint-house-iii", - "name": "Paint House III", - "difficulty": "Hard" - }, - "1474": { - "link": "https://leetcode.com/problems/delete-n-nodes-after-m-nodes-of-a-linked-list", - "name": "Delete N Nodes After M Nodes of a Linked List", - "difficulty": "Easy" - }, - "1475": { - "link": "https://leetcode.com/problems/final-prices-with-a-special-discount-in-a-shop", - "name": "Final Prices With a Special Discount in a Shop", - "difficulty": "Easy" - }, - "1476": { - "link": "https://leetcode.com/problems/subrectangle-queries", - "name": "Subrectangle Queries", - "difficulty": "Medium" - }, - "1477": { - "link": "https://leetcode.com/problems/find-two-non-overlapping-sub-arrays-each-with-target-sum", - "name": "Find Two Non-overlapping Sub-arrays Each With Target Sum", - "difficulty": "Medium" - }, - "1478": { - "link": "https://leetcode.com/problems/allocate-mailboxes", - "name": "Allocate Mailboxes", - "difficulty": "Hard" - }, - "1480": { - "link": "https://leetcode.com/problems/running-sum-of-1d-array", - "name": "Running Sum of 1d Array", - "difficulty": "Easy" - }, - "1481": { - "link": "https://leetcode.com/problems/least-number-of-unique-integers-after-k-removals", - "name": "Least Number of Unique Integers after K Removals", - "difficulty": "Medium" - }, - "1482": { - "link": "https://leetcode.com/problems/minimum-number-of-days-to-make-m-bouquets", - "name": "Minimum Number of Days to Make m Bouquets", - "difficulty": "Medium" - }, - "1483": { - "link": "https://leetcode.com/problems/kth-ancestor-of-a-tree-node", - "name": "Kth Ancestor of a Tree Node", - "difficulty": "Hard" - }, - "1485": { - "link": "https://leetcode.com/problems/clone-binary-tree-with-random-pointer", - "name": "Clone Binary Tree With Random Pointer", - "difficulty": "Medium" - }, - "1486": { - "link": "https://leetcode.com/problems/xor-operation-in-an-array", - "name": "XOR Operation in an Array", - "difficulty": "Easy" - }, - "1487": { - "link": "https://leetcode.com/problems/making-file-names-unique", - "name": "Making File Names Unique", - "difficulty": "Medium" - }, - "1488": { - "link": "https://leetcode.com/problems/avoid-flood-in-the-city", - "name": "Avoid Flood in The City", - "difficulty": "Medium" - }, - "1489": { - "link": "https://leetcode.com/problems/find-critical-and-pseudo-critical-edges-in-minimum-spanning-tree", - "name": "Find Critical and Pseudo-Critical Edges in Minimum Spanning Tree", - "difficulty": "Hard" - }, - "1490": { - "link": "https://leetcode.com/problems/clone-n-ary-tree", - "name": "Clone N-ary Tree", - "difficulty": "Medium" - }, - "1491": { - "link": "https://leetcode.com/problems/average-salary-excluding-the-minimum-and-maximum-salary", - "name": "Average Salary Excluding the Minimum and Maximum Salary", - "difficulty": "Easy" - }, - "1492": { - "link": "https://leetcode.com/problems/the-kth-factor-of-n", - "name": "The kth Factor of n", - "difficulty": "Medium" - }, - "1493": { - "link": "https://leetcode.com/problems/longest-subarray-of-1s-after-deleting-one-element", - "name": "Longest Subarray of 1's After Deleting One Element", - "difficulty": "Medium" - }, - "1494": { - "link": "https://leetcode.com/problems/parallel-courses-ii", - "name": "Parallel Courses II", - "difficulty": "Hard" - }, - "1496": { - "link": "https://leetcode.com/problems/path-crossing", - "name": "Path Crossing", - "difficulty": "Easy" - }, - "1497": { - "link": "https://leetcode.com/problems/check-if-array-pairs-are-divisible-by-k", - "name": "Check If Array Pairs Are Divisible by k", - "difficulty": "Medium" - }, - "1498": { - "link": "https://leetcode.com/problems/number-of-subsequences-that-satisfy-the-given-sum-condition", - "name": "Number of Subsequences That Satisfy the Given Sum Condition", - "difficulty": "Medium" - }, - "1499": { - "link": "https://leetcode.com/problems/max-value-of-equation", - "name": "Max Value of Equation", - "difficulty": "Hard" - }, - "1500": { - "link": "https://leetcode.com/problems/design-a-file-sharing-system", - "name": "Design a File Sharing System", - "difficulty": "Medium" - }, - "1502": { - "link": "https://leetcode.com/problems/can-make-arithmetic-progression-from-sequence", - "name": "Can Make Arithmetic Progression From Sequence", - "difficulty": "Easy" - }, - "1503": { - "link": "https://leetcode.com/problems/last-moment-before-all-ants-fall-out-of-a-plank", - "name": "Last Moment Before All Ants Fall Out of a Plank", - "difficulty": "Medium" - }, - "1504": { - "link": "https://leetcode.com/problems/count-submatrices-with-all-ones", - "name": "Count Submatrices With All Ones", - "difficulty": "Medium" - }, - "1505": { - "link": "https://leetcode.com/problems/minimum-possible-integer-after-at-most-k-adjacent-swaps-on-digits", - "name": "Minimum Possible Integer After at Most K Adjacent Swaps On Digits", - "difficulty": "Hard" - }, - "1506": { - "link": "https://leetcode.com/problems/find-root-of-n-ary-tree", - "name": "Find Root of N-Ary Tree", - "difficulty": "Medium" - }, - "1507": { - "link": "https://leetcode.com/problems/reformat-date", - "name": "Reformat Date", - "difficulty": "Easy" - }, - "1508": { - "link": "https://leetcode.com/problems/range-sum-of-sorted-subarray-sums", - "name": "Range Sum of Sorted Subarray Sums", - "difficulty": "Medium" - }, - "1509": { - "link": "https://leetcode.com/problems/minimum-difference-between-largest-and-smallest-value-in-three-moves", - "name": "Minimum Difference Between Largest and Smallest Value in Three Moves", - "difficulty": "Medium" - }, - "1510": { - "link": "https://leetcode.com/problems/stone-game-iv", - "name": "Stone Game IV", - "difficulty": "Hard" - }, - "1512": { - "link": "https://leetcode.com/problems/number-of-good-pairs", - "name": "Number of Good Pairs", - "difficulty": "Easy" - }, - "1513": { - "link": "https://leetcode.com/problems/number-of-substrings-with-only-1s", - "name": "Number of Substrings With Only 1s", - "difficulty": "Medium" - }, - "1514": { - "link": "https://leetcode.com/problems/path-with-maximum-probability", - "name": "Path with Maximum Probability", - "difficulty": "Medium" - }, - "1515": { - "link": "https://leetcode.com/problems/best-position-for-a-service-centre", - "name": "Best Position for a Service Centre", - "difficulty": "Hard" - }, - "1516": { - "link": "https://leetcode.com/problems/move-sub-tree-of-n-ary-tree", - "name": "Move Sub-Tree of N-Ary Tree", - "difficulty": "Hard" - }, - "1518": { - "link": "https://leetcode.com/problems/water-bottles", - "name": "Water Bottles", - "difficulty": "Easy" - }, - "1519": { - "link": "https://leetcode.com/problems/number-of-nodes-in-the-sub-tree-with-the-same-label", - "name": "Number of Nodes in the Sub-Tree With the Same Label", - "difficulty": "Medium" - }, - "1520": { - "link": "https://leetcode.com/problems/maximum-number-of-non-overlapping-substrings", - "name": "Maximum Number of Non-Overlapping Substrings", - "difficulty": "Hard" - }, - "1521": { - "link": "https://leetcode.com/problems/find-a-value-of-a-mysterious-function-closest-to-target", - "name": "Find a Value of a Mysterious Function Closest to Target", - "difficulty": "Hard" - }, - "1522": { - "link": "https://leetcode.com/problems/diameter-of-n-ary-tree", - "name": "Diameter of N-Ary Tree", - "difficulty": "Medium" - }, - "1523": { - "link": "https://leetcode.com/problems/count-odd-numbers-in-an-interval-range", - "name": "Count Odd Numbers in an Interval Range", - "difficulty": "Easy" - }, - "1524": { - "link": "https://leetcode.com/problems/number-of-sub-arrays-with-odd-sum", - "name": "Number of Sub-arrays With Odd Sum", - "difficulty": "Medium" - }, - "1525": { - "link": "https://leetcode.com/problems/number-of-good-ways-to-split-a-string", - "name": "Number of Good Ways to Split a String", - "difficulty": "Medium" - }, - "1526": { - "link": "https://leetcode.com/problems/minimum-number-of-increments-on-subarrays-to-form-a-target-array", - "name": "Minimum Number of Increments on Subarrays to Form a Target Array", - "difficulty": "Hard" - }, - "1528": { - "link": "https://leetcode.com/problems/shuffle-string", - "name": "Shuffle String", - "difficulty": "Easy" - }, - "1529": { - "link": "https://leetcode.com/problems/bulb-switcher-iv", - "name": "Bulb Switcher IV", - "difficulty": "Medium" - }, - "1530": { - "link": "https://leetcode.com/problems/number-of-good-leaf-nodes-pairs", - "name": "Number of Good Leaf Nodes Pairs", - "difficulty": "Medium" - }, - "1531": { - "link": "https://leetcode.com/problems/string-compression-ii", - "name": "String Compression II", - "difficulty": "Hard" - }, - "1533": { - "link": "https://leetcode.com/problems/find-the-index-of-the-large-integer", - "name": "Find the Index of the Large Integer", - "difficulty": "Medium" - }, - "1534": { - "link": "https://leetcode.com/problems/count-good-triplets", - "name": "Count Good Triplets", - "difficulty": "Easy" - }, - "1535": { - "link": "https://leetcode.com/problems/find-the-winner-of-an-array-game", - "name": "Find the Winner of an Array Game", - "difficulty": "Medium" - }, - "1536": { - "link": "https://leetcode.com/problems/minimum-swaps-to-arrange-a-binary-grid", - "name": "Minimum Swaps to Arrange a Binary Grid", - "difficulty": "Medium" - }, - "1537": { - "link": "https://leetcode.com/problems/get-the-maximum-score", - "name": "Get the Maximum Score", - "difficulty": "Hard" - }, - "1538": { - "link": "https://leetcode.com/problems/guess-the-majority-in-a-hidden-array", - "name": "Guess the Majority in a Hidden Array", - "difficulty": "Medium" - }, - "1539": { - "link": "https://leetcode.com/problems/kth-missing-positive-number", - "name": "Kth Missing Positive Number", - "difficulty": "Easy" - }, - "1540": { - "link": "https://leetcode.com/problems/can-convert-string-in-k-moves", - "name": "Can Convert String in K Moves", - "difficulty": "Medium" - }, - "1541": { - "link": "https://leetcode.com/problems/minimum-insertions-to-balance-a-parentheses-string", - "name": "Minimum Insertions to Balance a Parentheses String", - "difficulty": "Medium" - }, - "1542": { - "link": "https://leetcode.com/problems/find-longest-awesome-substring", - "name": "Find Longest Awesome Substring", - "difficulty": "Hard" - }, - "1544": { - "link": "https://leetcode.com/problems/make-the-string-great", - "name": "Make The String Great", - "difficulty": "Easy" - }, - "1545": { - "link": "https://leetcode.com/problems/find-kth-bit-in-nth-binary-string", - "name": "Find Kth Bit in Nth Binary String", - "difficulty": "Medium" - }, - "1546": { - "link": "https://leetcode.com/problems/maximum-number-of-non-overlapping-subarrays-with-sum-equals-target", - "name": "Maximum Number of Non-Overlapping Subarrays With Sum Equals Target", - "difficulty": "Medium" - }, - "1547": { - "link": "https://leetcode.com/problems/minimum-cost-to-cut-a-stick", - "name": "Minimum Cost to Cut a Stick", - "difficulty": "Hard" - }, - "1548": { - "link": "https://leetcode.com/problems/the-most-similar-path-in-a-graph", - "name": "The Most Similar Path in a Graph", - "difficulty": "Hard" - }, - "1550": { - "link": "https://leetcode.com/problems/three-consecutive-odds", - "name": "Three Consecutive Odds", - "difficulty": "Easy" - }, - "1551": { - "link": "https://leetcode.com/problems/minimum-operations-to-make-array-equal", - "name": "Minimum Operations to Make Array Equal", - "difficulty": "Medium" - }, - "1552": { - "link": "https://leetcode.com/problems/magnetic-force-between-two-balls", - "name": "Magnetic Force Between Two Balls", - "difficulty": "Medium" - }, - "1553": { - "link": "https://leetcode.com/problems/minimum-number-of-days-to-eat-n-oranges", - "name": "Minimum Number of Days to Eat N Oranges", - "difficulty": "Hard" - }, - "1554": { - "link": "https://leetcode.com/problems/strings-differ-by-one-character", - "name": "Strings Differ by One Character", - "difficulty": "Medium" - }, - "1556": { - "link": "https://leetcode.com/problems/thousand-separator", - "name": "Thousand Separator", - "difficulty": "Easy" - }, - "1557": { - "link": "https://leetcode.com/problems/minimum-number-of-vertices-to-reach-all-nodes", - "name": "Minimum Number of Vertices to Reach All Nodes", - "difficulty": "Medium" - }, - "1558": { - "link": "https://leetcode.com/problems/minimum-numbers-of-function-calls-to-make-target-array", - "name": "Minimum Numbers of Function Calls to Make Target Array", - "difficulty": "Medium" - }, - "1559": { - "link": "https://leetcode.com/problems/detect-cycles-in-2d-grid", - "name": "Detect Cycles in 2D Grid", - "difficulty": "Hard" - }, - "1560": { - "link": "https://leetcode.com/problems/most-visited-sector-in-a-circular-track", - "name": "Most Visited Sector in a Circular Track", - "difficulty": "Easy" - }, - "1561": { - "link": "https://leetcode.com/problems/maximum-number-of-coins-you-can-get", - "name": "Maximum Number of Coins You Can Get", - "difficulty": "Medium" - }, - "1562": { - "link": "https://leetcode.com/problems/find-latest-group-of-size-m", - "name": "Find Latest Group of Size M", - "difficulty": "Medium" - }, - "1563": { - "link": "https://leetcode.com/problems/stone-game-v", - "name": "Stone Game V", - "difficulty": "Hard" - }, - "1564": { - "link": "https://leetcode.com/problems/put-boxes-into-the-warehouse-i", - "name": "Put Boxes Into the Warehouse I", - "difficulty": "Medium" - }, - "1566": { - "link": "https://leetcode.com/problems/detect-pattern-of-length-m-repeated-k-or-more-times", - "name": "Detect Pattern of Length M Repeated K or More Times", - "difficulty": "Easy" - }, - "1567": { - "link": "https://leetcode.com/problems/maximum-length-of-subarray-with-positive-product", - "name": "Maximum Length of Subarray With Positive Product", - "difficulty": "Medium" - }, - "1568": { - "link": "https://leetcode.com/problems/minimum-number-of-days-to-disconnect-island", - "name": "Minimum Number of Days to Disconnect Island", - "difficulty": "Hard" - }, - "1569": { - "link": "https://leetcode.com/problems/number-of-ways-to-reorder-array-to-get-same-bst", - "name": "Number of Ways to Reorder Array to Get Same BST", - "difficulty": "Hard" - }, - "1570": { - "link": "https://leetcode.com/problems/dot-product-of-two-sparse-vectors", - "name": "Dot Product of Two Sparse Vectors", - "difficulty": "Medium" - }, - "1572": { - "link": "https://leetcode.com/problems/matrix-diagonal-sum", - "name": "Matrix Diagonal Sum", - "difficulty": "Easy" - }, - "1573": { - "link": "https://leetcode.com/problems/number-of-ways-to-split-a-string", - "name": "Number of Ways to Split a String", - "difficulty": "Medium" - }, - "1574": { - "link": "https://leetcode.com/problems/shortest-subarray-to-be-removed-to-make-array-sorted", - "name": "Shortest Subarray to be Removed to Make Array Sorted", - "difficulty": "Medium" - }, - "1575": { - "link": "https://leetcode.com/problems/count-all-possible-routes", - "name": "Count All Possible Routes", - "difficulty": "Hard" - }, - "1576": { - "link": "https://leetcode.com/problems/replace-all-s-to-avoid-consecutive-repeating-characters", - "name": "Replace All ?'s to Avoid Consecutive Repeating Characters", - "difficulty": "Easy" - }, - "1577": { - "link": "https://leetcode.com/problems/number-of-ways-where-square-of-number-is-equal-to-product-of-two-numbers", - "name": "Number of Ways Where Square of Number Is Equal to Product of Two Numbers", - "difficulty": "Medium" - }, - "1578": { - "link": "https://leetcode.com/problems/minimum-deletion-cost-to-avoid-repeating-letters", - "name": "Minimum Deletion Cost to Avoid Repeating Letters", - "difficulty": "Medium" - }, - "1579": { - "link": "https://leetcode.com/problems/remove-max-number-of-edges-to-keep-graph-fully-traversable", - "name": "Remove Max Number of Edges to Keep Graph Fully Traversable", - "difficulty": "Hard" - }, - "1580": { - "link": "https://leetcode.com/problems/put-boxes-into-the-warehouse-ii", - "name": "Put Boxes Into the Warehouse II", - "difficulty": "Medium" - }, - "1582": { - "link": "https://leetcode.com/problems/special-positions-in-a-binary-matrix", - "name": "Special Positions in a Binary Matrix", - "difficulty": "Easy" - }, - "1583": { - "link": "https://leetcode.com/problems/count-unhappy-friends", - "name": "Count Unhappy Friends", - "difficulty": "Medium" - }, - "1584": { - "link": "https://leetcode.com/problems/min-cost-to-connect-all-points", - "name": "Min Cost to Connect All Points", - "difficulty": "Medium" - }, - "1585": { - "link": "https://leetcode.com/problems/check-if-string-is-transformable-with-substring-sort-operations", - "name": "Check If String Is Transformable With Substring Sort Operations", - "difficulty": "Hard" - }, - "1586": { - "link": "https://leetcode.com/problems/binary-search-tree-iterator-ii", - "name": "Binary Search Tree Iterator II", - "difficulty": "Medium" - }, - "1588": { - "link": "https://leetcode.com/problems/sum-of-all-odd-length-subarrays", - "name": "Sum of All Odd Length Subarrays", - "difficulty": "Easy" - }, - "1589": { - "link": "https://leetcode.com/problems/maximum-sum-obtained-of-any-permutation", - "name": "Maximum Sum Obtained of Any Permutation", - "difficulty": "Medium" - }, - "1590": { - "link": "https://leetcode.com/problems/make-sum-divisible-by-p", - "name": "Make Sum Divisible by P", - "difficulty": "Medium" - }, - "1591": { - "link": "https://leetcode.com/problems/strange-printer-ii", - "name": "Strange Printer II", - "difficulty": "Hard" - }, - "1592": { - "link": "https://leetcode.com/problems/rearrange-spaces-between-words", - "name": "Rearrange Spaces Between Words", - "difficulty": "Easy" - }, - "1593": { - "link": "https://leetcode.com/problems/split-a-string-into-the-max-number-of-unique-substrings", - "name": "Split a String Into the Max Number of Unique Substrings", - "difficulty": "Medium" - }, - "1594": { - "link": "https://leetcode.com/problems/maximum-non-negative-product-in-a-matrix", - "name": "Maximum Non Negative Product in a Matrix", - "difficulty": "Medium" - }, - "1595": { - "link": "https://leetcode.com/problems/minimum-cost-to-connect-two-groups-of-points", - "name": "Minimum Cost to Connect Two Groups of Points", - "difficulty": "Hard" - }, - "1597": { - "link": "https://leetcode.com/problems/build-binary-expression-tree-from-infix-expression", - "name": "Build Binary Expression Tree From Infix Expression", - "difficulty": "Hard" - }, - "1598": { - "link": "https://leetcode.com/problems/crawler-log-folder", - "name": "Crawler Log Folder", - "difficulty": "Easy" - }, - "1599": { - "link": "https://leetcode.com/problems/maximum-profit-of-operating-a-centennial-wheel", - "name": "Maximum Profit of Operating a Centennial Wheel", - "difficulty": "Medium" - }, - "1600": { - "link": "https://leetcode.com/problems/throne-inheritance", - "name": "Throne Inheritance", - "difficulty": "Medium" - }, - "1601": { - "link": "https://leetcode.com/problems/maximum-number-of-achievable-transfer-requests", - "name": "Maximum Number of Achievable Transfer Requests", - "difficulty": "Hard" - }, - "1602": { - "link": "https://leetcode.com/problems/find-nearest-right-node-in-binary-tree", - "name": "Find Nearest Right Node in Binary Tree", - "difficulty": "Medium" - }, - "1603": { - "link": "https://leetcode.com/problems/design-parking-system", - "name": "Design Parking System", - "difficulty": "Easy" - }, - "1604": { - "link": "https://leetcode.com/problems/alert-using-same-key-card-three-or-more-times-in-a-one-hour-period", - "name": "Alert Using Same Key-Card Three or More Times in a One Hour Period", - "difficulty": "Medium" - }, - "1605": { - "link": "https://leetcode.com/problems/find-valid-matrix-given-row-and-column-sums", - "name": "Find Valid Matrix Given Row and Column Sums", - "difficulty": "Medium" - }, - "1606": { - "link": "https://leetcode.com/problems/find-servers-that-handled-most-number-of-requests", - "name": "Find Servers That Handled Most Number of Requests", - "difficulty": "Hard" - }, - "1608": { - "link": "https://leetcode.com/problems/special-array-with-x-elements-greater-than-or-equal-x", - "name": "Special Array With X Elements Greater Than or Equal X", - "difficulty": "Easy" - }, - "1609": { - "link": "https://leetcode.com/problems/even-odd-tree", - "name": "Even Odd Tree", - "difficulty": "Medium" - }, - "1610": { - "link": "https://leetcode.com/problems/maximum-number-of-visible-points", - "name": "Maximum Number of Visible Points", - "difficulty": "Hard" - }, - "1611": { - "link": "https://leetcode.com/problems/minimum-one-bit-operations-to-make-integers-zero", - "name": "Minimum One Bit Operations to Make Integers Zero", - "difficulty": "Hard" - }, - "1612": { - "link": "https://leetcode.com/problems/check-if-two-expression-trees-are-equivalent", - "name": "Check If Two Expression Trees are Equivalent", - "difficulty": "Medium" - }, - "1614": { - "link": "https://leetcode.com/problems/maximum-nesting-depth-of-the-parentheses", - "name": "Maximum Nesting Depth of the Parentheses", - "difficulty": "Easy" - }, - "1615": { - "link": "https://leetcode.com/problems/maximal-network-rank", - "name": "Maximal Network Rank", - "difficulty": "Medium" - }, - "1616": { - "link": "https://leetcode.com/problems/split-two-strings-to-make-palindrome", - "name": "Split Two Strings to Make Palindrome", - "difficulty": "Medium" - }, - "1617": { - "link": "https://leetcode.com/problems/count-subtrees-with-max-distance-between-cities", - "name": "Count Subtrees With Max Distance Between Cities", - "difficulty": "Hard" - } -} diff --git a/public/logo.png b/logo.png similarity index 100% rename from public/logo.png rename to logo.png diff --git a/public/logo192.png b/logo192.png similarity index 100% rename from public/logo192.png rename to logo192.png diff --git a/public/logo512.png b/logo512.png similarity index 100% rename from public/logo512.png rename to logo512.png diff --git a/public/manifest.json b/manifest.json similarity index 100% rename from public/manifest.json rename to manifest.json diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 85f31d3..0000000 --- a/package-lock.json +++ /dev/null @@ -1,14187 +0,0 @@ -{ - "name": "leetcode", - "version": "0.1.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@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.11.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz", - "integrity": "sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==", - "requires": { - "browserslist": "^4.12.0", - "invariant": "^2.2.4", - "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==" - } - } - }, - "@babel/core": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", - "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.0", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helpers": "^7.9.0", - "@babel/parser": "^7.9.0", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.9.0", - "@babel/types": "^7.9.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.13", - "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==" - } - } - }, - "@babel/generator": { - "version": "7.11.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz", - "integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==", - "requires": { - "@babel/types": "^7.11.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", - "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@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==", - "requires": { - "@babel/helper-explode-assignable-expression": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-builder-react-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz", - "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-builder-react-jsx-experimental": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.11.5.tgz", - "integrity": "sha512-Vc4aPJnRZKWfzeCBsqTBnzulVNjABVdahSPhtdMD3Vs80ykx4a87jTHtF/VR+alSrDmNvat7l13yrRHauGcHVw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-module-imports": "^7.10.4", - "@babel/types": "^7.11.5" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz", - "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==", - "requires": { - "@babel/compat-data": "^7.10.4", - "browserslist": "^4.12.0", - "invariant": "^2.2.4", - "levenary": "^1.1.1", - "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==" - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz", - "integrity": "sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==", - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-member-expression-to-functions": "^7.10.5", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", - "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-regex": "^7.10.4", - "regexpu-core": "^4.7.0" - } - }, - "@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==", - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/types": "^7.10.5", - "lodash": "^4.17.19" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.11.4", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz", - "integrity": "sha512-ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ==", - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@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.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", - "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@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==", - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", - "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", - "requires": { - "@babel/types": "^7.11.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", - "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-module-transforms": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz", - "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==", - "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/template": "^7.10.4", - "@babel/types": "^7.11.0", - "lodash": "^4.17.19" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", - "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@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==" - }, - "@babel/helper-regex": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", - "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", - "requires": { - "lodash": "^4.17.19" - } - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.11.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz", - "integrity": "sha512-tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-wrap-function": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-replace-supers": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", - "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", - "requires": { - "@babel/helper-member-expression-to-functions": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-simple-access": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", - "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", - "requires": { - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz", - "integrity": "sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==", - "requires": { - "@babel/types": "^7.11.0" - } - }, - "@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-wrap-function": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", - "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", - "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.10.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", - "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", - "requires": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@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.11.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", - "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==" - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz", - "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.10.4", - "@babel/plugin-syntax-async-generators": "^7.8.0" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz", - "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-proposal-decorators": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.8.3.tgz", - "integrity": "sha512-e3RvdvS4qPJVTe288DlXjwKflpfy1hr0j5dz5WpIYYeP7vQZg2WfAEIp8k5/Lwis/m5REXEteIz6rrcDtXXG7w==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-decorators": "^7.8.3" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", - "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz", - "integrity": "sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", - "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.0" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz", - "integrity": "sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q==", - "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.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz", - "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz", - "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz", - "integrity": "sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.10.4" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", - "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz", - "integrity": "sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz", - "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", - "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@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==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", - "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-decorators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.4.tgz", - "integrity": "sha512-2NaoC6fAk2VMdhY1eerkfHV+lVYC1u8b+jmRJISqANCJlTxYy19HGdIkkQtix2UtkcPuPu+IlDgrVseZnU03bw==", - "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==", - "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==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-flow": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz", - "integrity": "sha512-yxQsX1dJixF4qEEdzVbst3SZQ58Nrooz8NV9Z9GL4byTE25BvJgl5lf0RECUf0fh28rZBb/RYTWn/eeKwCMrZQ==", - "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==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", - "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", - "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz", - "integrity": "sha512-oSAEz1YkBCAKr5Yiq8/BNtvSAPwkp/IyUnwZogd8p+F0RuYQQrLeRUzIQhueQTTBy/F+a40uS7OFKxnkRvmvFQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", - "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", - "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", - "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.10.4" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", - "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz", - "integrity": "sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", - "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", - "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.10.4", - "@babel/helper-split-export-declaration": "^7.10.4", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", - "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", - "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", - "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", - "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", - "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.9.0.tgz", - "integrity": "sha512-7Qfg0lKQhEHs93FChxVLAvhBshOPQDtJUTVHr/ZwQNRccCm4O9D79r9tVSoV8iNwjP1YgfD+e/fgHcPkN1qEQg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-flow": "^7.8.3" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", - "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", - "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", - "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", - "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz", - "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==", - "requires": { - "@babel/helper-module-transforms": "^7.10.5", - "@babel/helper-plugin-utils": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz", - "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==", - "requires": { - "@babel/helper-module-transforms": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz", - "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==", - "requires": { - "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.10.5", - "@babel/helper-plugin-utils": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", - "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", - "requires": { - "@babel/helper-module-transforms": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", - "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", - "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", - "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz", - "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==", - "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", - "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-react-constant-elements": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.10.4.tgz", - "integrity": "sha512-cYmQBW1pXrqBte1raMkAulXmi7rjg3VI6ZLg9QIic8Hq7BtYXaWuZSxsr2siOMI6SWwpxjWfnwhTUrd7JlAV7g==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz", - "integrity": "sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz", - "integrity": "sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==", - "requires": { - "@babel/helper-builder-react-jsx": "^7.10.4", - "@babel/helper-builder-react-jsx-experimental": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.10.4" - } - }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.11.5.tgz", - "integrity": "sha512-cImAmIlKJ84sDmpQzm4/0q/2xrXlDezQoixy3qoz1NJeZL/8PRon6xZtluvr4H4FzwlDGI5tCcFupMnXGtr+qw==", - "requires": { - "@babel/helper-builder-react-jsx-experimental": "^7.11.5", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.10.4" - } - }, - "@babel/plugin-transform-react-jsx-self": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz", - "integrity": "sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.10.4" - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz", - "integrity": "sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.10.4" - } - }, - "@babel/plugin-transform-react-pure-annotations": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz", - "integrity": "sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", - "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", - "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.0.tgz", - "integrity": "sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw==", - "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "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==" - } - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", - "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz", - "integrity": "sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", - "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-regex": "^7.10.4" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz", - "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", - "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz", - "integrity": "sha512-edJsNzTtvb3MaXQwj8403B7mZoGu9ElDJQZOKjGUnvilquxBA3IQoEIOvkX/1O8xfAsnHS/oQhe2w/IXrr+w0w==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.5", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-typescript": "^7.10.4" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz", - "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", - "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/preset-env": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.5.tgz", - "integrity": "sha512-kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA==", - "requires": { - "@babel/compat-data": "^7.11.0", - "@babel/helper-compilation-targets": "^7.10.4", - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-proposal-async-generator-functions": "^7.10.4", - "@babel/plugin-proposal-class-properties": "^7.10.4", - "@babel/plugin-proposal-dynamic-import": "^7.10.4", - "@babel/plugin-proposal-export-namespace-from": "^7.10.4", - "@babel/plugin-proposal-json-strings": "^7.10.4", - "@babel/plugin-proposal-logical-assignment-operators": "^7.11.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", - "@babel/plugin-proposal-numeric-separator": "^7.10.4", - "@babel/plugin-proposal-object-rest-spread": "^7.11.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", - "@babel/plugin-proposal-optional-chaining": "^7.11.0", - "@babel/plugin-proposal-private-methods": "^7.10.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.10.4", - "@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.10.4", - "@babel/plugin-transform-arrow-functions": "^7.10.4", - "@babel/plugin-transform-async-to-generator": "^7.10.4", - "@babel/plugin-transform-block-scoped-functions": "^7.10.4", - "@babel/plugin-transform-block-scoping": "^7.10.4", - "@babel/plugin-transform-classes": "^7.10.4", - "@babel/plugin-transform-computed-properties": "^7.10.4", - "@babel/plugin-transform-destructuring": "^7.10.4", - "@babel/plugin-transform-dotall-regex": "^7.10.4", - "@babel/plugin-transform-duplicate-keys": "^7.10.4", - "@babel/plugin-transform-exponentiation-operator": "^7.10.4", - "@babel/plugin-transform-for-of": "^7.10.4", - "@babel/plugin-transform-function-name": "^7.10.4", - "@babel/plugin-transform-literals": "^7.10.4", - "@babel/plugin-transform-member-expression-literals": "^7.10.4", - "@babel/plugin-transform-modules-amd": "^7.10.4", - "@babel/plugin-transform-modules-commonjs": "^7.10.4", - "@babel/plugin-transform-modules-systemjs": "^7.10.4", - "@babel/plugin-transform-modules-umd": "^7.10.4", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", - "@babel/plugin-transform-new-target": "^7.10.4", - "@babel/plugin-transform-object-super": "^7.10.4", - "@babel/plugin-transform-parameters": "^7.10.4", - "@babel/plugin-transform-property-literals": "^7.10.4", - "@babel/plugin-transform-regenerator": "^7.10.4", - "@babel/plugin-transform-reserved-words": "^7.10.4", - "@babel/plugin-transform-shorthand-properties": "^7.10.4", - "@babel/plugin-transform-spread": "^7.11.0", - "@babel/plugin-transform-sticky-regex": "^7.10.4", - "@babel/plugin-transform-template-literals": "^7.10.4", - "@babel/plugin-transform-typeof-symbol": "^7.10.4", - "@babel/plugin-transform-unicode-escapes": "^7.10.4", - "@babel/plugin-transform-unicode-regex": "^7.10.4", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.11.5", - "browserslist": "^4.12.0", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "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==" - } - } - }, - "@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==", - "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/preset-react": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.4.tgz", - "integrity": "sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-transform-react-display-name": "^7.10.4", - "@babel/plugin-transform-react-jsx": "^7.10.4", - "@babel/plugin-transform-react-jsx-development": "^7.10.4", - "@babel/plugin-transform-react-jsx-self": "^7.10.4", - "@babel/plugin-transform-react-jsx-source": "^7.10.4", - "@babel/plugin-transform-react-pure-annotations": "^7.10.4" - } - }, - "@babel/preset-typescript": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.9.0.tgz", - "integrity": "sha512-S4cueFnGrIbvYJgwsVFKdvOmpiL0XGw9MFW9D0vgRys5g36PBhZRL8NX8Gr2akz8XRtzq6HuDXPD/1nniagNUg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-transform-typescript": "^7.9.0" - } - }, - "@babel/runtime": { - "version": "7.11.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", - "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/runtime-corejs3": { - "version": "7.11.2", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.11.2.tgz", - "integrity": "sha512-qh5IR+8VgFz83VBa6OkaET6uN/mJOhHONuy3m1sgF0CV6mXdPSEBdA7e1eUbVvyNtANjMbg22JUv71BaDXLY6A==", - "requires": { - "core-js-pure": "^3.0.0", - "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.11.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz", - "integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.5", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.11.5", - "@babel/types": "^7.11.5", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "@babel/types": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", - "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - } - }, - "@csstools/convert-colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", - "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==" - }, - "@csstools/normalize.css": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-10.1.0.tgz", - "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==" - }, - "@hapi/address": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", - "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" - }, - "@hapi/bourne": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", - "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" - }, - "@hapi/hoek": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", - "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" - }, - "@hapi/joi": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", - "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", - "requires": { - "@hapi/address": "2.x.x", - "@hapi/bourne": "1.x.x", - "@hapi/hoek": "8.x.x", - "@hapi/topo": "3.x.x" - } - }, - "@hapi/topo": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", - "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", - "requires": { - "@hapi/hoek": "^8.3.0" - } - }, - "@jest/console": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", - "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", - "requires": { - "@jest/source-map": "^24.9.0", - "chalk": "^2.0.1", - "slash": "^2.0.0" - } - }, - "@jest/core": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz", - "integrity": "sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A==", - "requires": { - "@jest/console": "^24.7.1", - "@jest/reporters": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "graceful-fs": "^4.1.15", - "jest-changed-files": "^24.9.0", - "jest-config": "^24.9.0", - "jest-haste-map": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-regex-util": "^24.3.0", - "jest-resolve": "^24.9.0", - "jest-resolve-dependencies": "^24.9.0", - "jest-runner": "^24.9.0", - "jest-runtime": "^24.9.0", - "jest-snapshot": "^24.9.0", - "jest-util": "^24.9.0", - "jest-validate": "^24.9.0", - "jest-watcher": "^24.9.0", - "micromatch": "^3.1.10", - "p-each-series": "^1.0.0", - "realpath-native": "^1.1.0", - "rimraf": "^2.5.4", - "slash": "^2.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" - } - } - }, - "@jest/environment": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz", - "integrity": "sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==", - "requires": { - "@jest/fake-timers": "^24.9.0", - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "jest-mock": "^24.9.0" - } - }, - "@jest/fake-timers": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", - "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", - "requires": { - "@jest/types": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-mock": "^24.9.0" - } - }, - "@jest/reporters": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz", - "integrity": "sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw==", - "requires": { - "@jest/environment": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "glob": "^7.1.2", - "istanbul-lib-coverage": "^2.0.2", - "istanbul-lib-instrument": "^3.0.1", - "istanbul-lib-report": "^2.0.4", - "istanbul-lib-source-maps": "^3.0.1", - "istanbul-reports": "^2.2.6", - "jest-haste-map": "^24.9.0", - "jest-resolve": "^24.9.0", - "jest-runtime": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.6.0", - "node-notifier": "^5.4.2", - "slash": "^2.0.0", - "source-map": "^0.6.0", - "string-length": "^2.0.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==" - } - } - }, - "@jest/source-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", - "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.1.15", - "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==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "@jest/test-result": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", - "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", - "requires": { - "@jest/console": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/istanbul-lib-coverage": "^2.0.0" - } - }, - "@jest/test-sequencer": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz", - "integrity": "sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==", - "requires": { - "@jest/test-result": "^24.9.0", - "jest-haste-map": "^24.9.0", - "jest-runner": "^24.9.0", - "jest-runtime": "^24.9.0" - } - }, - "@jest/transform": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz", - "integrity": "sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==", - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^24.9.0", - "babel-plugin-istanbul": "^5.1.0", - "chalk": "^2.0.1", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.1.15", - "jest-haste-map": "^24.9.0", - "jest-regex-util": "^24.9.0", - "jest-util": "^24.9.0", - "micromatch": "^3.1.10", - "pirates": "^4.0.1", - "realpath-native": "^1.1.0", - "slash": "^2.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "2.4.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==" - } - } - }, - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" - } - }, - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" - }, - "@sheerun/mutationobserver-shim": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz", - "integrity": "sha512-DetpxZw1fzPD5xUBrIAoplLChO2VB8DlL5Gg+I1IR9b2wPqYIca2WSUxL5g1vLeR4MsQq1NeWriXAVffV+U1Fw==" - }, - "@svgr/babel-plugin-add-jsx-attribute": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz", - "integrity": "sha512-j7KnilGyZzYr/jhcrSYS3FGWMZVaqyCG0vzMCwzvei0coIkczuYMcniK07nI0aHJINciujjH11T72ICW5eL5Ig==" - }, - "@svgr/babel-plugin-remove-jsx-attribute": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-4.2.0.tgz", - "integrity": "sha512-3XHLtJ+HbRCH4n28S7y/yZoEQnRpl0tvTZQsHqvaeNXPra+6vE5tbRliH3ox1yZYPCxrlqaJT/Mg+75GpDKlvQ==" - }, - "@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-4.2.0.tgz", - "integrity": "sha512-yTr2iLdf6oEuUE9MsRdvt0NmdpMBAkgK8Bjhl6epb+eQWk6abBaX3d65UZ3E3FWaOwePyUgNyNCMVG61gGCQ7w==" - }, - "@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-4.2.0.tgz", - "integrity": "sha512-U9m870Kqm0ko8beHawRXLGLvSi/ZMrl89gJ5BNcT452fAjtF2p4uRzXkdzvGJJJYBgx7BmqlDjBN/eCp5AAX2w==" - }, - "@svgr/babel-plugin-svg-dynamic-title": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-4.3.3.tgz", - "integrity": "sha512-w3Be6xUNdwgParsvxkkeZb545VhXEwjGMwExMVBIdPQJeyMQHqm9Msnb2a1teHBqUYL66qtwfhNkbj1iarCG7w==" - }, - "@svgr/babel-plugin-svg-em-dimensions": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-4.2.0.tgz", - "integrity": "sha512-C0Uy+BHolCHGOZ8Dnr1zXy/KgpBOkEUYY9kI/HseHVPeMbluaX3CijJr7D4C5uR8zrc1T64nnq/k63ydQuGt4w==" - }, - "@svgr/babel-plugin-transform-react-native-svg": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-4.2.0.tgz", - "integrity": "sha512-7YvynOpZDpCOUoIVlaaOUU87J4Z6RdD6spYN4eUb5tfPoKGSF9OG2NuhgYnq4jSkAxcpMaXWPf1cePkzmqTPNw==" - }, - "@svgr/babel-plugin-transform-svg-component": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-4.2.0.tgz", - "integrity": "sha512-hYfYuZhQPCBVotABsXKSCfel2slf/yvJY8heTVX1PCTaq/IgASq1IyxPPKJ0chWREEKewIU/JMSsIGBtK1KKxw==" - }, - "@svgr/babel-preset": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-4.3.3.tgz", - "integrity": "sha512-6PG80tdz4eAlYUN3g5GZiUjg2FMcp+Wn6rtnz5WJG9ITGEF1pmFdzq02597Hn0OmnQuCVaBYQE1OVFAnwOl+0A==", - "requires": { - "@svgr/babel-plugin-add-jsx-attribute": "^4.2.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^4.2.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^4.2.0", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^4.2.0", - "@svgr/babel-plugin-svg-dynamic-title": "^4.3.3", - "@svgr/babel-plugin-svg-em-dimensions": "^4.2.0", - "@svgr/babel-plugin-transform-react-native-svg": "^4.2.0", - "@svgr/babel-plugin-transform-svg-component": "^4.2.0" - } - }, - "@svgr/core": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-4.3.3.tgz", - "integrity": "sha512-qNuGF1QON1626UCaZamWt5yedpgOytvLj5BQZe2j1k1B8DUG4OyugZyfEwBeXozCUwhLEpsrgPrE+eCu4fY17w==", - "requires": { - "@svgr/plugin-jsx": "^4.3.3", - "camelcase": "^5.3.1", - "cosmiconfig": "^5.2.1" - } - }, - "@svgr/hast-util-to-babel-ast": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.3.2.tgz", - "integrity": "sha512-JioXclZGhFIDL3ddn4Kiq8qEqYM2PyDKV0aYno8+IXTLuYt6TOgHUbUAAFvqtb0Xn37NwP0BTHglejFoYr8RZg==", - "requires": { - "@babel/types": "^7.4.4" - } - }, - "@svgr/plugin-jsx": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-4.3.3.tgz", - "integrity": "sha512-cLOCSpNWQnDB1/v+SUENHH7a0XY09bfuMKdq9+gYvtuwzC2rU4I0wKGFEp1i24holdQdwodCtDQdFtJiTCWc+w==", - "requires": { - "@babel/core": "^7.4.5", - "@svgr/babel-preset": "^4.3.3", - "@svgr/hast-util-to-babel-ast": "^4.3.2", - "svg-parser": "^2.0.0" - } - }, - "@svgr/plugin-svgo": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-4.3.1.tgz", - "integrity": "sha512-PrMtEDUWjX3Ea65JsVCwTIXuSqa3CG9px+DluF1/eo9mlDrgrtFE7NE/DjdhjJgSM9wenlVBzkzneSIUgfUI/w==", - "requires": { - "cosmiconfig": "^5.2.1", - "merge-deep": "^3.0.2", - "svgo": "^1.2.2" - } - }, - "@svgr/webpack": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-4.3.3.tgz", - "integrity": "sha512-bjnWolZ6KVsHhgyCoYRFmbd26p8XVbulCzSG53BDQqAr+JOAderYK7CuYrB3bDjHJuF6LJ7Wrr42+goLRV9qIg==", - "requires": { - "@babel/core": "^7.4.5", - "@babel/plugin-transform-react-constant-elements": "^7.0.0", - "@babel/preset-env": "^7.4.5", - "@babel/preset-react": "^7.0.0", - "@svgr/core": "^4.3.3", - "@svgr/plugin-jsx": "^4.3.3", - "@svgr/plugin-svgo": "^4.3.1", - "loader-utils": "^1.2.3" - } - }, - "@testing-library/dom": { - "version": "6.16.0", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-6.16.0.tgz", - "integrity": "sha512-lBD88ssxqEfz0wFL6MeUyyWZfV/2cjEZZV3YRpb2IoJRej/4f1jB0TzqIOznTpfR1r34CNesrubxwIlAQ8zgPA==", - "requires": { - "@babel/runtime": "^7.8.4", - "@sheerun/mutationobserver-shim": "^0.3.2", - "@types/testing-library__dom": "^6.12.1", - "aria-query": "^4.0.2", - "dom-accessibility-api": "^0.3.0", - "pretty-format": "^25.1.0", - "wait-for-expect": "^3.0.2" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/yargs": { - "version": "15.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", - "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "requires": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.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==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@testing-library/jest-dom": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-4.2.4.tgz", - "integrity": "sha512-j31Bn0rQo12fhCWOUWy9fl7wtqkp7In/YP2p5ZFyRuiiB9Qs3g+hS4gAmDWONbAHcRmVooNJ5eOHQDCOmUFXHg==", - "requires": { - "@babel/runtime": "^7.5.1", - "chalk": "^2.4.1", - "css": "^2.2.3", - "css.escape": "^1.5.1", - "jest-diff": "^24.0.0", - "jest-matcher-utils": "^24.0.0", - "lodash": "^4.17.11", - "pretty-format": "^24.0.0", - "redent": "^3.0.0" - } - }, - "@testing-library/react": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-9.5.0.tgz", - "integrity": "sha512-di1b+D0p+rfeboHO5W7gTVeZDIK5+maEgstrZbWZSSvxDyfDRkkyBE1AJR5Psd6doNldluXlCWqXriUfqu/9Qg==", - "requires": { - "@babel/runtime": "^7.8.4", - "@testing-library/dom": "^6.15.0", - "@types/testing-library__react": "^9.1.2" - } - }, - "@testing-library/user-event": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-7.2.1.tgz", - "integrity": "sha512-oZ0Ib5I4Z2pUEcoo95cT1cr6slco9WY7yiPpG+RGNkj8YcYgJnM7pXmYmorNOReh8MIGcKSqXyeGjxnr8YiZbA==" - }, - "@types/babel__core": { - "version": "7.1.9", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz", - "integrity": "sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw==", - "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.1", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz", - "integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==", - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz", - "integrity": "sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.14.tgz", - "integrity": "sha512-8w9szzKs14ZtBVuP6Wn7nMLRJ0D6dfB0VEBEyRgxrZ/Ln49aNMykrghM2FaNn4FJRzNppCSa0Rv9pBRM5Xc3wg==", - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" - }, - "@types/domhandler": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/domhandler/-/domhandler-2.4.1.tgz", - "integrity": "sha512-cfBw6q6tT5sa1gSPFSRKzF/xxYrrmeiut7E0TxNBObiLSBTuFEHibcfEe3waQPEDbqBsq+ql/TOniw65EyDFMA==" - }, - "@types/domutils": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@types/domutils/-/domutils-1.7.3.tgz", - "integrity": "sha512-EucnS75OnnEdypNt+UpARisSF8eJBq4no+aVOis3Bs5kyABDXm1hEDv6jJxcMJPjR+a2YCrEANaW+BMT2QVG2Q==", - "requires": { - "domhandler": "^2.4.0" - } - }, - "@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==" - }, - "@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@types/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-fCxmHS4ryCUCfV9+CJZY1UjkbR+6Al/EQdX5Jh03qBj9gdlPG5q+7uNoDgE/ZNXb3XNWSAQgqKIWnbRCbOyyWA==", - "requires": { - "@types/domhandler": "*", - "@types/domutils": "*", - "@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==" - }, - "@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==", - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "@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==" - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" - }, - "@types/node": { - "version": "14.6.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.6.4.tgz", - "integrity": "sha512-Wk7nG1JSaMfMpoMJDKUsWYugliB2Vy55pdjLpmLixeyMi7HizW2I/9QoxsPCkXl3dO+ZOVqPumKaDUv5zJu2uQ==" - }, - "@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==" - }, - "@types/prop-types": { - "version": "15.7.3", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", - "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" - }, - "@types/q": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", - "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" - }, - "@types/react": { - "version": "16.9.49", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.49.tgz", - "integrity": "sha512-DtLFjSj0OYAdVLBbyjhuV9CdGVHCkHn2R+xr3XkBvK2rS1Y1tkc14XSGjYgm5Fjjr90AxH9tiSzc1pCFMGO06g==", - "requires": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "@types/react-dom": { - "version": "16.9.8", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.8.tgz", - "integrity": "sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA==", - "requires": { - "@types/react": "*" - } - }, - "@types/stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==" - }, - "@types/testing-library__dom": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@types/testing-library__dom/-/testing-library__dom-6.14.0.tgz", - "integrity": "sha512-sMl7OSv0AvMOqn1UJ6j1unPMIHRXen0Ita1ujnMX912rrOcawe4f7wu0Zt9GIQhBhJvH2BaibqFgQ3lP+Pj2hA==", - "requires": { - "pretty-format": "^24.3.0" - } - }, - "@types/testing-library__react": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@types/testing-library__react/-/testing-library__react-9.1.3.tgz", - "integrity": "sha512-iCdNPKU3IsYwRK9JieSYAiX0+aYDXOGAmrC/3/M7AqqSDKnWWVv07X+Zk1uFSL7cMTUYzv4lQRfohucEocn5/w==", - "requires": { - "@types/react-dom": "*", - "@types/testing-library__dom": "*", - "pretty-format": "^25.1.0" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/yargs": { - "version": "15.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", - "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "requires": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.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==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@types/yargs": { - "version": "13.0.10", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.10.tgz", - "integrity": "sha512-MU10TSgzNABgdzKvQVW1nuuT+sgBMWeXNc3XOs5YXV5SDAK+PPja2eUuBNB9iqElu03xyEDqlnGw0jgl4nbqGQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", - "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==" - }, - "@typescript-eslint/eslint-plugin": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz", - "integrity": "sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==", - "requires": { - "@typescript-eslint/experimental-utils": "2.34.0", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/experimental-utils": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz", - "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==", - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.34.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, - "@typescript-eslint/parser": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.34.0.tgz", - "integrity": "sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA==", - "requires": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "2.34.0", - "@typescript-eslint/typescript-estree": "2.34.0", - "eslint-visitor-keys": "^1.1.0" - } - }, - "@typescript-eslint/typescript-estree": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", - "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", - "requires": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - }, - "dependencies": { - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" - } - } - }, - "@webassemblyjs/ast": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", - "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", - "requires": { - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", - "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==" - }, - "@webassemblyjs/helper-api-error": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", - "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==" - }, - "@webassemblyjs/helper-buffer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", - "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==" - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", - "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", - "requires": { - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", - "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==" - }, - "@webassemblyjs/helper-module-context": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", - "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "mamacro": "^0.0.3" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", - "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==" - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", - "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", - "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", - "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", - "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==" - }, - "@webassemblyjs/wasm-edit": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", - "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/helper-wasm-section": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-opt": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", - "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", - "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", - "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", - "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/floating-point-hex-parser": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-code-frame": "1.8.5", - "@webassemblyjs/helper-fsm": "1.8.5", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", - "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5", - "@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==" - }, - "@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==" - }, - "abab": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.4.tgz", - "integrity": "sha512-Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ==" - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", - "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==" - }, - "acorn-globals": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", - "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", - "requires": { - "acorn": "^6.0.1", - "acorn-walk": "^6.0.1" - }, - "dependencies": { - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==" - } - } - }, - "acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==" - }, - "acorn-walk": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", - "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==" - }, - "address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", - "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==" - }, - "adjust-sourcemap-loader": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-2.0.0.tgz", - "integrity": "sha512-4hFsTsn58+YjrU9qKzML2JSSDqKvN8mUGQ0nNIrfPi8hmIONT4L3uUaT6MKdMsZ9AjsU6D2xDkZxCkbQPxChrA==", - "requires": { - "assert": "1.4.1", - "camelcase": "5.0.0", - "loader-utils": "1.2.3", - "object-path": "0.11.4", - "regex-parser": "2.2.10" - }, - "dependencies": { - "camelcase": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==" - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "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==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.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==", - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.4", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", - "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", - "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==" - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" - }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==" - }, - "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==", - "requires": { - "type-fest": "^0.11.0" - }, - "dependencies": { - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" - } - } - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" - }, - "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": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "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=", - "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=" - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "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==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" - }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" - }, - "array-includes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", - "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "is-string": "^1.0.5" - } - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "array.prototype.flat": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", - "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "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==", - "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==" - } - } - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "requires": { - "util": "0.10.3" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "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=" - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "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==" - }, - "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==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "autoprefixer": { - "version": "9.8.6", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", - "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", - "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=" - }, - "aws4": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz", - "integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==" - }, - "axobject-query": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "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" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "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=" - } - } - }, - "babel-eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", - "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - } - }, - "babel-extract-comments": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz", - "integrity": "sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==", - "requires": { - "babylon": "^6.18.0" - } - }, - "babel-jest": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz", - "integrity": "sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==", - "requires": { - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/babel__core": "^7.1.0", - "babel-plugin-istanbul": "^5.1.0", - "babel-preset-jest": "^24.9.0", - "chalk": "^2.4.2", - "slash": "^2.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==", - "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": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } - } - }, - "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==", - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-istanbul": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz", - "integrity": "sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "find-up": "^3.0.0", - "istanbul-lib-instrument": "^3.3.0", - "test-exclude": "^5.2.3" - } - }, - "babel-plugin-jest-hoist": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz", - "integrity": "sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==", - "requires": { - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-plugin-macros": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", - "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", - "requires": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - } - }, - "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", - "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==", - "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" - } - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - }, - "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==" - } - } - }, - "babel-plugin-named-asset-import": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.6.tgz", - "integrity": "sha512-1aGDUfL1qOOIoqk9QKGIo2lANk+C7ko/fqH0uIyC71x3PEGz0uVP8ISgfEsFuG+FKmjHTvFK/nNM8dowpmUxLA==" - }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" - }, - "babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", - "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", - "requires": { - "babel-plugin-syntax-object-rest-spread": "^6.8.0", - "babel-runtime": "^6.26.0" - } - }, - "babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", - "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" - }, - "babel-preset-jest": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz", - "integrity": "sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==", - "requires": { - "@babel/plugin-syntax-object-rest-spread": "^7.0.0", - "babel-plugin-jest-hoist": "^24.9.0" - } - }, - "babel-preset-react-app": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-9.1.2.tgz", - "integrity": "sha512-k58RtQOKH21NyKtzptoAvtAODuAJJs3ZhqBMl456/GnXEQ/0La92pNmwgWoMn5pBTrsvk3YYXdY7zpY4e3UIxA==", - "requires": { - "@babel/core": "7.9.0", - "@babel/plugin-proposal-class-properties": "7.8.3", - "@babel/plugin-proposal-decorators": "7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "7.8.3", - "@babel/plugin-proposal-numeric-separator": "7.8.3", - "@babel/plugin-proposal-optional-chaining": "7.9.0", - "@babel/plugin-transform-flow-strip-types": "7.9.0", - "@babel/plugin-transform-react-display-name": "7.8.3", - "@babel/plugin-transform-runtime": "7.9.0", - "@babel/preset-env": "7.9.0", - "@babel/preset-react": "7.9.1", - "@babel/preset-typescript": "7.9.0", - "@babel/runtime": "7.9.0", - "babel-plugin-macros": "2.8.0", - "babel-plugin-transform-react-remove-prop-types": "0.4.24" - }, - "dependencies": { - "@babel/plugin-proposal-class-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz", - "integrity": "sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz", - "integrity": "sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz", - "integrity": "sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz", - "integrity": "sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/preset-env": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.0.tgz", - "integrity": "sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ==", - "requires": { - "@babel/compat-data": "^7.9.0", - "@babel/helper-compilation-targets": "^7.8.7", - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-proposal-async-generator-functions": "^7.8.3", - "@babel/plugin-proposal-dynamic-import": "^7.8.3", - "@babel/plugin-proposal-json-strings": "^7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-numeric-separator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.9.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.9.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.8.0", - "@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.8.3", - "@babel/plugin-transform-arrow-functions": "^7.8.3", - "@babel/plugin-transform-async-to-generator": "^7.8.3", - "@babel/plugin-transform-block-scoped-functions": "^7.8.3", - "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.9.0", - "@babel/plugin-transform-computed-properties": "^7.8.3", - "@babel/plugin-transform-destructuring": "^7.8.3", - "@babel/plugin-transform-dotall-regex": "^7.8.3", - "@babel/plugin-transform-duplicate-keys": "^7.8.3", - "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.9.0", - "@babel/plugin-transform-function-name": "^7.8.3", - "@babel/plugin-transform-literals": "^7.8.3", - "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.9.0", - "@babel/plugin-transform-modules-commonjs": "^7.9.0", - "@babel/plugin-transform-modules-systemjs": "^7.9.0", - "@babel/plugin-transform-modules-umd": "^7.9.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", - "@babel/plugin-transform-new-target": "^7.8.3", - "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.8.7", - "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.7", - "@babel/plugin-transform-reserved-words": "^7.8.3", - "@babel/plugin-transform-shorthand-properties": "^7.8.3", - "@babel/plugin-transform-spread": "^7.8.3", - "@babel/plugin-transform-sticky-regex": "^7.8.3", - "@babel/plugin-transform-template-literals": "^7.8.3", - "@babel/plugin-transform-typeof-symbol": "^7.8.4", - "@babel/plugin-transform-unicode-regex": "^7.8.3", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.9.0", - "browserslist": "^4.9.1", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" - } - }, - "@babel/preset-react": { - "version": "7.9.1", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.9.1.tgz", - "integrity": "sha512-aJBYF23MPj0RNdp/4bHnAP0NVqqZRr9kl0NAOP4nJCex6OYVio59+dnQzsAWFuogdLyeaKA1hmfUIVZkY5J+TQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-transform-react-display-name": "^7.8.3", - "@babel/plugin-transform-react-jsx": "^7.9.1", - "@babel/plugin-transform-react-jsx-development": "^7.9.0", - "@babel/plugin-transform-react-jsx-self": "^7.9.0", - "@babel/plugin-transform-react-jsx-source": "^7.9.0" - } - }, - "@babel/runtime": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.0.tgz", - "integrity": "sha512-cTIudHnzuWLS56ik4DnRnqqNf8MkdUzV4iFFI1h7Jo9xvrpQROYaAnaSd2mHLQAzzZAPfATynX5ord6YlNYNMA==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - } - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" - }, - "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==", - "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=", - "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==", - "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==", - "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==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "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==" - } - } - }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "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==" - }, - "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==" - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==" - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "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==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "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=" - }, - "bootstrap": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.2.tgz", - "integrity": "sha512-vlGn0bcySYl/iV+BGA544JkkZP5LB3jsmkeKLFQakCOwCM3AOk7VkldBz4jrzSe+Z0Ezn99NVXa1o45cQY4R6A==" - }, - "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": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "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=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "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==" - }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", - "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" - } - } - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "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==", - "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==", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.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==" - } - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "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": { - "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==" - } - } - }, - "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==", - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.1.tgz", - "integrity": "sha512-zyBTIHydW37pnb63c7fHFXUG6EcqWOqoMdDx6cdyaDFriZ20EoVxcE95S54N+heRqY8m8IUgB5zYta/gCwSaaA==", - "requires": { - "caniuse-lite": "^1.0.30001124", - "electron-to-chromium": "^1.3.562", - "escalade": "^3.0.2", - "node-releases": "^1.1.60" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "requires": { - "node-int64": "^0.4.0" - } - }, - "buble": { - "version": "0.19.6", - "resolved": "https://registry.npmjs.org/buble/-/buble-0.19.6.tgz", - "integrity": "sha512-9kViM6nJA1Q548Jrd06x0geh+BG2ru2+RMDkIHHgJY/8AcyCs34lTHwra9BX7YdPrZXd5aarkpr/SY8bmPgPdg==", - "requires": { - "chalk": "^2.4.1", - "magic-string": "^0.25.1", - "minimist": "^1.2.0", - "os-homedir": "^1.0.1", - "regexpu-core": "^4.2.0", - "vlq": "^1.0.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==", - "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==" - }, - "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==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "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=" - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, - "cacache": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", - "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==", - "requires": { - "chownr": "^1.1.2", - "figgy-pudding": "^3.5.1", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.2", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "minipass": "^3.0.0", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "p-map": "^3.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^2.7.1", - "ssri": "^7.0.0", - "unique-filename": "^1.1.1" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "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-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "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=", - "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=" - }, - "camel-case": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz", - "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==", - "requires": { - "pascal-case": "^3.1.1", - "tslib": "^1.10.0" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "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==", - "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.30001125", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001125.tgz", - "integrity": "sha512-9f+r7BW8Qli917mU3j0fUaTweT3f3vnX/Lcs+1C73V+RADmFme+Ih0Br8vONQi3X0lseOe6ZHfsZLCA8MSjxUA==" - }, - "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==", - "requires": { - "rsvp": "^4.8.4" - } - }, - "case-sensitive-paths-webpack-plugin": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz", - "integrity": "sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ==" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "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" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - }, - "chokidar": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz", - "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==", - "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.4.0" - }, - "dependencies": { - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "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==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "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==", - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "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==", - "requires": { - "tslib": "^1.9.0" - } - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "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==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "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==", - "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=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" - }, - "clean-css": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", - "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", - "requires": { - "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==" - } - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "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==" - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "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=" - }, - "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==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, - "clone-deep": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", - "integrity": "sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=", - "requires": { - "for-own": "^0.1.3", - "is-plain-object": "^2.0.1", - "kind-of": "^3.0.2", - "lazy-cache": "^1.0.3", - "shallow-clone": "^0.1.2" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", - "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" - } - }, - "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.3", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", - "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "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==" - }, - "common-tags": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", - "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "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==" - }, - "component-props": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/component-props/-/component-props-1.1.1.tgz", - "integrity": "sha1-+bffm5kntubZfJvScqqGdnDzSUQ=" - }, - "component-xor": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/component-xor/-/component-xor-0.0.4.tgz", - "integrity": "sha1-xV2DzMG5TNUImk6T+niRxyY+Wao=" - }, - "compose-function": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", - "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", - "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==", - "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==", - "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==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "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==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "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==", - "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" - } - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "confusing-browser-globals": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz", - "integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==" - }, - "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==" - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "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==" - }, - "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==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "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" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "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==" - }, - "core-js-compat": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", - "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", - "requires": { - "browserslist": "^4.8.5", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" - } - } - }, - "core-js-pure": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz", - "integrity": "sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==" - }, - "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=" - }, - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "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==", - "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==" - } - } - }, - "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==", - "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==", - "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" - } - }, - "create-react-context": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.3.0.tgz", - "integrity": "sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw==", - "requires": { - "gud": "^1.0.0", - "warning": "^4.0.3" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "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==" - } - } - }, - "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==", - "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==", - "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==" - } - } - }, - "css-blank-pseudo": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", - "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==", - "requires": { - "postcss": "^7.0.5" - } - }, - "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=" - }, - "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==", - "requires": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - } - }, - "css-has-pseudo": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", - "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==", - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^5.0.0-rc.4" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "css-loader": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.4.2.tgz", - "integrity": "sha512-jYq4zdZT0oS0Iykt+fqnzVLRIeiPWhka+7BqPn+oSIpWJAHak5tmB/WZrJ2a21JhCeFyNnnlroSl8c+MtVndzA==", - "requires": { - "camelcase": "^5.3.1", - "cssesc": "^3.0.0", - "icss-utils": "^4.1.1", - "loader-utils": "^1.2.3", - "normalize-path": "^3.0.0", - "postcss": "^7.0.23", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^3.0.2", - "postcss-modules-scope": "^2.1.1", - "postcss-modules-values": "^3.0.0", - "postcss-value-parser": "^4.0.2", - "schema-utils": "^2.6.0" - }, - "dependencies": { - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - } - } - }, - "css-prefers-color-scheme": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz", - "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==", - "requires": { - "postcss": "^7.0.5" - } - }, - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "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==" - }, - "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==", - "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==" - } - } - }, - "css-what": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz", - "integrity": "sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg==" - }, - "css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" - }, - "cssdb": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", - "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==" - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" - }, - "cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", - "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.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", - "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", - "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.2", - "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=" - }, - "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=" - }, - "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==", - "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==" - }, - "csso": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", - "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", - "requires": { - "css-tree": "1.0.0-alpha.39" - }, - "dependencies": { - "css-tree": { - "version": "1.0.0-alpha.39", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz", - "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==", - "requires": { - "mdn-data": "2.0.6", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz", - "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" - }, - "cssstyle": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", - "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", - "requires": { - "cssom": "0.3.x" - } - }, - "csstype": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.3.tgz", - "integrity": "sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag==" - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "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==" - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-urls": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", - "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", - "requires": { - "abab": "^2.0.0", - "whatwg-mimetype": "^2.2.0", - "whatwg-url": "^7.0.0" - }, - "dependencies": { - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - } - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "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=" - }, - "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==", - "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=" - }, - "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - } - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "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==" - } - } - }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "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": { - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "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=" - } - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "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=" - }, - "detect-newline": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=" - }, - "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==" - }, - "detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "diff-sequences": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz", - "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==" - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "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==" - } - } - }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", - "requires": { - "arrify": "^1.0.1", - "path-type": "^3.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=" - }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", - "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=", - "requires": { - "buffer-indexof": "^1.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-accessibility-api": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.3.0.tgz", - "integrity": "sha512-PzwHEmsRP3IGY4gv/Ug+rMeaTIyTJvadCb+ujYXYeIylbHJezIyNToe8KfEgHTCEYyC+/bUghYOGg8yMGlZ6vA==" - }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "requires": { - "utila": "~0.4" - } - }, - "dom-helpers": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", - "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", - "requires": { - "@babel/runtime": "^7.1.2" - } - }, - "dom-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dom-iterator/-/dom-iterator-1.0.0.tgz", - "integrity": "sha512-7dsMOQI07EMU98gQM8NSB3GsAiIeBYIPKpnxR3c9xOvdvBjChAcOM0iJ222I3p5xyiZO9e5oggkNaCusuTdYig==", - "requires": { - "component-props": "1.1.1", - "component-xor": "0.0.4" - } - }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", - "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==" - } - } - }, - "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==" - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - }, - "domexception": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", - "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", - "requires": { - "webidl-conversions": "^4.0.2" - } - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dot-case": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz", - "integrity": "sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==", - "requires": { - "no-case": "^3.0.3", - "tslib": "^1.10.0" - } - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "requires": { - "is-obj": "^2.0.0" - } - }, - "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" - }, - "dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" - }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - }, - "dependencies": { - "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==", - "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" - } - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "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=" - }, - "electron-to-chromium": { - "version": "1.3.564", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.564.tgz", - "integrity": "sha512-fNaYN3EtKQWLQsrKXui8mzcryJXuA0LbCLoizeX6oayG2emBaS5MauKjCPAvc29NEY4FpLHIUWiP+Y0Bfrs5dg==" - }, - "elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.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==" - } - } - }, - "email-addresses": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", - "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", - "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==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "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==", - "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==", - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", - "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", - "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==", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "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==", - "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" - } - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "entities": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", - "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==" - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "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==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^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==", - "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==", - "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=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "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==", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "escalade": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz", - "integrity": "sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "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==", - "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==", - "optional": true - } - } - }, - "eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", - "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "requires": { - "type-fest": "^0.8.1" - } - }, - "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==" - }, - "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==" - } - } - }, - "eslint-config-react-app": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz", - "integrity": "sha512-pGIZ8t0mFLcV+6ZirRgYK6RVqUIKRIi9MmgzUEmrIknsn3AdO0I32asO86dJgloHq+9ZPl8UIg8mYrvgP5u2wQ==", - "requires": { - "confusing-browser-globals": "^1.0.9" - } - }, - "eslint-import-resolver-node": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", - "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", - "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "eslint-loader": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-3.0.3.tgz", - "integrity": "sha512-+YRqB95PnNvxNp1HEjQmvf9KNvCin5HXYYseOXVC2U0KEcw4IkQ2IQEBG46j7+gW39bMzeu0GsUhVbBY3Votpw==", - "requires": { - "fs-extra": "^8.1.0", - "loader-fs-cache": "^1.0.2", - "loader-utils": "^1.2.3", - "object-hash": "^2.0.1", - "schema-utils": "^2.6.1" - } - }, - "eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", - "requires": { - "debug": "^2.6.9", - "pkg-dir": "^2.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "requires": { - "find-up": "^2.1.0" - } - } - } - }, - "eslint-plugin-flowtype": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.6.0.tgz", - "integrity": "sha512-W5hLjpFfZyZsXfo5anlu7HM970JBDqbEshAJUkeczP6BFCIfJXuiIBQXyberLRtOStT0OGPF8efeTbxlHk4LpQ==", - "requires": { - "lodash": "^4.17.15" - } - }, - "eslint-plugin-import": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz", - "integrity": "sha512-qQHgFOTjguR+LnYRoToeZWT62XM55MBVXObHM6SKFd1VzDcX/vqT1kAz8ssqigh5eMj8qXcRoXXGZpPP6RfdCw==", - "requires": { - "array-includes": "^3.0.3", - "array.prototype.flat": "^1.2.1", - "contains-path": "^0.1.0", - "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.2", - "eslint-module-utils": "^2.4.1", - "has": "^1.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.0", - "read-pkg-up": "^2.0.0", - "resolve": "^1.12.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - } - } - }, - "eslint-plugin-jsx-a11y": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz", - "integrity": "sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==", - "requires": { - "@babel/runtime": "^7.4.5", - "aria-query": "^3.0.0", - "array-includes": "^3.0.3", - "ast-types-flow": "^0.0.7", - "axobject-query": "^2.0.2", - "damerau-levenshtein": "^1.0.4", - "emoji-regex": "^7.0.2", - "has": "^1.0.3", - "jsx-ast-utils": "^2.2.1" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - } - } - }, - "eslint-plugin-react": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz", - "integrity": "sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ==", - "requires": { - "array-includes": "^3.1.1", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.2.3", - "object.entries": "^1.1.1", - "object.fromentries": "^2.0.2", - "object.values": "^1.1.1", - "prop-types": "^15.7.2", - "resolve": "^1.15.1", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.2", - "xregexp": "^4.3.0" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "requires": { - "esutils": "^2.0.2" - } - }, - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "requires": { - "path-parse": "^1.0.6" - } - } - } - }, - "eslint-plugin-react-hooks": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz", - "integrity": "sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA==" - }, - "eslint-scope": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", - "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" - }, - "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", - "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "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==" - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==" - }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", - "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==", - "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==" - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "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=" - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "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==", - "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=", - "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=", - "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=" - } - } - }, - "expect": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz", - "integrity": "sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==", - "requires": { - "@jest/types": "^24.9.0", - "ansi-styles": "^3.2.0", - "jest-get-type": "^24.9.0", - "jest-matcher-utils": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-regex-util": "^24.9.0" - } - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "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=" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - } - } - }, - "ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "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==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "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==", - "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==", - "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==", - "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=", - "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=", - "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==", - "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==", - "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==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "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==" - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "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==" - }, - "fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", - "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - }, - "dependencies": { - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "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=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - } - } - }, - "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==" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "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==", - "requires": { - "bser": "2.1.1" - } - }, - "fbjs": { - "version": "0.8.17", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", - "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", - "requires": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - }, - "dependencies": { - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "requires": { - "asap": "~2.0.3" - } - } - } - }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "requires": { - "flat-cache": "^2.0.1" - } - }, - "file-loader": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz", - "integrity": "sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA==", - "requires": { - "loader-utils": "^1.2.3", - "schema-utils": "^2.5.0" - } - }, - "filename-reserved-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz", - "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=", - "dev": true - }, - "filenamify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz", - "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=", - "dev": true, - "requires": { - "filename-reserved-regex": "^1.0.0", - "strip-outer": "^1.0.0", - "trim-repeated": "^1.0.0" - } - }, - "filenamify-url": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/filenamify-url/-/filenamify-url-1.0.0.tgz", - "integrity": "sha1-syvYExnvWGO3MHi+1Q9GpPeXX1A=", - "dev": true, - "requires": { - "filenamify": "^1.0.0", - "humanize-url": "^1.0.0" - } - }, - "filesize": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.0.1.tgz", - "integrity": "sha512-u4AYWPgbI5GBhs6id1KdImZWn5yfyFrrQ8OWZdN7ZMfA8Bf4HcO0BGo9bmUIEV8yrp8I1xVfJ/dn90GtFNNJcg==" - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "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=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "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==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "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==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - } - }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==" - }, - "flatten": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", - "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==" - }, - "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==", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - }, - "dependencies": { - "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==", - "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" - } - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "follow-redirects": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", - "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==" - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "requires": { - "for-in": "^1.0.1" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "fork-ts-checker-webpack-plugin": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz", - "integrity": "sha512-DuVkPNrM12jR41KM2e+N+styka0EgLkTnXmNcXdgOM37vtGeY+oCBK/Jx0hzSeEU6memFCtWb4htrHPMDfwwUQ==", - "requires": { - "babel-code-frame": "^6.22.0", - "chalk": "^2.4.1", - "chokidar": "^3.3.0", - "micromatch": "^3.1.10", - "minimatch": "^3.0.4", - "semver": "^5.6.0", - "tapable": "^1.0.0", - "worker-rpc": "^0.1.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "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==", - "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=" - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "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=" - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "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==", - "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" - } - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "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==", - "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=", - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - }, - "dependencies": { - "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==", - "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" - } - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "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.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", - "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - }, - "gensync": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", - "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==" - }, - "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-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "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=" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "gh-pages": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.1.0.tgz", - "integrity": "sha512-3b1rly9kuf3/dXsT8+ZxP0UhNLOo1CItj+3e31yUVcaph/yDsJ9RzD7JOw5o5zpBTJVQLlJAASNkUfepi9fe2w==", - "dev": true, - "requires": { - "async": "^2.6.1", - "commander": "^2.18.0", - "email-addresses": "^3.0.1", - "filenamify-url": "^1.0.0", - "find-cache-dir": "^3.3.1", - "fs-extra": "^8.1.0", - "globby": "^6.1.0" - }, - "dependencies": { - "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" - } - }, - "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": "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" - } - }, - "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 - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "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" - } - } - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "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==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "requires": { - "global-prefix": "^3.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "dependencies": { - "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==" - } - } - }, - "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": "8.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", - "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", - "requires": { - "array-union": "^1.0.1", - "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - }, - "dependencies": { - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - } - } - }, - "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==" - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" - }, - "gud": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", - "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==" - }, - "gzip-size": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", - "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", - "requires": { - "duplexer": "^0.1.1", - "pify": "^4.0.1" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } - } - }, - "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==" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "harmony-reflect": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.1.tgz", - "integrity": "sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA==" - }, - "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=", - "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=" - } - } - }, - "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.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "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=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "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==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "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==" - } - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - }, - "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==" - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - }, - "dependencies": { - "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==", - "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" - } - }, - "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==", - "requires": { - "safe-buffer": "~5.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=" - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=" - }, - "html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==" - }, - "html-dom-parser": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-0.3.0.tgz", - "integrity": "sha512-WDEYpO5gHGKuJbf0rwndGq7yUHJ4xboNj9l9mRGw5RsKFc3jfRozCsGAMu69zXxt4Ol8UkbqubKxu8ys0BLKtA==", - "requires": { - "@types/domhandler": "2.4.1", - "domhandler": "2.4.2", - "htmlparser2": "3.10.1" - } - }, - "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", - "requires": { - "whatwg-encoding": "^1.0.1" - } - }, - "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==" - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" - }, - "html-minifier-terser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", - "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", - "requires": { - "camel-case": "^4.1.1", - "clean-css": "^4.2.3", - "commander": "^4.1.1", - "he": "^1.2.0", - "param-case": "^3.0.3", - "relateurl": "^0.2.7", - "terser": "^4.6.3" - }, - "dependencies": { - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" - } - } - }, - "html-react-parser": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-0.13.0.tgz", - "integrity": "sha512-hU94hE2p9xhMM61EOoiY3Kr+DfzH/uY7hGeVXQpGFRjgbYRUeyuSKORDNMIaY8IAcuHQ6Ov9pJ3x94Wvso/OmQ==", - "requires": { - "@types/htmlparser2": "3.10.1", - "html-dom-parser": "0.3.0", - "react-property": "1.0.1", - "style-to-object": "0.3.0" - } - }, - "html-webpack-plugin": { - "version": "4.0.0-beta.11", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.11.tgz", - "integrity": "sha512-4Xzepf0qWxf8CGg7/WQM5qBB2Lc/NFI7MhU59eUDTkuQp3skZczH4UA1d6oQyDEIoMDgERVhRyTdtUPZ5s5HBg==", - "requires": { - "html-minifier-terser": "^5.0.1", - "loader-utils": "^1.2.3", - "lodash": "^4.17.15", - "pretty-error": "^2.1.1", - "tapable": "^1.1.3", - "util.promisify": "1.0.0" - }, - "dependencies": { - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - } - } - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - } - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" - }, - "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==", - "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=" - } - } - }, - "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==", - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "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==", - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "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=" - }, - "humanize-url": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/humanize-url/-/humanize-url-1.0.1.tgz", - "integrity": "sha1-9KuZ4NKIF0yk4eUEB8VfuuRk7/8=", - "dev": true, - "requires": { - "normalize-url": "^1.0.0", - "strip-url-auth": "^1.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==", - "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==", - "requires": { - "postcss": "^7.0.14" - } - }, - "identity-obj-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", - "requires": { - "harmony-reflect": "^1.4.6" - } - }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" - }, - "immer": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz", - "integrity": "sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg==" - }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "requires": { - "import-from": "^2.1.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "requires": { - "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==", - "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=" - }, - "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==" - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" - }, - "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==" - }, - "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.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" - }, - "inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" - }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "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.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "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==", - "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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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" - } - }, - "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==", - "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==", - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - } - }, - "internal-slot": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz", - "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==", - "requires": { - "es-abstract": "^1.17.0-next.1", - "has": "^1.0.3", - "side-channel": "^1.0.2" - } - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" - }, - "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==" - }, - "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=" - }, - "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=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "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==", - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-callable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", - "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "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=", - "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-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "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==" - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "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==" - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" - }, - "is-docker": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", - "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==" - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "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==" - }, - "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==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negative-zero": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", - "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" - }, - "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==" - }, - "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==", - "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==", - "requires": { - "path-is-inside": "^1.0.2" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, - "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==", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" - }, - "is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" - }, - "is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", - "requires": { - "html-comment-regex": "^1.1.0" - } - }, - "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==", - "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=" - }, - "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==" - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==" - }, - "istanbul-lib-instrument": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", - "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", - "requires": { - "@babel/generator": "^7.4.0", - "@babel/parser": "^7.4.3", - "@babel/template": "^7.4.0", - "@babel/traverse": "^7.4.3", - "@babel/types": "^7.4.0", - "istanbul-lib-coverage": "^2.0.5", - "semver": "^6.0.0" - } - }, - "istanbul-lib-report": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", - "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", - "requires": { - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "supports-color": "^6.1.0" - }, - "dependencies": { - "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==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", - "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", - "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==" - } - } - }, - "istanbul-reports": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", - "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", - "requires": { - "html-escaper": "^2.0.0" - } - }, - "jest": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz", - "integrity": "sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==", - "requires": { - "import-local": "^2.0.0", - "jest-cli": "^24.9.0" - }, - "dependencies": { - "jest-cli": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz", - "integrity": "sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==", - "requires": { - "@jest/core": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "import-local": "^2.0.0", - "is-ci": "^2.0.0", - "jest-config": "^24.9.0", - "jest-util": "^24.9.0", - "jest-validate": "^24.9.0", - "prompts": "^2.0.1", - "realpath-native": "^1.1.0", - "yargs": "^13.3.0" - } - } - } - }, - "jest-changed-files": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz", - "integrity": "sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==", - "requires": { - "@jest/types": "^24.9.0", - "execa": "^1.0.0", - "throat": "^4.0.0" - } - }, - "jest-config": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz", - "integrity": "sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==", - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^24.9.0", - "@jest/types": "^24.9.0", - "babel-jest": "^24.9.0", - "chalk": "^2.0.1", - "glob": "^7.1.1", - "jest-environment-jsdom": "^24.9.0", - "jest-environment-node": "^24.9.0", - "jest-get-type": "^24.9.0", - "jest-jasmine2": "^24.9.0", - "jest-regex-util": "^24.3.0", - "jest-resolve": "^24.9.0", - "jest-util": "^24.9.0", - "jest-validate": "^24.9.0", - "micromatch": "^3.1.10", - "pretty-format": "^24.9.0", - "realpath-native": "^1.1.0" - } - }, - "jest-diff": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz", - "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==", - "requires": { - "chalk": "^2.0.1", - "diff-sequences": "^24.9.0", - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - } - }, - "jest-docblock": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz", - "integrity": "sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA==", - "requires": { - "detect-newline": "^2.1.0" - } - }, - "jest-each": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz", - "integrity": "sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==", - "requires": { - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "jest-get-type": "^24.9.0", - "jest-util": "^24.9.0", - "pretty-format": "^24.9.0" - } - }, - "jest-environment-jsdom": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz", - "integrity": "sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA==", - "requires": { - "@jest/environment": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/types": "^24.9.0", - "jest-mock": "^24.9.0", - "jest-util": "^24.9.0", - "jsdom": "^11.5.1" - } - }, - "jest-environment-jsdom-fourteen": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom-fourteen/-/jest-environment-jsdom-fourteen-1.0.1.tgz", - "integrity": "sha512-DojMX1sY+at5Ep+O9yME34CdidZnO3/zfPh8UW+918C5fIZET5vCjfkegixmsi7AtdYfkr4bPlIzmWnlvQkP7Q==", - "requires": { - "@jest/environment": "^24.3.0", - "@jest/fake-timers": "^24.3.0", - "@jest/types": "^24.3.0", - "jest-mock": "^24.0.0", - "jest-util": "^24.0.0", - "jsdom": "^14.1.0" - }, - "dependencies": { - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==" - }, - "jsdom": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-14.1.0.tgz", - "integrity": "sha512-O901mfJSuTdwU2w3Sn+74T+RnDVP+FuV5fH8tcPWyqrseRAb0s5xOtPgCFiPOtLcyK7CLIJwPyD83ZqQWvA5ng==", - "requires": { - "abab": "^2.0.0", - "acorn": "^6.0.4", - "acorn-globals": "^4.3.0", - "array-equal": "^1.0.0", - "cssom": "^0.3.4", - "cssstyle": "^1.1.1", - "data-urls": "^1.1.0", - "domexception": "^1.0.1", - "escodegen": "^1.11.0", - "html-encoding-sniffer": "^1.0.2", - "nwsapi": "^2.1.3", - "parse5": "5.1.0", - "pn": "^1.1.0", - "request": "^2.88.0", - "request-promise-native": "^1.0.5", - "saxes": "^3.1.9", - "symbol-tree": "^3.2.2", - "tough-cookie": "^2.5.0", - "w3c-hr-time": "^1.0.1", - "w3c-xmlserializer": "^1.1.2", - "webidl-conversions": "^4.0.2", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^7.0.0", - "ws": "^6.1.2", - "xml-name-validator": "^3.0.0" - } - }, - "parse5": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", - "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==" - }, - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "requires": { - "async-limiter": "~1.0.0" - } - } - } - }, - "jest-environment-node": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz", - "integrity": "sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==", - "requires": { - "@jest/environment": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/types": "^24.9.0", - "jest-mock": "^24.9.0", - "jest-util": "^24.9.0" - } - }, - "jest-get-type": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", - "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==" - }, - "jest-haste-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz", - "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==", - "requires": { - "@jest/types": "^24.9.0", - "anymatch": "^2.0.0", - "fb-watchman": "^2.0.0", - "fsevents": "^1.2.7", - "graceful-fs": "^4.1.15", - "invariant": "^2.2.4", - "jest-serializer": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.9.0", - "micromatch": "^3.1.10", - "sane": "^4.0.3", - "walker": "^1.0.7" - }, - "dependencies": { - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true - } - } - }, - "jest-jasmine2": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz", - "integrity": "sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==", - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "co": "^4.6.0", - "expect": "^24.9.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^24.9.0", - "jest-matcher-utils": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-runtime": "^24.9.0", - "jest-snapshot": "^24.9.0", - "jest-util": "^24.9.0", - "pretty-format": "^24.9.0", - "throat": "^4.0.0" - } - }, - "jest-leak-detector": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz", - "integrity": "sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==", - "requires": { - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - } - }, - "jest-matcher-utils": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz", - "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==", - "requires": { - "chalk": "^2.0.1", - "jest-diff": "^24.9.0", - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - } - }, - "jest-message-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", - "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^2.0.1", - "micromatch": "^3.1.10", - "slash": "^2.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-mock": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", - "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", - "requires": { - "@jest/types": "^24.9.0" - } - }, - "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==" - }, - "jest-regex-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz", - "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==" - }, - "jest-resolve": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz", - "integrity": "sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==", - "requires": { - "@jest/types": "^24.9.0", - "browser-resolve": "^1.11.3", - "chalk": "^2.0.1", - "jest-pnp-resolver": "^1.2.1", - "realpath-native": "^1.1.0" - } - }, - "jest-resolve-dependencies": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz", - "integrity": "sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==", - "requires": { - "@jest/types": "^24.9.0", - "jest-regex-util": "^24.3.0", - "jest-snapshot": "^24.9.0" - } - }, - "jest-runner": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz", - "integrity": "sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==", - "requires": { - "@jest/console": "^24.7.1", - "@jest/environment": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "chalk": "^2.4.2", - "exit": "^0.1.2", - "graceful-fs": "^4.1.15", - "jest-config": "^24.9.0", - "jest-docblock": "^24.3.0", - "jest-haste-map": "^24.9.0", - "jest-jasmine2": "^24.9.0", - "jest-leak-detector": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-resolve": "^24.9.0", - "jest-runtime": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.6.0", - "source-map-support": "^0.5.6", - "throat": "^4.0.0" - } - }, - "jest-runtime": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz", - "integrity": "sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==", - "requires": { - "@jest/console": "^24.7.1", - "@jest/environment": "^24.9.0", - "@jest/source-map": "^24.3.0", - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/yargs": "^13.0.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.1.15", - "jest-config": "^24.9.0", - "jest-haste-map": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-mock": "^24.9.0", - "jest-regex-util": "^24.3.0", - "jest-resolve": "^24.9.0", - "jest-snapshot": "^24.9.0", - "jest-util": "^24.9.0", - "jest-validate": "^24.9.0", - "realpath-native": "^1.1.0", - "slash": "^2.0.0", - "strip-bom": "^3.0.0", - "yargs": "^13.3.0" - } - }, - "jest-serializer": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", - "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==" - }, - "jest-snapshot": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz", - "integrity": "sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==", - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "expect": "^24.9.0", - "jest-diff": "^24.9.0", - "jest-get-type": "^24.9.0", - "jest-matcher-utils": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-resolve": "^24.9.0", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^24.9.0", - "semver": "^6.2.0" - } - }, - "jest-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", - "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", - "requires": { - "@jest/console": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/source-map": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "callsites": "^3.0.0", - "chalk": "^2.0.1", - "graceful-fs": "^4.1.15", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1", - "slash": "^2.0.0", - "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==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "jest-validate": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", - "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", - "requires": { - "@jest/types": "^24.9.0", - "camelcase": "^5.3.1", - "chalk": "^2.0.1", - "jest-get-type": "^24.9.0", - "leven": "^3.1.0", - "pretty-format": "^24.9.0" - } - }, - "jest-watch-typeahead": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-0.4.2.tgz", - "integrity": "sha512-f7VpLebTdaXs81rg/oj4Vg/ObZy2QtGzAmGLNsqUS5G5KtSN68tFcIsbvNODfNyQxU78g7D8x77o3bgfBTR+2Q==", - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^2.4.1", - "jest-regex-util": "^24.9.0", - "jest-watcher": "^24.3.0", - "slash": "^3.0.0", - "string-length": "^3.1.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "string-length": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-3.1.0.tgz", - "integrity": "sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==", - "requires": { - "astral-regex": "^1.0.0", - "strip-ansi": "^5.2.0" - } - } - } - }, - "jest-watcher": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz", - "integrity": "sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==", - "requires": { - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/yargs": "^13.0.0", - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.1", - "jest-util": "^24.9.0", - "string-length": "^2.0.0" - }, - "dependencies": { - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" - } - } - }, - "jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - }, - "dependencies": { - "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==", - "requires": { - "has-flag": "^3.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.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", - "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=" - }, - "jsdom": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", - "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", - "requires": { - "abab": "^2.0.0", - "acorn": "^5.5.3", - "acorn-globals": "^4.1.0", - "array-equal": "^1.0.0", - "cssom": ">= 0.3.2 < 0.4.0", - "cssstyle": "^1.0.0", - "data-urls": "^1.0.0", - "domexception": "^1.0.1", - "escodegen": "^1.9.1", - "html-encoding-sniffer": "^1.0.2", - "left-pad": "^1.3.0", - "nwsapi": "^2.0.7", - "parse5": "4.0.0", - "pn": "^1.1.0", - "request": "^2.87.0", - "request-promise-native": "^1.0.5", - "sax": "^1.2.4", - "symbol-tree": "^3.2.2", - "tough-cookie": "^2.3.4", - "w3c-hr-time": "^1.0.1", - "webidl-conversions": "^4.0.2", - "whatwg-encoding": "^1.0.3", - "whatwg-mimetype": "^2.1.0", - "whatwg-url": "^6.4.1", - "ws": "^5.2.0", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "acorn": { - "version": "5.7.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", - "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==" - } - } - }, - "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==" - }, - "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==" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "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==" - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" - }, - "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=" - }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==" - }, - "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" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jsx-ast-utils": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz", - "integrity": "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==", - "requires": { - "array-includes": "^3.1.1", - "object.assign": "^4.1.0" - } - }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==" - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - }, - "last-call-webpack-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", - "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", - "requires": { - "lodash": "^4.17.5", - "webpack-sources": "^1.1.0" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" - }, - "left-pad": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", - "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==" - }, - "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==" - }, - "levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", - "requires": { - "leven": "^3.1.0" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "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=" - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "loader-fs-cache": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz", - "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==", - "requires": { - "find-cache-dir": "^0.1.1", - "mkdirp": "^0.5.1" - }, - "dependencies": { - "find-cache-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "requires": { - "find-up": "^1.0.0" - } - } - } - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" - }, - "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==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, - "lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "requires": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" - }, - "loglevel": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.0.tgz", - "integrity": "sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lower-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz", - "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==", - "requires": { - "tslib": "^1.10.0" - } - }, - "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==", - "requires": { - "yallist": "^3.0.2" - }, - "dependencies": { - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - } - }, - "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==", - "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==", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", - "requires": { - "tmpl": "1.0.x" - } - }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==" - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "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==", - "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==" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "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=", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "dependencies": { - "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==", - "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" - } - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "merge-deep": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz", - "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==", - "requires": { - "arr-union": "^3.1.0", - "clone-deep": "^0.2.4", - "kind-of": "^3.0.2" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "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==" - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "microevent.ts": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", - "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "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" - }, - "dependencies": { - "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==" - } - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "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==" - } - } - }, - "mime": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", - "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==" - }, - "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==" - }, - "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==", - "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==" - }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" - }, - "mini-css-extract-plugin": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz", - "integrity": "sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A==", - "requires": { - "loader-utils": "^1.1.0", - "normalize-url": "1.9.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" - }, - "dependencies": { - "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==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "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==" - }, - "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=" - }, - "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==", - "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==", - "requires": { - "minipass": "^3.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==", - "requires": { - "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==", - "requires": { - "minipass": "^3.0.0" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "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==", - "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==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mixin-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", - "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", - "requires": { - "for-in": "^0.1.3", - "is-extendable": "^0.1.1" - }, - "dependencies": { - "for-in": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", - "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=" - } - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "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=", - "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" - } - }, - "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==", - "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=" - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "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" - }, - "dependencies": { - "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==" - } - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "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==" - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "no-case": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz", - "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==", - "requires": { - "lower-case": "^2.0.1", - "tslib": "^1.10.0" - } - }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "node-forge": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz", - "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - }, - "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==", - "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=" - }, - "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==", - "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" - }, - "dependencies": { - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "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=" - } - } - } - } - }, - "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=" - }, - "node-notifier": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz", - "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==", - "requires": { - "growly": "^1.3.0", - "is-wsl": "^1.1.0", - "semver": "^5.5.0", - "shellwords": "^0.1.1", - "which": "^1.3.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "node-releases": { - "version": "1.1.61", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.61.tgz", - "integrity": "sha512-DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g==" - }, - "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==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "requires": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.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=", - "requires": { - "path-key": "^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==", - "requires": { - "boolbase": "~1.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "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=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "object-hash": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.0.3.tgz", - "integrity": "sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg==" - }, - "object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" - }, - "object-is": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", - "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-path": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz", - "integrity": "sha1-NwrnUvvzfePqcKhhwju6iRVpGUk=" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.entries": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", - "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "has": "^1.0.3" - } - }, - "object.fromentries": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz", - "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "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==" - }, - "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==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/open/-/open-7.2.1.tgz", - "integrity": "sha512-xbYCJib4spUdmcs0g/2mK1nKo/jO2T7INClWd/beL7PFkXRWgr8B23ssDHX/USPn2M2IjDR5UdpYs6I67SnTSA==", - "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "dependencies": { - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "requires": { - "is-docker": "^2.0.0" - } - } - } - }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", - "requires": { - "is-wsl": "^1.1.0" - } - }, - "optimize-css-assets-webpack-plugin": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz", - "integrity": "sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA==", - "requires": { - "cssnano": "^4.1.10", - "last-call-webpack-plugin": "^3.0.0" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "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" - } - }, - "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==", - "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=" - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "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=" - }, - "p-each-series": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", - "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=", - "requires": { - "p-reduce": "^1.0.0" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "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==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-reduce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", - "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=" - }, - "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==", - "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==" - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - }, - "dependencies": { - "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==", - "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" - } - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "param-case": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz", - "integrity": "sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==", - "requires": { - "dot-case": "^3.0.3", - "tslib": "^1.10.0" - } - }, - "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==", - "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==" - } - } - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "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=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parse5": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==" - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "pascal-case": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz", - "integrity": "sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==", - "requires": { - "no-case": "^3.0.3", - "tslib": "^1.10.0" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "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==" - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "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=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "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=" - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "requires": { - "pify": "^3.0.0" - } - }, - "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "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=" - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "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==", - "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==", - "requires": { - "find-up": "^3.0.0" - } - }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "requires": { - "find-up": "^3.0.0" - } - }, - "pn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", - "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==" - }, - "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==", - "requires": { - "ts-pnp": "^1.1.6" - } - }, - "popper.js": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==" - }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "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=" - }, - "postcss": { - "version": "7.0.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", - "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", - "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==" - }, - "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==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-attribute-case-insensitive": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", - "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==", - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^6.0.2" - } - }, - "postcss-browser-comments": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-3.0.0.tgz", - "integrity": "sha512-qfVjLfq7HFd2e0HW4s1dvU8X080OZdG46fFbIBFjW7US7YPDcWfRvdElvwMJr2LI6hMmD+7LnH2HcmXTs+uOig==", - "requires": { - "postcss": "^7" - } - }, - "postcss-calc": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.4.tgz", - "integrity": "sha512-0I79VRAd1UTkaHzY9w83P39YGO/M3bG7/tNLrHGEunBolfoGM0hSjrGvjoeaj0JE/zIw5GsI2KZ0UwDJqv5hjw==", - "requires": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, - "postcss-color-functional-notation": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", - "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==", - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-color-gray": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", - "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==", - "requires": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.5", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-color-hex-alpha": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", - "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", - "requires": { - "postcss": "^7.0.14", - "postcss-values-parser": "^2.0.1" - } - }, - "postcss-color-mod-function": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", - "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", - "requires": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-color-rebeccapurple": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", - "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", - "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==" - } - } - }, - "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==", - "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==" - } - } - }, - "postcss-custom-media": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", - "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", - "requires": { - "postcss": "^7.0.14" - } - }, - "postcss-custom-properties": { - "version": "8.0.11", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", - "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", - "requires": { - "postcss": "^7.0.17", - "postcss-values-parser": "^2.0.1" - } - }, - "postcss-custom-selectors": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", - "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-dir-pseudo-class": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", - "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==", - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "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==", - "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==", - "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==", - "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==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-double-position-gradients": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", - "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==", - "requires": { - "postcss": "^7.0.5", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-env-function": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", - "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-flexbugs-fixes": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.1.0.tgz", - "integrity": "sha512-jr1LHxQvStNNAHlgco6PzY308zvLklh7SJVYuWUwyUQncofaAlD2l+P/gxKHOdqWKe7xJSkVLFF/2Tp+JqMSZA==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-focus-visible": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", - "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-focus-within": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", - "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-font-variant": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz", - "integrity": "sha512-M8BFYKOvCrI2aITzDad7kWuXXTm0YhGdP9Q8HanmN4EF1Hmcgs1KK5rSHylt/lUJe8yLxiSwWAHdScoEiIxztg==", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-gap-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", - "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-image-set-function": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", - "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==", - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-initial": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.2.tgz", - "integrity": "sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA==", - "requires": { - "lodash.template": "^4.5.0", - "postcss": "^7.0.2" - } - }, - "postcss-lab-function": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", - "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==", - "requires": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-load-config": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", - "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", - "requires": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - } - }, - "postcss-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", - "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", - "requires": { - "loader-utils": "^1.1.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "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==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "postcss-logical": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", - "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-media-minmax": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", - "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", - "requires": { - "postcss": "^7.0.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==", - "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==" - } - } - }, - "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==", - "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==", - "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==", - "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==" - } - } - }, - "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==", - "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==" - } - } - }, - "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==", - "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==" - } - } - }, - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "requires": { - "icss-utils": "^4.0.0", - "postcss": "^7.0.6" - } - }, - "postcss-nesting": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", - "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-normalize": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-8.0.1.tgz", - "integrity": "sha512-rt9JMS/m9FHIRroDDBGSMsyW1c0fkvOJPy62ggxSHUldJO7B195TqFMqIf+lY5ezpDcYOV4j86aUp3/XbxzCCQ==", - "requires": { - "@csstools/normalize.css": "^10.1.0", - "browserslist": "^4.6.2", - "postcss": "^7.0.17", - "postcss-browser-comments": "^3.0.0", - "sanitize.css": "^10.0.0" - } - }, - "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==", - "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==", - "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==" - } - } - }, - "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==", - "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==" - } - } - }, - "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==", - "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==" - } - } - }, - "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==", - "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==" - } - } - }, - "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==", - "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==" - } - } - }, - "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==", - "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==" - } - } - }, - "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==", - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "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==" - }, - "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==" - } - } - }, - "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==", - "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==" - } - } - }, - "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==", - "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==" - } - } - }, - "postcss-overflow-shorthand": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", - "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-page-break": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", - "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-place": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", - "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-preset-env": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz", - "integrity": "sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==", - "requires": { - "autoprefixer": "^9.6.1", - "browserslist": "^4.6.4", - "caniuse-lite": "^1.0.30000981", - "css-blank-pseudo": "^0.1.4", - "css-has-pseudo": "^0.10.0", - "css-prefers-color-scheme": "^3.1.1", - "cssdb": "^4.4.0", - "postcss": "^7.0.17", - "postcss-attribute-case-insensitive": "^4.0.1", - "postcss-color-functional-notation": "^2.0.1", - "postcss-color-gray": "^5.0.0", - "postcss-color-hex-alpha": "^5.0.3", - "postcss-color-mod-function": "^3.0.3", - "postcss-color-rebeccapurple": "^4.0.1", - "postcss-custom-media": "^7.0.8", - "postcss-custom-properties": "^8.0.11", - "postcss-custom-selectors": "^5.1.2", - "postcss-dir-pseudo-class": "^5.0.0", - "postcss-double-position-gradients": "^1.0.0", - "postcss-env-function": "^2.0.2", - "postcss-focus-visible": "^4.0.0", - "postcss-focus-within": "^3.0.0", - "postcss-font-variant": "^4.0.0", - "postcss-gap-properties": "^2.0.0", - "postcss-image-set-function": "^3.0.1", - "postcss-initial": "^3.0.0", - "postcss-lab-function": "^2.0.1", - "postcss-logical": "^3.0.0", - "postcss-media-minmax": "^4.0.0", - "postcss-nesting": "^7.0.0", - "postcss-overflow-shorthand": "^2.0.0", - "postcss-page-break": "^2.0.0", - "postcss-place": "^4.0.1", - "postcss-pseudo-class-any-link": "^6.0.0", - "postcss-replace-overflow-wrap": "^3.0.0", - "postcss-selector-matches": "^4.0.0", - "postcss-selector-not": "^4.0.0" - } - }, - "postcss-pseudo-class-any-link": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", - "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==", - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "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==", - "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==", - "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==" - } - } - }, - "postcss-replace-overflow-wrap": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", - "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-safe-parser": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz", - "integrity": "sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-selector-matches": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", - "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", - "requires": { - "balanced-match": "^1.0.0", - "postcss": "^7.0.2" - } - }, - "postcss-selector-not": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz", - "integrity": "sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ==", - "requires": { - "balanced-match": "^1.0.0", - "postcss": "^7.0.2" - } - }, - "postcss-selector-parser": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", - "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", - "requires": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "postcss-svgo": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", - "requires": { - "is-svg": "^3.0.0", - "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==" - } - } - }, - "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==", - "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==" - }, - "postcss-values-parser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", - "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", - "requires": { - "flatten": "^1.0.2", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" - }, - "pretty-bytes": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.4.1.tgz", - "integrity": "sha512-s1Iam6Gwz3JI5Hweaz4GoCD1WUNUIyzePFy5+Js2hjwGVt2Z79wNN+ZKOZ2vB6C+Xs6njyB84Z1IthQg8d9LxA==" - }, - "pretty-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", - "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", - "requires": { - "renderkid": "^2.0.1", - "utila": "~0.4" - } - }, - "pretty-format": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", - "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", - "requires": { - "@jest/types": "^24.9.0", - "ansi-regex": "^4.0.0", - "ansi-styles": "^3.2.0", - "react-is": "^16.8.4" - }, - "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==" - } - } - }, - "prism-react-renderer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.1.1.tgz", - "integrity": "sha512-MgMhSdHuHymNRqD6KM3eGS0PNqgK9q4QF5P0yoQQvpB6jNjeSAi3jcSAz0Sua/t9fa4xDOMar9HJbLa08gl9ug==" - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "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==" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" - }, - "promise": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", - "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", - "requires": { - "asap": "~2.0.6" - } - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "prompts": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz", - "integrity": "sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==", - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.4" - } - }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "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=" - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "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==" - } - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "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==", - "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==", - "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==" - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "requires": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "requires": { - "performance-now": "^2.1.0" - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "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==", - "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==" - }, - "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==", - "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==" - } - } - }, - "react": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", - "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - } - }, - "react-app-polyfill": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-1.0.6.tgz", - "integrity": "sha512-OfBnObtnGgLGfweORmdZbyEz+3dgVePQBb3zipiaDsMHV1NpWm0rDFYIVXFV/AK+x4VIIfWHhrdMIeoTLyRr2g==", - "requires": { - "core-js": "^3.5.0", - "object-assign": "^4.1.1", - "promise": "^8.0.3", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.3", - "whatwg-fetch": "^3.0.0" - } - }, - "react-dev-utils": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-10.2.1.tgz", - "integrity": "sha512-XxTbgJnYZmxuPtY3y/UV0D8/65NKkmaia4rXzViknVnZeVlklSh8u6TnaEYPfAi/Gh1TP4mEOXHI6jQOPbeakQ==", - "requires": { - "@babel/code-frame": "7.8.3", - "address": "1.1.2", - "browserslist": "4.10.0", - "chalk": "2.4.2", - "cross-spawn": "7.0.1", - "detect-port-alt": "1.1.6", - "escape-string-regexp": "2.0.0", - "filesize": "6.0.1", - "find-up": "4.1.0", - "fork-ts-checker-webpack-plugin": "3.1.1", - "global-modules": "2.0.0", - "globby": "8.0.2", - "gzip-size": "5.1.1", - "immer": "1.10.0", - "inquirer": "7.0.4", - "is-root": "2.1.0", - "loader-utils": "1.2.3", - "open": "^7.0.2", - "pkg-up": "3.1.0", - "react-error-overlay": "^6.0.7", - "recursive-readdir": "2.2.2", - "shell-quote": "1.7.2", - "strip-ansi": "6.0.0", - "text-table": "0.2.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "browserslist": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.10.0.tgz", - "integrity": "sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA==", - "requires": { - "caniuse-lite": "^1.0.30001035", - "electron-to-chromium": "^1.3.378", - "node-releases": "^1.1.52", - "pkg-up": "^3.1.0" - } - }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==" - }, - "cross-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", - "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "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==" - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "inquirer": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz", - "integrity": "sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ==", - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^2.4.2", - "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.15", - "mute-stream": "0.0.8", - "run-async": "^2.2.0", - "rxjs": "^6.5.3", - "string-width": "^4.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "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==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^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==", - "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==", - "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==" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "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==", - "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==" - }, - "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" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - } - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "react-dom": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", - "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" - } - }, - "react-error-overlay": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.7.tgz", - "integrity": "sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA==" - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "react-live": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/react-live/-/react-live-2.2.2.tgz", - "integrity": "sha512-kJYAzKnPsR4oXleAX9lLsJA330BhTmSWHhr3ienZA2E/0eFDRodGl3I7sge8pp1vjc2K5Aaz73KpFUnV7Lq/DQ==", - "requires": { - "buble": "0.19.6", - "core-js": "^2.4.1", - "create-react-context": "0.2.2", - "dom-iterator": "^1.0.0", - "prism-react-renderer": "^1.0.1", - "prop-types": "^15.5.8", - "react-simple-code-editor": "^0.10.0", - "unescape": "^1.0.1" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" - }, - "create-react-context": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.2.2.tgz", - "integrity": "sha512-KkpaLARMhsTsgp0d2NA/R94F/eDLbhXERdIq3LvX2biCAXcDvHYoOqHfWCHf1+OLj+HKBotLG3KqaOOf+C1C+A==", - "requires": { - "fbjs": "^0.8.0", - "gud": "^1.0.0" - } - } - } - }, - "react-popper": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-1.3.7.tgz", - "integrity": "sha512-nmqYTx7QVjCm3WUZLeuOomna138R1luC4EqkW3hxJUrAe+3eNz3oFCLYdnPwILfn0mX1Ew2c3wctrjlUMYYUww==", - "requires": { - "@babel/runtime": "^7.1.2", - "create-react-context": "^0.3.0", - "deep-equal": "^1.1.1", - "popper.js": "^1.14.4", - "prop-types": "^15.6.1", - "typed-styles": "^0.0.7", - "warning": "^4.0.2" - } - }, - "react-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/react-property/-/react-property-1.0.1.tgz", - "integrity": "sha512-1tKOwxFn3dXVomH6pM9IkLkq2Y8oh+fh/lYW3MJ/B03URswUTqttgckOlbxY2XHF3vPG6uanSc4dVsLW/wk3wQ==" - }, - "react-scripts": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-3.4.3.tgz", - "integrity": "sha512-oSnoWmii/iKdeQiwaO6map1lUaZLmG0xIUyb/HwCVFLT7gNbj8JZ9RmpvMCZ4fB98ZUMRfNmp/ft8uy/xD1RLA==", - "requires": { - "@babel/core": "7.9.0", - "@svgr/webpack": "4.3.3", - "@typescript-eslint/eslint-plugin": "^2.10.0", - "@typescript-eslint/parser": "^2.10.0", - "babel-eslint": "10.1.0", - "babel-jest": "^24.9.0", - "babel-loader": "8.1.0", - "babel-plugin-named-asset-import": "^0.3.6", - "babel-preset-react-app": "^9.1.2", - "camelcase": "^5.3.1", - "case-sensitive-paths-webpack-plugin": "2.3.0", - "css-loader": "3.4.2", - "dotenv": "8.2.0", - "dotenv-expand": "5.1.0", - "eslint": "^6.6.0", - "eslint-config-react-app": "^5.2.1", - "eslint-loader": "3.0.3", - "eslint-plugin-flowtype": "4.6.0", - "eslint-plugin-import": "2.20.1", - "eslint-plugin-jsx-a11y": "6.2.3", - "eslint-plugin-react": "7.19.0", - "eslint-plugin-react-hooks": "^1.6.1", - "file-loader": "4.3.0", - "fs-extra": "^8.1.0", - "fsevents": "2.1.2", - "html-webpack-plugin": "4.0.0-beta.11", - "identity-obj-proxy": "3.0.0", - "jest": "24.9.0", - "jest-environment-jsdom-fourteen": "1.0.1", - "jest-resolve": "24.9.0", - "jest-watch-typeahead": "0.4.2", - "mini-css-extract-plugin": "0.9.0", - "optimize-css-assets-webpack-plugin": "5.0.3", - "pnp-webpack-plugin": "1.6.4", - "postcss-flexbugs-fixes": "4.1.0", - "postcss-loader": "3.0.0", - "postcss-normalize": "8.0.1", - "postcss-preset-env": "6.7.0", - "postcss-safe-parser": "4.0.1", - "react-app-polyfill": "^1.0.6", - "react-dev-utils": "^10.2.1", - "resolve": "1.15.0", - "resolve-url-loader": "3.1.1", - "sass-loader": "8.0.2", - "semver": "6.3.0", - "style-loader": "0.23.1", - "terser-webpack-plugin": "2.3.8", - "ts-pnp": "1.1.6", - "url-loader": "2.3.0", - "webpack": "4.42.0", - "webpack-dev-server": "3.11.0", - "webpack-manifest-plugin": "2.2.0", - "workbox-webpack-plugin": "4.3.1" - } - }, - "react-simple-code-editor": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/react-simple-code-editor/-/react-simple-code-editor-0.10.0.tgz", - "integrity": "sha512-bL5W5mAxSW6+cLwqqVWY47Silqgy2DKDTR4hDBrLrUqC5BXc29YVx17l2IZk5v36VcDEq1Bszu2oHm1qBwKqBA==" - }, - "react-transition-group": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", - "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", - "requires": { - "dom-helpers": "^3.4.0", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2", - "react-lifecycles-compat": "^3.0.4" - } - }, - "reactstrap": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/reactstrap/-/reactstrap-8.5.1.tgz", - "integrity": "sha512-igpdw8DiW48ZtwGOo2unwlsILFlF7deiqFUAqc3wrsX/0H0OkvmezJdkjJx2X9jaHfjGdPpm0vu5VN/kk7tv+A==", - "requires": { - "@babel/runtime": "^7.2.0", - "classnames": "^2.2.3", - "prop-types": "^15.5.8", - "react-popper": "^1.3.6", - "react-transition-group": "^2.3.1" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - } - }, - "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==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", - "requires": { - "picomatch": "^2.2.1" - } - }, - "realpath-native": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", - "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==", - "requires": { - "util.promisify": "^1.0.0" - } - }, - "recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", - "requires": { - "minimatch": "3.0.4" - } - }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "regenerate": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", - "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==" - }, - "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==", - "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==" - }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "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==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regex-parser": { - "version": "2.2.10", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.10.tgz", - "integrity": "sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA==" - }, - "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==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==" - }, - "regexpu-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", - "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", - "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==" - }, - "regjsparser": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", - "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", - "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=" - } - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" - }, - "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=" - }, - "renderkid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", - "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", - "requires": { - "css-select": "^1.1.0", - "dom-converter": "^0.2", - "htmlparser2": "^3.3.0", - "strip-ansi": "^3.0.0", - "utila": "^0.4.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "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" - } - }, - "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==", - "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==", - "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==" - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "resolve": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz", - "integrity": "sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw==", - "requires": { - "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=", - "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=" - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "resolve-url-loader": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.1.tgz", - "integrity": "sha512-K1N5xUjj7v0l2j/3Sgs5b8CjrrgtC70SmdCuZiJ8tSyb5J+uk3FoeZ4b7yTnH6j7ngI+Bc5bldHJIa8hYdu2gQ==", - "requires": { - "adjust-sourcemap-loader": "2.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": { - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==" - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" - }, - "rework": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", - "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", - "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=" - } - } - }, - "rework-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", - "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=" - }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=" - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "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==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==" - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "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" - } - }, - "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=", - "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==" - }, - "sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "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" - } - }, - "sanitize.css": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-10.0.0.tgz", - "integrity": "sha512-vTxrZz4dX5W86M6oVWVdOVe72ZiPs41Oi7Z6Km4W5Turyz28mrXSJhhEBZoRtzJWIv3833WKVwLSDWWkEfupMg==" - }, - "sass-loader": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.2.tgz", - "integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==", - "requires": { - "clone-deep": "^4.0.1", - "loader-utils": "^1.2.3", - "neo-async": "^2.6.1", - "schema-utils": "^2.6.1", - "semver": "^6.3.0" - }, - "dependencies": { - "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==", - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "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==" - }, - "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==", - "requires": { - "kind-of": "^6.0.2" - } - } - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "saxes": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", - "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", - "requires": { - "xmlchars": "^2.1.1" - } - }, - "scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "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=" - }, - "selfsigned": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz", - "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==", - "requires": { - "node-forge": "0.9.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "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==", - "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=" - } - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "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==" - } - } - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "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=", - "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==", - "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=", - "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=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - } - } - }, - "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==", - "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=" - }, - "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==", - "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=", - "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=" - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shallow-clone": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", - "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", - "requires": { - "is-extendable": "^0.1.1", - "kind-of": "^2.0.1", - "lazy-cache": "^0.2.3", - "mixin-object": "^2.0.1" - }, - "dependencies": { - "kind-of": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", - "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", - "requires": { - "is-buffer": "^1.0.2" - } - }, - "lazy-cache": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", - "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=" - } - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "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=" - }, - "shell-quote": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", - "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" - }, - "side-channel": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.3.tgz", - "integrity": "sha512-A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g==", - "requires": { - "es-abstract": "^1.18.0-next.0", - "object-inspect": "^1.8.0" - }, - "dependencies": { - "es-abstract": { - "version": "1.18.0-next.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.0.tgz", - "integrity": "sha512-elZXTZXKn51hUBdJjSZGYRujuzilgXo8vSPQzjGYXLvSlGiCo8VO8ZGV3kjo9a0WNJJ57hENagwbtlRuHuzkcQ==", - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } - } - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "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==" - } - } - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "dependencies": { - "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=" - } - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "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==", - "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=", - "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=", - "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=" - } - } - }, - "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==", - "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=", - "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==", - "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==", - "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==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "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==" - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - } - }, - "sockjs": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", - "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", - "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==", - "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.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "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==", - "requires": { - "websocket-driver": ">=0.5.1" - } - } - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "requires": { - "is-plain-obj": "^1.0.0" - } - }, - "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==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "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==", - "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==", - "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==" - } - } - }, - "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=" - }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "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==" - }, - "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==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "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==", - "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" - } - }, - "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==", - "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=" - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "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" - } - }, - "ssri": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", - "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", - "requires": { - "figgy-pudding": "^3.5.1", - "minipass": "^3.1.1" - } - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" - }, - "stack-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", - "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==" - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "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=", - "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=" - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" - }, - "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==", - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "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==", - "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" - } - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "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==", - "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==", - "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" - }, - "dependencies": { - "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==", - "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" - } - }, - "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==", - "requires": { - "safe-buffer": "~5.1.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==" - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" - }, - "string-length": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", - "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", - "requires": { - "astral-regex": "^1.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.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" - }, - "dependencies": { - "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" - } - } - } - }, - "string.prototype.matchall": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz", - "integrity": "sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "has-symbols": "^1.0.1", - "internal-slot": "^1.0.2", - "regexp.prototype.flags": "^1.3.0", - "side-channel": "^1.0.2" - } - }, - "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "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==" - } - } - }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "dependencies": { - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - } - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.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==" - } - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "strip-comments": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz", - "integrity": "sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==", - "requires": { - "babel-extract-comments": "^1.0.0", - "babel-plugin-transform-object-rest-spread": "^6.26.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "requires": { - "min-indent": "^1.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" - }, - "strip-outer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", - "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.2" - } - }, - "strip-url-auth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-url-auth/-/strip-url-auth-1.0.1.tgz", - "integrity": "sha1-IrD6OkE4WzO+PzMVUbu4N/oM164=", - "dev": true - }, - "style-loader": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", - "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", - "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "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==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "style-to-object": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", - "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", - "requires": { - "inline-style-parser": "0.1.1" - } - }, - "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==", - "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==", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "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" - } - }, - "svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "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" - } - }, - "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==" - }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "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=" - }, - "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==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" - }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "terser-webpack-plugin": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.8.tgz", - "integrity": "sha512-/fKw3R+hWyHfYx7Bv6oPqmk4HGQcrWLtV3X6ggvPuwPNHSnzvVV51z6OaaCOus4YLjutYGOz3pEpbhe6Up2s1w==", - "requires": { - "cacache": "^13.0.1", - "find-cache-dir": "^3.3.1", - "jest-worker": "^25.4.0", - "p-limit": "^2.3.0", - "schema-utils": "^2.6.6", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.6.12", - "webpack-sources": "^1.4.3" - }, - "dependencies": { - "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==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "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==" - }, - "jest-worker": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", - "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^7.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==", - "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==", - "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==", - "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==" - }, - "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==", - "requires": { - "find-up": "^4.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==" - }, - "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==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "test-exclude": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", - "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", - "requires": { - "glob": "^7.1.3", - "minimatch": "^3.0.4", - "read-pkg-up": "^4.0.0", - "require-main-filename": "^2.0.0" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "throat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", - "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - }, - "dependencies": { - "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==", - "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" - } - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", - "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=" - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "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=" - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - }, - "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=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "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": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "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==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "requires": { - "punycode": "^2.1.0" - } - }, - "trim-repeated": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.2" - } - }, - "ts-pnp": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.1.6.tgz", - "integrity": "sha512-CrG5GqAAzMT7144Cl+UIFP7mz/iIhiy+xQ6GGcnjTezhALT02uPMRw7tgDSESgB5MsfKt55+GPWw4ir1kVtMIQ==" - }, - "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" - }, - "tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", - "requires": { - "tslib": "^1.8.1" - } - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "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=" - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typed-styles": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/typed-styles/-/typed-styles-0.0.7.tgz", - "integrity": "sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q==" - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "ua-parser-js": { - "version": "0.7.21", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", - "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==" - }, - "unescape": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unescape/-/unescape-1.0.1.tgz", - "integrity": "sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==", - "requires": { - "extend-shallow": "^2.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=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "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==" - }, - "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==", - "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==" - }, - "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==" - }, - "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==", - "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=" - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "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==", - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "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=", - "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=", - "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=" - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" - }, - "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==", - "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=" - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "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=" - } - } - }, - "url-loader": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz", - "integrity": "sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==", - "requires": { - "loader-utils": "^1.2.3", - "mime": "^2.4.4", - "schema-utils": "^2.5.0" - } - }, - "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", - "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==" - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "requires": { - "inherits": "2.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - } - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, - "v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==" - }, - "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==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vlq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", - "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==" - }, - "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==" - }, - "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==", - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", - "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", - "requires": { - "domexception": "^1.0.1", - "webidl-conversions": "^4.0.2", - "xml-name-validator": "^3.0.0" - } - }, - "wait-for-expect": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-3.0.2.tgz", - "integrity": "sha512-cfS1+DZxuav1aBYbaO/kE06EOS8yRw7qOFoD3XtjTkYvCvh3zUvNST8DXK/nPaeqIzIv3P3kL3lRJn8iwOiSag==" - }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "requires": { - "makeerror": "1.0.x" - } - }, - "warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "watchpack": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", - "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==", - "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.0" - } - }, - "watchpack-chokidar2": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", - "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", - "optional": true, - "requires": { - "chokidar": "^2.1.8" - }, - "dependencies": { - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "optional": true - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "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" - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "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=", - "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=", - "optional": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "optional": 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==", - "optional": 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": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "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==", - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - }, - "webpack": { - "version": "4.42.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.0.tgz", - "integrity": "sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/wasm-edit": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.2.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.1.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.1", - "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.6.0", - "webpack-sources": "^1.4.1" - }, - "dependencies": { - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==" - }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "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" - } - }, - "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==", - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "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==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.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==" - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "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==", - "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" - } - } - } - }, - "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==", - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - } - }, - "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==", - "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=" - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "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" - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "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=", - "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==" - }, - "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=", - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "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==", - "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": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "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==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "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==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "requires": { - "async-limiter": "~1.0.0" - } - } - } - }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - } - }, - "webpack-manifest-plugin": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-2.2.0.tgz", - "integrity": "sha512-9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ==", - "requires": { - "fs-extra": "^7.0.0", - "lodash": ">=3.5 <5", - "object.entries": "^1.1.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "requires": { - "source-list-map": "^2.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==" - } - } - }, - "websocket-driver": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", - "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", - "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==" - }, - "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==", - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-fetch": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.4.1.tgz", - "integrity": "sha512-sofZVzE1wKwO+EYPbWfiwzaKovWiZXf4coEzjGP9b2GBVgQRLQUZ2QcuPpQExGDAW5GItpEm6Tl4OU5mywnAoQ==" - }, - "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==" - }, - "whatwg-url": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", - "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "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==" - }, - "workbox-background-sync": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz", - "integrity": "sha512-1uFkvU8JXi7L7fCHVBEEnc3asPpiAL33kO495UMcD5+arew9IbKW2rV5lpzhoWcm/qhGB89YfO4PmB/0hQwPRg==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-broadcast-update": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-4.3.1.tgz", - "integrity": "sha512-MTSfgzIljpKLTBPROo4IpKjESD86pPFlZwlvVG32Kb70hW+aob4Jxpblud8EhNb1/L5m43DUM4q7C+W6eQMMbA==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-build": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-4.3.1.tgz", - "integrity": "sha512-UHdwrN3FrDvicM3AqJS/J07X0KXj67R8Cg0waq1MKEOqzo89ap6zh6LmaLnRAjpB+bDIz+7OlPye9iii9KBnxw==", - "requires": { - "@babel/runtime": "^7.3.4", - "@hapi/joi": "^15.0.0", - "common-tags": "^1.8.0", - "fs-extra": "^4.0.2", - "glob": "^7.1.3", - "lodash.template": "^4.4.0", - "pretty-bytes": "^5.1.0", - "stringify-object": "^3.3.0", - "strip-comments": "^1.0.2", - "workbox-background-sync": "^4.3.1", - "workbox-broadcast-update": "^4.3.1", - "workbox-cacheable-response": "^4.3.1", - "workbox-core": "^4.3.1", - "workbox-expiration": "^4.3.1", - "workbox-google-analytics": "^4.3.1", - "workbox-navigation-preload": "^4.3.1", - "workbox-precaching": "^4.3.1", - "workbox-range-requests": "^4.3.1", - "workbox-routing": "^4.3.1", - "workbox-strategies": "^4.3.1", - "workbox-streams": "^4.3.1", - "workbox-sw": "^4.3.1", - "workbox-window": "^4.3.1" - }, - "dependencies": { - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "workbox-cacheable-response": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-4.3.1.tgz", - "integrity": "sha512-Rp5qlzm6z8IOvnQNkCdO9qrDgDpoPNguovs0H8C+wswLuPgSzSp9p2afb5maUt9R1uTIwOXrVQMmPfPypv+npw==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-core": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-4.3.1.tgz", - "integrity": "sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg==" - }, - "workbox-expiration": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-4.3.1.tgz", - "integrity": "sha512-vsJLhgQsQouv9m0rpbXubT5jw0jMQdjpkum0uT+d9tTwhXcEZks7qLfQ9dGSaufTD2eimxbUOJfWLbNQpIDMPw==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-google-analytics": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-4.3.1.tgz", - "integrity": "sha512-xzCjAoKuOb55CBSwQrbyWBKqp35yg1vw9ohIlU2wTy06ZrYfJ8rKochb1MSGlnoBfXGWss3UPzxR5QL5guIFdg==", - "requires": { - "workbox-background-sync": "^4.3.1", - "workbox-core": "^4.3.1", - "workbox-routing": "^4.3.1", - "workbox-strategies": "^4.3.1" - } - }, - "workbox-navigation-preload": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-4.3.1.tgz", - "integrity": "sha512-K076n3oFHYp16/C+F8CwrRqD25GitA6Rkd6+qAmLmMv1QHPI2jfDwYqrytOfKfYq42bYtW8Pr21ejZX7GvALOw==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-precaching": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-4.3.1.tgz", - "integrity": "sha512-piSg/2csPoIi/vPpp48t1q5JLYjMkmg5gsXBQkh/QYapCdVwwmKlU9mHdmy52KsDGIjVaqEUMFvEzn2LRaigqQ==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-range-requests": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-4.3.1.tgz", - "integrity": "sha512-S+HhL9+iTFypJZ/yQSl/x2Bf5pWnbXdd3j57xnb0V60FW1LVn9LRZkPtneODklzYuFZv7qK6riZ5BNyc0R0jZA==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-routing": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-4.3.1.tgz", - "integrity": "sha512-FkbtrODA4Imsi0p7TW9u9MXuQ5P4pVs1sWHK4dJMMChVROsbEltuE79fBoIk/BCztvOJ7yUpErMKa4z3uQLX+g==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-strategies": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-4.3.1.tgz", - "integrity": "sha512-F/+E57BmVG8dX6dCCopBlkDvvhg/zj6VDs0PigYwSN23L8hseSRwljrceU2WzTvk/+BSYICsWmRq5qHS2UYzhw==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-streams": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-4.3.1.tgz", - "integrity": "sha512-4Kisis1f/y0ihf4l3u/+ndMkJkIT4/6UOacU3A4BwZSAC9pQ9vSvJpIi/WFGQRH/uPXvuVjF5c2RfIPQFSS2uA==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-sw": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-4.3.1.tgz", - "integrity": "sha512-0jXdusCL2uC5gM3yYFT6QMBzKfBr2XTk0g5TPAV4y8IZDyVNDyj1a8uSXy3/XrvkVTmQvLN4O5k3JawGReXr9w==" - }, - "workbox-webpack-plugin": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-4.3.1.tgz", - "integrity": "sha512-gJ9jd8Mb8wHLbRz9ZvGN57IAmknOipD3W4XNE/Lk/4lqs5Htw4WOQgakQy/o/4CoXQlMCYldaqUg+EJ35l9MEQ==", - "requires": { - "@babel/runtime": "^7.0.0", - "json-stable-stringify": "^1.0.1", - "workbox-build": "^4.3.1" - } - }, - "workbox-window": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-4.3.1.tgz", - "integrity": "sha512-C5gWKh6I58w3GeSc0wp2Ne+rqVw8qwcmZnQGpjiek8A2wpbxSJb1FdCoQVO+jDJs35bFgo/WETgl1fqgsxN0Hg==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "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==", - "requires": { - "errno": "~0.1.7" - } - }, - "worker-rpc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz", - "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==", - "requires": { - "microevent.ts": "~0.1.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==", - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "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=" - }, - "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==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "requires": { - "mkdirp": "^0.5.1" - } - }, - "write-file-atomic": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz", - "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==", - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "ws": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", - "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", - "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==" - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" - }, - "xregexp": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.3.0.tgz", - "integrity": "sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g==", - "requires": { - "@babel/runtime-corejs3": "^7.8.3" - } - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "yaml": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", - "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==" - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "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": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "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=" - }, - "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==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.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==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index ddb5e6a..0000000 --- a/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "leetcode", - "version": "0.1.0", - "private": true, - "homepage": "https://temanisparsh.github.io/leetcode", - "dependencies": { - "@testing-library/jest-dom": "^4.2.4", - "@testing-library/react": "^9.5.0", - "@testing-library/user-event": "^7.2.1", - "bootstrap": "^4.5.2", - "html-react-parser": "^0.13.0", - "lodash": "^4.17.20", - "prism-react-renderer": "^1.1.1", - "react": "^16.13.1", - "react-dom": "^16.13.1", - "react-live": "^2.2.2", - "react-scripts": "3.4.3", - "reactstrap": "^8.5.1" - }, - "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "eject": "react-scripts eject", - "predeploy": "npm run build", - "deploy": "gh-pages -d build" - }, - "eslintConfig": { - "extends": "react-app" - }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - }, - "devDependencies": { - "gh-pages": "^3.1.0" - } -} diff --git a/precache-manifest.c18e282f527e738ff22f58d8288588ee.js b/precache-manifest.c18e282f527e738ff22f58d8288588ee.js new file mode 100644 index 0000000..12d66bc --- /dev/null +++ b/precache-manifest.c18e282f527e738ff22f58d8288588ee.js @@ -0,0 +1,30 @@ +self.__precacheManifest = (self.__precacheManifest || []).concat([ + { + "revision": "72dddb74efe350dcf349b20a84f4407a", + "url": "/leetcode/index.html" + }, + { + "revision": "9dd3442500f7cf92c172", + "url": "/leetcode/static/css/2.d9ad5f5c.chunk.css" + }, + { + "revision": "da3c5344a3e6ea3b1e07", + "url": "/leetcode/static/css/main.bca8e935.chunk.css" + }, + { + "revision": "9dd3442500f7cf92c172", + "url": "/leetcode/static/js/2.8c98df72.chunk.js" + }, + { + "revision": "4423bb43660c7d41420d0cb4e9ebc3f2", + "url": "/leetcode/static/js/2.8c98df72.chunk.js.LICENSE.txt" + }, + { + "revision": "da3c5344a3e6ea3b1e07", + "url": "/leetcode/static/js/main.6d289f42.chunk.js" + }, + { + "revision": "aeb270a43711ced8a8c2", + "url": "/leetcode/static/js/runtime-main.bca5a1f5.js" + } +]); \ No newline at end of file diff --git a/problem_scraper.py b/problem_scraper.py deleted file mode 100644 index 417ea86..0000000 --- a/problem_scraper.py +++ /dev/null @@ -1,59 +0,0 @@ -import os -import json -import time - -from selenium import webdriver -from selenium.webdriver.common.keys import Keys - -problem_files = os.listdir('./problems') -problem_files = set([i.split('.')[0] for i in problem_files]) - -solution_paths = ['./solutions/easy', './solutions/medium', './solutions/hard'] -solution_files = [] -solution_dict = {} - -for i in solution_paths: - - path_files = os.listdir(i) - - for j in path_files: - solution_dict[j.split('.')[0]] = i + '/' + j - - path_files = [j.split('.')[0] for j in path_files] - solution_files.extend(path_files) - -solution_files = set(solution_files) - -diff_files = list(solution_files.difference(problem_files)) -print(diff_files) - -with open('links.json', 'r') as json_file: - links = json.loads(json_file.read()) - -driver = webdriver.Chrome() -driver.get('https://leetcode.com/problemset/algorithms/') - -for problem_number in diff_files: - - problem = links[problem_number] - link = problem['link'] - - driver.get(link) - - while True: - try: - statement_ele = driver.find_element_by_xpath('//*[@id="app"]/div/div[2]/div/div/div[1]/div/div[1]/div[1]/div/div[2]/div/div[2]') - statement = statement_ele.get_attribute("innerHTML") - break - except: - time.sleep(1) - continue - - problem['statement'] = statement - problem['language'] = solution_dict[problem_number].split('.')[-1] - - with open(solution_dict[problem_number], 'r') as file: - problem['solution'] = file.read() - - with open('./problems/'+problem_number+'.json', 'w') as json_file: - json.dump(problem, json_file) \ No newline at end of file diff --git a/problems/1002.json b/problems/1002.json deleted file mode 100644 index 8fcc33c..0000000 --- a/problems/1002.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/find-common-characters", "name": "Find Common Characters", "difficulty": "Easy", "statement": "

Given an array A of strings made only from lowercase letters, return a list of all characters that show up in all strings within the list (including duplicates).  For example, if a character occurs 3 times in all strings but not 4 times, you need to include that character three times in the final answer.

\n\n

You may return the answer in any order.

\n\n

 

\n\n
\n

Example 1:

\n\n
Input: [\"bella\",\"label\",\"roller\"]\nOutput: [\"e\",\"l\",\"l\"]\n
\n\n
\n

Example 2:

\n\n
Input: [\"cool\",\"lock\",\"cook\"]\nOutput: [\"c\",\"o\"]\n
\n\n

 

\n\n

Note:

\n\n
    \n\t
  1. 1 <= A.length <= 100
  2. \n\t
  3. 1 <= A[i].length <= 100
  4. \n\t
  5. A[i][j] is a lowercase letter
  6. \n
\n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n vector commonChars(vector &A)\n {\n\n int len = A.size();\n vector> m;\n for (int i = 0; i < 26; i++)\n {\n vector t;\n for (string temp : A)\n t.push_back(0);\n m.push_back(t);\n }\n\n for (int i = 0; i < len; ++i)\n {\n for (char ch : A[i])\n {\n ++m[(int)(ch)-97][i];\n }\n }\n\n vector out;\n\n for (int i = 0; i < 26; i++)\n {\n vector counts = m[i];\n int min_count = *min_element(counts.begin(), counts.end());\n stringstream s;\n s << (char)(i + 97);\n for (int j = 0; j < min_count; ++j)\n {\n out.push_back(s.str());\n }\n }\n\n return out;\n }\n};"} \ No newline at end of file diff --git a/problems/1021.json b/problems/1021.json deleted file mode 100644 index 9c1363c..0000000 --- a/problems/1021.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/remove-outermost-parentheses", "name": "Remove Outermost Parentheses", "difficulty": "Easy", "statement": "

A valid parentheses string is either empty (\"\"), \"(\" + A + \")\", or A + B, where A and B are valid parentheses strings, and + represents string concatenation.  For example, \"\", \"()\", \"(())()\", and \"(()(()))\" are all valid parentheses strings.

\n\n

A valid parentheses string S is primitive if it is nonempty, and there does not exist a way to split it into S = A+B, with A and B nonempty valid parentheses strings.

\n\n

Given a valid parentheses string S, consider its primitive decomposition: S = P_1 + P_2 + ... + P_k, where P_i are primitive valid parentheses strings.

\n\n

Return S after removing the outermost parentheses of every primitive string in the primitive decomposition of S.

\n\n

 

\n\n

Example 1:

\n\n
Input: \"(()())(())\"\nOutput: \"()()()\"\nExplanation: \nThe input string is \"(()())(())\", with primitive decomposition \"(()())\" + \"(())\".\nAfter removing outer parentheses of each part, this is \"()()\" + \"()\" = \"()()()\".\n
\n\n
\n

Example 2:

\n\n
Input: \"(()())(())(()(()))\"\nOutput: \"()()()()(())\"\nExplanation: \nThe input string is \"(()())(())(()(()))\", with primitive decomposition \"(()())\" + \"(())\" + \"(()(()))\".\nAfter removing outer parentheses of each part, this is \"()()\" + \"()\" + \"()(())\" = \"()()()()(())\".\n
\n\n
\n

Example 3:

\n\n
Input: \"()()\"\nOutput: \"\"\nExplanation: \nThe input string is \"()()\", with primitive decomposition \"()\" + \"()\".\nAfter removing outer parentheses of each part, this is \"\" + \"\" = \"\".\n
\n\n

 

\n
\n
\n\n

Note:

\n\n
    \n\t
  1. S.length <= 10000
  2. \n\t
  3. S[i] is \"(\" or \")\"
  4. \n\t
  5. S is a valid parentheses string
  6. \n
\n\n
\n
\n
 
\n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n string removeOuterParentheses(string S)\n {\n\n int n = S.length();\n char res[n];\n\n fill_n(res, n, '\\0');\n\n int pos = 0;\n int diff = 0;\n for (char i : S)\n {\n\n if (i == '(')\n {\n if (diff)\n {\n res[pos] = '(';\n ++pos;\n }\n ++diff;\n }\n else\n {\n --diff;\n if (diff)\n {\n res[pos] = ')';\n ++pos;\n }\n }\n }\n\n string r(res);\n\n return r;\n }\n};"} \ No newline at end of file diff --git a/problems/1022.json b/problems/1022.json deleted file mode 100644 index 30a1825..0000000 --- a/problems/1022.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/sum-of-root-to-leaf-binary-numbers", "name": "Sum of Root To Leaf Binary Numbers", "difficulty": "Easy", "statement": "

You are given the root of a binary tree where each node has a value 0 or 1.  Each root-to-leaf path represents a binary number starting with the most significant bit.  For example, if the path is 0 -> 1 -> 1 -> 0 -> 1, then this could represent 01101 in binary, which is 13.

\n\n

For all leaves in the tree, consider the numbers represented by the path from the root to that leaf.

\n\n

Return the sum of these numbers. The answer is guaranteed to fit in a 32-bits integer.

\n\n

 

\n

Example 1:

\n\"\"\n
Input: root = [1,0,1,0,1,0,1]\nOutput: 22\nExplanation: (100) + (101) + (110) + (111) = 4 + 5 + 6 + 7 = 22\n
\n\n

Example 2:

\n\n
Input: root = [0]\nOutput: 0\n
\n\n

Example 3:

\n\n
Input: root = [1]\nOutput: 1\n
\n\n

Example 4:

\n\n
Input: root = [1,1]\nOutput: 3\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • The number of nodes in the tree is in the range [1, 1000].
  • \n\t
  • Node.val is 0 or 1.
  • \n
\n
", "language": "c", "solution": "#include \n\nstruct TreeNode\n{\n int val;\n struct TreeNode *left;\n struct TreeNode *right;\n};\n\nint sumRootToLeaf(struct TreeNode *root)\n{\n return findSum(root, 0);\n}\n\nint findSum(struct TreeNode *root, int prevSum) {\n\n int sum = 0;\n\n if (root->left)\n sum += findSum(root->left, 2*prevSum + root->val);\n if (root->right)\n sum += findSum(root->right, 2*prevSum + root->val);\n\n if (!root->left && !root->right)\n return prevSum*2 + root->val;\n return sum;\n\n}"} \ No newline at end of file diff --git a/problems/1047.json b/problems/1047.json deleted file mode 100644 index 0712240..0000000 --- a/problems/1047.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/remove-all-adjacent-duplicates-in-string", "name": "Remove All Adjacent Duplicates In String", "difficulty": "Easy", "statement": "

Given a string S of lowercase letters, a duplicate removal consists of choosing two adjacent and equal letters, and removing them.

\n\n

We repeatedly make duplicate removals on S until we no longer can.

\n\n

Return the final string after all such duplicate removals have been made.  It is guaranteed the answer is unique.

\n\n

 

\n\n

Example 1:

\n\n
Input: \"abbaca\"\nOutput: \"ca\"\nExplanation: \nFor example, in \"abbaca\" we could remove \"bb\" since the letters are adjacent and equal, and this is the only possible move.  The result of this move is that the string is \"aaca\", of which only \"aa\" is possible, so the final string is \"ca\".\n
\n\n

 

\n\n

Note:

\n\n
    \n\t
  1. 1 <= S.length <= 20000
  2. \n\t
  3. S consists only of English lowercase letters.
  4. \n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n string removeDuplicates(string S)\n {\n\n stringstream out;\n vector s;\n for (char ch : S)\n s.push_back(ch);\n\n int n = S.length();\n\n for (int i = 0; i < n - 1; i++)\n {\n \n if (s[i] == s[i + 1])\n {\n\n s.erase(s.begin() + i+1);\n s.erase(s.begin() + i);\n\n i -= 2;\n n -= 2;\n\n if (i < -1)\n i = -1;\n\n }\n }\n\n for(char ch: s) out << ch;\n\n return out.str();\n }\n};"} \ No newline at end of file diff --git a/problems/1051.json b/problems/1051.json deleted file mode 100644 index 7e447da..0000000 --- a/problems/1051.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/height-checker", "name": "Height Checker", "difficulty": "Easy", "statement": "

Students are asked to stand in non-decreasing order of heights for an annual photo.

\n\n

Return the minimum number of students that must move in order for all students to be standing in non-decreasing order of height.

\n\n

Notice that when a group of students is selected they can reorder in any possible way between themselves and the non selected students remain on their seats.

\n\n

 

\n

Example 1:

\n\n
Input: heights = [1,1,4,2,1,3]\nOutput: 3\nExplanation: \nCurrent array : [1,1,4,2,1,3]\nTarget array  : [1,1,1,2,3,4]\nOn index 2 (0-based) we have 4 vs 1 so we have to move this student.\nOn index 4 (0-based) we have 1 vs 3 so we have to move this student.\nOn index 5 (0-based) we have 3 vs 4 so we have to move this student.\n
\n\n

Example 2:

\n\n
Input: heights = [5,1,2,3,4]\nOutput: 5\n
\n\n

Example 3:

\n\n
Input: heights = [1,2,3,4,5]\nOutput: 0\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= heights.length <= 100
  • \n\t
  • 1 <= heights[i] <= 100
  • \n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int heightChecker(vector &heights)\n {\n\n vector dup = heights;\n sort(dup.begin(), dup.end());\n int count = 0;\n int n = heights.size();\n for (int i = 0; i < n; i++)\n {\n if (dup[i] != heights[i])\n ++count;\n }\n\n return count;\n }\n};"} \ No newline at end of file diff --git a/problems/1108.json b/problems/1108.json deleted file mode 100644 index 29f1c3c..0000000 --- a/problems/1108.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/defanging-an-ip-address", "name": "Defanging an IP Address", "difficulty": "Easy", "statement": "

Given a valid (IPv4) IP address, return a defanged version of that IP address.

\n\n

A defanged IP address replaces every period \".\" with \"[.]\".

\n\n

 

\n

Example 1:

\n
Input: address = \"1.1.1.1\"\nOutput: \"1[.]1[.]1[.]1\"\n

Example 2:

\n
Input: address = \"255.100.50.0\"\nOutput: \"255[.]100[.]50[.]0\"\n
\n

 

\n

Constraints:

\n\n
    \n\t
  • The given address is a valid IPv4 address.
  • \n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n string defangIPaddr(string address)\n {\n\n int a, b, c, d;\n\n char arr[address.length() + 1];\n\n strcpy(arr, address.c_str());\n\n sscanf(arr, \"%d.%d.%d.%d\", &a, &b, &c, &d);\n\n char res_arr[address.length() + 1 + 10];\n\n sprintf(res_arr, \"%d[.]%d[.]%d[.]%d\", a, b, c, d);\n\n string res(res_arr);\n\n return res;\n }\n};"} \ No newline at end of file diff --git a/problems/1122.json b/problems/1122.json deleted file mode 100644 index 6024123..0000000 --- a/problems/1122.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/relative-sort-array", "name": "Relative Sort Array", "difficulty": "Easy", "statement": "

Given two arrays arr1 and arr2, the elements of arr2 are distinct, and all elements in arr2 are also in arr1.

\n\n

Sort the elements of arr1 such that the relative ordering of items in arr1 are the same as in arr2.  Elements that don't appear in arr2 should be placed at the end of arr1 in ascending order.

\n\n

 

\n

Example 1:

\n
Input: arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]\nOutput: [2,2,2,1,4,3,3,9,6,7,19]\n
\n

 

\n

Constraints:

\n\n
    \n\t
  • arr1.length, arr2.length <= 1000
  • \n\t
  • 0 <= arr1[i], arr2[i] <= 1000
  • \n\t
  • Each arr2[i] is distinct.
  • \n\t
  • Each arr2[i] is in arr1.
  • \n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n vector relativeSortArray(vector &arr1, vector &arr2)\n {\n\n int *m1 = (int *)malloc(sizeof(int) * 1001);\n fill_n(m1, 1001, 0);\n\n for (int i : arr1)\n ++m1[i];\n\n int *m2 = (int *)malloc(sizeof(int) * 1001);\n fill_n(m2, 1001, 0);\n\n for (int i : arr2)\n ++m2[i];\n\n vector out;\n vector exc;\n\n for (int i : arr2)\n {\n if (m2[i])\n {\n int count = m1[i];\n for (int j = 0; j < count; ++j)\n {\n out.push_back(i);\n }\n }\n }\n\n for (int i = 0; i <= 1000; ++i)\n {\n if (!m2[i])\n {\n int count = m1[i];\n for (int j = 0; j < count; ++j)\n {\n exc.push_back(i);\n }\n }\n }\n\n sort(exc.begin(), exc.end());\n for (int i : exc)\n out.push_back(i);\n\n return out;\n }\n};"} \ No newline at end of file diff --git a/problems/1160.json b/problems/1160.json deleted file mode 100644 index 082599b..0000000 --- a/problems/1160.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/find-words-that-can-be-formed-by-characters", "name": "Find Words That Can Be Formed by Characters", "difficulty": "Easy", "statement": "

You are given an array of strings words and a string chars.

\n\n

A string is good if it can be formed by characters from chars (each character can only be used once).

\n\n

Return the sum of lengths of all good strings in words.

\n\n

 

\n\n

Example 1:

\n\n
Input: words = [\"cat\",\"bt\",\"hat\",\"tree\"], chars = \"atach\"\nOutput: 6\nExplanation: \nThe strings that can be formed are \"cat\" and \"hat\" so the answer is 3 + 3 = 6.\n
\n\n

Example 2:

\n\n
Input: words = [\"hello\",\"world\",\"leetcode\"], chars = \"welldonehoneyr\"\nOutput: 10\nExplanation: \nThe strings that can be formed are \"hello\" and \"world\" so the answer is 5 + 5 = 10.\n
\n\n

 

\n\n

Note:

\n\n
    \n\t
  1. 1 <= words.length <= 1000
  2. \n\t
  3. 1 <= words[i].length, chars.length <= 100
  4. \n\t
  5. All strings contain lowercase English letters only.
  6. \n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int countCharacters(vector &words, string chars)\n {\n\n int sum = 0;\n int *count = (int *)malloc(sizeof(int) * 26);\n fill_n(count, 26, 0);\n\n for (char ch : chars)\n {\n ++count[(int)(ch)-97];\n }\n\n for (string s : words)\n {\n int *count_t = (int *)malloc(sizeof(int) * 26);\n fill_n(count_t, 26, 0);\n\n for (char ch : s)\n {\n ++count_t[(int)(ch)-97];\n }\n\n int check = 1;\n\n for(int i = 0; i < 26; i++) {\n if (count_t[i] > count[i]) {\n check = 0;\n break;\n }\n }\n\n if (check) sum += s.length();\n }\n return sum;\n }\n};"} \ No newline at end of file diff --git a/problems/1207.json b/problems/1207.json deleted file mode 100644 index 511aad0..0000000 --- a/problems/1207.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/unique-number-of-occurrences", "name": "Unique Number of Occurrences", "difficulty": "Easy", "statement": "

Given an array of integers arr, write a function that returns true if and only if the number of occurrences of each value in the array is unique.

\n\n

 

\n

Example 1:

\n\n
Input: arr = [1,2,2,1,1,3]\nOutput: true\nExplanation: The value 1 has 3 occurrences, 2 has 2 and 3 has 1. No two values have the same number of occurrences.
\n\n

Example 2:

\n\n
Input: arr = [1,2]\nOutput: false\n
\n\n

Example 3:

\n\n
Input: arr = [-3,0,1,-3,1,1,1,-3,10,0]\nOutput: true\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= arr.length <= 1000
  • \n\t
  • -1000 <= arr[i] <= 1000
  • \n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n bool uniqueOccurrences(vector& arr) {\n\n vector count;\n for(int i = 0; i < 2001; i++) {\n count.push_back(0);\n }\n\n for (int i: arr)\n ++count[i+1000];\n\n sort(count.begin(), count.end());\n int n = count.size();\n \n for(int i = 0; i < n - 1; i++) {\n if (count[i] > 0 && count[i] == count[i+1]) return false;\n }\n return true;\n \n }\n};"} \ No newline at end of file diff --git a/problems/1221.json b/problems/1221.json deleted file mode 100644 index 21ed1f6..0000000 --- a/problems/1221.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/split-a-string-in-balanced-strings", "name": "Split a String in Balanced Strings", "difficulty": "Easy", "statement": "

Balanced strings are those who have equal quantity of 'L' and 'R' characters.

\n\n

Given a balanced string s split it in the maximum amount of balanced strings.

\n\n

Return the maximum amount of splitted balanced strings.

\n\n

 

\n

Example 1:

\n\n
Input: s = \"RLRRLLRLRL\"\nOutput: 4\nExplanation: s can be split into \"RL\", \"RRLL\", \"RL\", \"RL\", each substring contains same number of 'L' and 'R'.\n
\n\n

Example 2:

\n\n
Input: s = \"RLLLLRRRLR\"\nOutput: 3\nExplanation: s can be split into \"RL\", \"LLLRRR\", \"LR\", each substring contains same number of 'L' and 'R'.\n
\n\n

Example 3:

\n\n
Input: s = \"LLLLRRRR\"\nOutput: 1\nExplanation: s can be split into \"LLLLRRRR\".\n
\n\n

Example 4:

\n\n
Input: s = \"RLRRRLLRLL\"\nOutput: 2\nExplanation: s can be split into \"RL\", \"RRRLLRLL\", since each substring contains an equal number of 'L' and 'R'\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= s.length <= 1000
  • \n\t
  • s[i] = 'L' or 'R'
  • \n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int balancedStringSplit(string s)\n {\n\n int count = 0;\n int diff = 0;\n int n = s.length();\n\n for(char i: s) {\n if (i == 'L') diff--;\n else diff++;\n\n if (diff == 0){\n count ++;\n }\n }\n\n return count;\n }\n};"} \ No newline at end of file diff --git a/problems/1237.json b/problems/1237.json deleted file mode 100644 index 8f2498e..0000000 --- a/problems/1237.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/find-positive-integer-solution-for-a-given-equation", "name": "Find Positive Integer Solution for a Given Equation", "difficulty": "Easy", "statement": "

Given a function  f(x, y) and a value z, return all positive integer pairs x and y where f(x,y) == z.

\n\n

The function is constantly increasing, i.e.:

\n\n
    \n\t
  • f(x, y) < f(x + 1, y)
  • \n\t
  • f(x, y) < f(x, y + 1)
  • \n
\n\n

The function interface is defined like this: 

\n\n
interface CustomFunction {\npublic:\n  // Returns positive integer f(x, y) for any given positive integer x and y.\n  int f(int x, int y);\n};\n
\n\n

For custom testing purposes you're given an integer function_id and a target z as input, where function_id represent one function from an secret internal list, on the examples you'll know only two functions from the list.  

\n\n

You may return the solutions in any order.

\n\n

 

\n

Example 1:

\n\n
Input: function_id = 1, z = 5\nOutput: [[1,4],[2,3],[3,2],[4,1]]\nExplanation: function_id = 1 means that f(x, y) = x + y
\n\n

Example 2:

\n\n
Input: function_id = 2, z = 5\nOutput: [[1,5],[5,1]]\nExplanation: function_id = 2 means that f(x, y) = x * y\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= function_id <= 9
  • \n\t
  • 1 <= z <= 100
  • \n\t
  • It's guaranteed that the solutions of f(x, y) == z will be on the range 1 <= x, y <= 1000
  • \n\t
  • It's also guaranteed that f(x, y) will fit in 32 bit signed integer if 1 <= x, y <= 1000
  • \n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass CustomFunction\n{\npublic:\n // Returns f(x, y) for any given positive integers x and y.\n // Note that f(x, y) is increasing with respect to both x and y.\n // i.e. f(x, y) < f(x + 1, y), f(x, y) < f(x, y + 1)\n int f(int x, int y);\n};\n\nclass Solution\n{\npublic:\n vector> findSolution(CustomFunction &customfunction, int z)\n {\n\n vector> res;\n for (int x = 1; x <= 1000; x++)\n {\n for (int y = 1; y <= 1000; y++)\n {\n int val = customfunction.f(x, y);\n if (val == z)\n {\n vector r = {x, y};\n res.push_back(r);\n break;\n }\n if (val > z)\n {\n break;\n }\n }\n }\n\n return res;\n }\n};"} \ No newline at end of file diff --git a/problems/1252.json b/problems/1252.json deleted file mode 100644 index 16afb97..0000000 --- a/problems/1252.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/cells-with-odd-values-in-a-matrix", "name": "Cells with Odd Values in a Matrix", "difficulty": "Easy", "statement": "

Given n and m which are the dimensions of a matrix initialized by zeros and given an array indices where indices[i] = [ri, ci]. For each pair of [ri, ci] you have to increment all cells in row ri and column ci by 1.

\n\n

Return the number of cells with odd values in the matrix after applying the increment to all indices.

\n\n

 

\n

Example 1:

\n\"\"\n
Input: n = 2, m = 3, indices = [[0,1],[1,1]]\nOutput: 6\nExplanation: Initial matrix = [[0,0,0],[0,0,0]].\nAfter applying first increment it becomes [[1,2,1],[0,1,0]].\nThe final matrix will be [[1,3,1],[1,3,1]] which contains 6 odd numbers.\n
\n\n

Example 2:

\n\"\"\n
Input: n = 2, m = 2, indices = [[1,1],[0,0]]\nOutput: 0\nExplanation: Final matrix = [[2,2],[2,2]]. There is no odd number in the final matrix.\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= n <= 50
  • \n\t
  • 1 <= m <= 50
  • \n\t
  • 1 <= indices.length <= 100
  • \n\t
  • 0 <= indices[i][0] < n
  • \n\t
  • 0 <= indices[i][1] < m
  • \n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int oddCells(int n, int m, vector> &indices)\n {\n\n int arr[n][m];\n\n for (int i = 0; i < n; i++)\n {\n fill_n(arr[i], m, 0);\n }\n\n for (vector i : indices)\n {\n int r = i[0];\n int c = i[1];\n\n for (int k = 0; k < m; k++)\n {\n ++arr[r][k];\n }\n\n for (int k = 0; k < n; k++)\n {\n ++arr[k][c];\n }\n }\n\n int count = 0;\n\n for(int i = 0; i < n; i++) {\n for(int j: arr[i]) {\n count += j%2;\n }\n }\n\n return count;\n }\n};"} \ No newline at end of file diff --git a/problems/1266.json b/problems/1266.json deleted file mode 100644 index 1fd55e5..0000000 --- a/problems/1266.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/minimum-time-visiting-all-points", "name": "Minimum Time Visiting All Points", "difficulty": "Easy", "statement": "

On a plane there are n points with integer coordinates points[i] = [xi, yi]. Your task is to find the minimum time in seconds to visit all points.

\n\n

You can move according to the next rules:

\n\n
    \n\t
  • In one second always you can either move vertically, horizontally by one unit or diagonally (it means to move one unit vertically and one unit horizontally in one second).
  • \n\t
  • You have to visit the points in the same order as they appear in the array.
  • \n
\n\n

 

\n

Example 1:

\n\"\"\n
Input: points = [[1,1],[3,4],[-1,0]]\nOutput: 7\nExplanation: One optimal path is [1,1] -> [2,2] -> [3,3] -> [3,4] -> [2,3] -> [1,2] -> [0,1] -> [-1,0]   \nTime from [1,1] to [3,4] = 3 seconds \nTime from [3,4] to [-1,0] = 4 seconds\nTotal time = 7 seconds
\n\n

Example 2:

\n\n
Input: points = [[3,2],[-2,2]]\nOutput: 5\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • points.length == n
  • \n\t
  • 1 <= n <= 100
  • \n\t
  • points[i].length == 2
  • \n\t
  • -1000 <= points[i][0], points[i][1] <= 1000
  • \n
\n
", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n int minTimeToVisitAllPoints(vector>& points) {\n\n int cost = 0;\n int n = points.size();\n\n for(int i = 0; i < n - 1; i++) {\n\n vector a = points[i];\n vector b = points[i+1];\n\n cost += max(abs(a[0]-b[0]), abs(a[1]-b[1]));\n\n cout << cost << endl;\n\n }\n return cost;\n \n }\n};"} \ No newline at end of file diff --git a/problems/1281.json b/problems/1281.json deleted file mode 100644 index 25a1736..0000000 --- a/problems/1281.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/subtract-the-product-and-sum-of-digits-of-an-integer", "name": "Subtract the Product and Sum of Digits of an Integer", "difficulty": "Easy", "statement": "
Given an integer number n, return the difference between the product of its digits and the sum of its digits.\n

 

\n

Example 1:

\n\n
Input: n = 234\nOutput: 15 \nExplanation: \nProduct of digits = 2 * 3 * 4 = 24 \nSum of digits = 2 + 3 + 4 = 9 \nResult = 24 - 9 = 15\n
\n\n

Example 2:

\n\n
Input: n = 4421\nOutput: 21\nExplanation: \nProduct of digits = 4 * 4 * 2 * 1 = 32 \nSum of digits = 4 + 4 + 2 + 1 = 11 \nResult = 32 - 11 = 21\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= n <= 10^5
  • \n
\n
", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n int subtractProductAndSum(int n) {\n int sum = 0;\n int prod = 1;\n\n while (n) {\n int rem = n % 10;\n sum += rem;\n prod *= rem;\n n /= 10;\n }\n\n if (sum > prod) {\n return sum - prod;\n }\n return prod - sum;\n }\n};"} \ No newline at end of file diff --git a/problems/1290.json b/problems/1290.json deleted file mode 100644 index bba5f0e..0000000 --- a/problems/1290.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/convert-binary-number-in-a-linked-list-to-integer", "name": "Convert Binary Number in a Linked List to Integer", "difficulty": "Easy", "statement": "

Given head which is a reference node to a singly-linked list. The value of each node in the linked list is either 0 or 1. The linked list holds the binary representation of a number.

\n\n

Return the decimal value of the number in the linked list.

\n\n

 

\n

Example 1:

\n\"\"\n
Input: head = [1,0,1]\nOutput: 5\nExplanation: (101) in base 2 = (5) in base 10\n
\n\n

Example 2:

\n\n
Input: head = [0]\nOutput: 0\n
\n\n

Example 3:

\n\n
Input: head = [1]\nOutput: 1\n
\n\n

Example 4:

\n\n
Input: head = [1,0,0,1,0,0,1,1,1,0,0,0,0,0,0]\nOutput: 18880\n
\n\n

Example 5:

\n\n
Input: head = [0,0]\nOutput: 0\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • The Linked List is not empty.
  • \n\t
  • Number of nodes will not exceed 30.
  • \n\t
  • Each node's value is either 0 or 1.
  • \n
", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n int getDecimalValue(ListNode* head) {\n\n int res = 0;\n\n while(head) {\n res = res*2 + head->val;\n head = head->next;\n }\n\n return res;\n \n }\n};"} \ No newline at end of file diff --git a/problems/1295.json b/problems/1295.json deleted file mode 100644 index 33650dc..0000000 --- a/problems/1295.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/find-numbers-with-even-number-of-digits", "name": "Find Numbers with Even Number of Digits", "difficulty": "Easy", "statement": "
Given an array nums of integers, return how many of them contain an even number of digits.\n

 

\n

Example 1:

\n\n
Input: nums = [12,345,2,6,7896]\nOutput: 2\nExplanation: \n12 contains 2 digits (even number of digits). \n345 contains 3 digits (odd number of digits). \n2 contains 1 digit (odd number of digits). \n6 contains 1 digit (odd number of digits). \n7896 contains 4 digits (even number of digits). \nTherefore only 12 and 7896 contain an even number of digits.\n
\n\n

Example 2:

\n\n
Input: nums = [555,901,482,1771]\nOutput: 1 \nExplanation: \nOnly 1771 contains an even number of digits.\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= nums.length <= 500
  • \n\t
  • 1 <= nums[i] <= 10^5
  • \n
\n
", "language": "cpp", "solution": "#include\n#include\n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n int findNumbers(vector& nums) {\n\n int count = 0;\n for (int i: nums) {\n if ((int)ceil(log10(i+1)) % 2 == 0)\n count ++;\n }\n\n return count;\n \n }\n};"} \ No newline at end of file diff --git a/problems/1299.json b/problems/1299.json deleted file mode 100644 index 7ca646b..0000000 --- a/problems/1299.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/replace-elements-with-greatest-element-on-right-side", "name": "Replace Elements with Greatest Element on Right Side", "difficulty": "Easy", "statement": "

Given an array arr, replace every element in that array with the greatest element among the elements to its right, and replace the last element with -1.

\n\n

After doing so, return the array.

\n\n

 

\n

Example 1:

\n
Input: arr = [17,18,5,4,6,1]\nOutput: [18,6,6,6,1,-1]\n
\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= arr.length <= 10^4
  • \n\t
  • 1 <= arr[i] <= 10^5
  • \n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n vector replaceElements(vector& arr) {\n\n vector res;\n int n = arr.size();\n for (int i: arr) {\n res.push_back(-1);\n }\n\n for(int i = 0; i < n; i++) {\n for(int j = i+1; j < n; j++) {\n if (arr[j] > res[i]) {\n res[i] = arr[j];\n }\n }\n }\n\n return res;\n \n }\n};"} \ No newline at end of file diff --git a/problems/1304.json b/problems/1304.json deleted file mode 100644 index 5b6c57c..0000000 --- a/problems/1304.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/find-n-unique-integers-sum-up-to-zero", "name": "Find N Unique Integers Sum up to Zero", "difficulty": "Easy", "statement": "

Given an integer n, return any array containing n unique integers such that they add up to 0.

\n\n

 

\n

Example 1:

\n\n
Input: n = 5\nOutput: [-7,-1,1,3,4]\nExplanation: These arrays also are accepted [-5,-1,1,2,3] , [-3,-1,2,-2,4].\n
\n\n

Example 2:

\n\n
Input: n = 3\nOutput: [-1,0,1]\n
\n\n

Example 3:

\n\n
Input: n = 1\nOutput: [0]\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= n <= 1000
  • \n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n vector sumZero(int n) {\n\n vector res;\n\n for (int i = 1; i <= (n/2); i++) {\n res.push_back(i);\n res.push_back(i*-1);\n }\n\n if (n%2)\n res.push_back(0);\n\n return res;\n \n }\n};"} \ No newline at end of file diff --git a/problems/1309.json b/problems/1309.json deleted file mode 100644 index e6d63fc..0000000 --- a/problems/1309.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/decrypt-string-from-alphabet-to-integer-mapping", "name": "Decrypt String from Alphabet to Integer Mapping", "difficulty": "Easy", "statement": "

Given a string s formed by digits ('0' - '9') and '#' . We want to map s to English lowercase characters as follows:

\n\n
    \n\t
  • Characters ('a' to 'i') are represented by ('1' to '9') respectively.
  • \n\t
  • Characters ('j' to 'z') are represented by ('10#' to '26#') respectively. 
  • \n
\n\n

Return the string formed after mapping.

\n\n

It's guaranteed that a unique mapping will always exist.

\n\n

 

\n

Example 1:

\n\n
Input: s = \"10#11#12\"\nOutput: \"jkab\"\nExplanation: \"j\" -> \"10#\" , \"k\" -> \"11#\" , \"a\" -> \"1\" , \"b\" -> \"2\".\n
\n\n

Example 2:

\n\n
Input: s = \"1326#\"\nOutput: \"acz\"\n
\n\n

Example 3:

\n\n
Input: s = \"25#\"\nOutput: \"y\"\n
\n\n

Example 4:

\n\n
Input: s = \"12345678910#11#12#13#14#15#16#17#18#19#20#21#22#23#24#25#26#\"\nOutput: \"abcdefghijklmnopqrstuvwxyz\"\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= s.length <= 1000
  • \n\t
  • s[i] only contains digits letters ('0'-'9') and '#' letter.
  • \n\t
  • s will be valid string such that mapping is always possible.
  • \n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n string freqAlphabets(string s) {\n\n stringstream res;\n\n int n = s.length();\n\n for(int i = 0; i < n; i++) {\n if (i+2 < n && s[i+2] == '#') {\n\n int a = (int)s[i] - 48;\n int b = (int)s[i+1] - 48;\n\n char r = (char)(106 + (a-1)*10 + b);\n res << r;\n i += 2;\n }\n else {\n char r = (char)((int)s[i] + 48);\n res << r;\n }\n }\n\n return res.str();\n \n }\n};"} \ No newline at end of file diff --git a/problems/1313.json b/problems/1313.json deleted file mode 100644 index 449d8c5..0000000 --- a/problems/1313.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/decompress-run-length-encoded-list", "name": "Decompress Run-Length Encoded List", "difficulty": "Easy", "statement": "

We are given a list nums of integers representing a list compressed with run-length encoding.

\n\n

Consider each adjacent pair of elements [freq, val] = [nums[2*i], nums[2*i+1]] (with i >= 0).  For each such pair, there are freq elements with value val concatenated in a sublist. Concatenate all the sublists from left to right to generate the decompressed list.

\n\n

Return the decompressed list.

\n\n

 

\n

Example 1:

\n\n
Input: nums = [1,2,3,4]\nOutput: [2,4,4,4]\nExplanation: The first pair [1,2] means we have freq = 1 and val = 2 so we generate the array [2].\nThe second pair [3,4] means we have freq = 3 and val = 4 so we generate [4,4,4].\nAt the end the concatenation [2] + [4,4,4] is [2,4,4,4].\n
\n\n

Example 2:

\n\n
Input: nums = [1,1,2,3]\nOutput: [1,3,3]\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 2 <= nums.length <= 100
  • \n\t
  • nums.length % 2 == 0
  • \n\t
  • 1 <= nums[i] <= 100
  • \n
\n
", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n vector decompressRLElist(vector& nums) {\n\n int n = nums.size();\n\n vector res;\n\n for (int i = 0; i < n / 2; i ++) {\n for(int j = 0; j < nums[2*i]; j ++) {\n res.push_back(nums[2*i + 1]);\n }\n }\n\n return res;\n \n }\n};"} \ No newline at end of file diff --git a/problems/1323.json b/problems/1323.json deleted file mode 100644 index 244d87f..0000000 --- a/problems/1323.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/maximum-69-number", "name": "Maximum 69 Number", "difficulty": "Easy", "statement": "

Given a positive integer num consisting only of digits 6 and 9.

\n\n

Return the maximum number you can get by changing at most one digit (6 becomes 9, and 9 becomes 6).

\n\n

 

\n

Example 1:

\n\n
Input: num = 9669\nOutput: 9969\nExplanation: \nChanging the first digit results in 6669.\nChanging the second digit results in 9969.\nChanging the third digit results in 9699.\nChanging the fourth digit results in 9666. \nThe maximum number is 9969.\n
\n\n

Example 2:

\n\n
Input: num = 9996\nOutput: 9999\nExplanation: Changing the last digit 6 to 9 results in the maximum number.
\n\n

Example 3:

\n\n
Input: num = 9999\nOutput: 9999\nExplanation: It is better not to apply any change.
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= num <= 10^4
  • \n\t
  • num's digits are 6 or 9.
  • \n
", "language": "cpp", "solution": "#include\n#include\n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n int maximum69Number (int num) {\n\n int temp = num;\n \n int mult = 1;\n int val = 0;\n\n while(num) {\n int rem = num%10;\n if (rem == 6) {\n val = 3*mult;\n }\n mult *= 10;\n num /= 10;\n }\n\n return temp + val;\n }\n};"} \ No newline at end of file diff --git a/problems/1337.json b/problems/1337.json deleted file mode 100644 index 7b10641..0000000 --- a/problems/1337.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/the-k-weakest-rows-in-a-matrix", "name": "The K Weakest Rows in a Matrix", "difficulty": "Easy", "statement": "

Given a m * n matrix mat of ones (representing soldiers) and zeros (representing civilians), return the indexes of the k weakest rows in the matrix ordered from the weakest to the strongest.

\n\n

A row i is weaker than row j, if the number of soldiers in row i is less than the number of soldiers in row j, or they have the same number of soldiers but i is less than j. Soldiers are always stand in the frontier of a row, that is, always ones may appear first and then zeros.

\n\n

 

\n

Example 1:

\n\n
Input: mat = \n[[1,1,0,0,0],\n [1,1,1,1,0],\n [1,0,0,0,0],\n [1,1,0,0,0],\n [1,1,1,1,1]], \nk = 3\nOutput: [2,0,3]\nExplanation: \nThe number of soldiers for each row is: \nrow 0 -> 2 \nrow 1 -> 4 \nrow 2 -> 1 \nrow 3 -> 2 \nrow 4 -> 5 \nRows ordered from the weakest to the strongest are [2,0,3,1,4]\n
\n\n

Example 2:

\n\n
Input: mat = \n[[1,0,0,0],\n [1,1,1,1],\n [1,0,0,0],\n [1,0,0,0]], \nk = 2\nOutput: [0,2]\nExplanation: \nThe number of soldiers for each row is: \nrow 0 -> 1 \nrow 1 -> 4 \nrow 2 -> 1 \nrow 3 -> 1 \nRows ordered from the weakest to the strongest are [0,2,3,1]\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • m == mat.length
  • \n\t
  • n == mat[i].length
  • \n\t
  • 2 <= n, m <= 100
  • \n\t
  • 1 <= k <= m
  • \n\t
  • matrix[i][j] is either 0 or 1.
  • \n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n vector kWeakestRows(vector> &mat, int k)\n {\n\n int m = mat.size();\n int n = mat[0].size();\n\n int *arr = (int *)malloc(sizeof(int) * m);\n fill_n(arr, m, 0);\n\n vector output;\n output.reserve(k);\n\n int done = 0;\n\n for (int i = 0; i < n && done < k; i++)\n {\n for (int j = 0; j < m && done < k; j++)\n {\n if (!(mat[j][i] || arr[j]))\n {\n output.push_back(j);\n arr[j] = 1;\n ++done;\n }\n }\n }\n\n if (done != k) {\n for(int i = 0; i < m && done < k; i++) {\n if (!arr[i]) {\n ++done;\n output.push_back(i);\n }\n }\n }\n\n\n return output;\n }\n};"} \ No newline at end of file diff --git a/problems/1342.json b/problems/1342.json deleted file mode 100644 index 83cdf0e..0000000 --- a/problems/1342.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/number-of-steps-to-reduce-a-number-to-zero", "name": "Number of Steps to Reduce a Number to Zero", "difficulty": "Easy", "statement": "

Given a non-negative integer num, return the number of steps to reduce it to zero. If the current number is even, you have to divide it by 2, otherwise, you have to subtract 1 from it.

\n\n

 

\n

Example 1:

\n\n
Input: num = 14\nOutput: 6\nExplanation: \nStep 1) 14 is even; divide by 2 and obtain 7. \nStep 2) 7 is odd; subtract 1 and obtain 6.\nStep 3) 6 is even; divide by 2 and obtain 3. \nStep 4) 3 is odd; subtract 1 and obtain 2. \nStep 5) 2 is even; divide by 2 and obtain 1. \nStep 6) 1 is odd; subtract 1 and obtain 0.\n
\n\n

Example 2:

\n\n
Input: num = 8\nOutput: 4\nExplanation: \nStep 1) 8 is even; divide by 2 and obtain 4. \nStep 2) 4 is even; divide by 2 and obtain 2. \nStep 3) 2 is even; divide by 2 and obtain 1. \nStep 4) 1 is odd; subtract 1 and obtain 0.\n
\n\n

Example 3:

\n\n
Input: num = 123\nOutput: 12\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 0 <= num <= 10^6
  • \n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int numberOfSteps(int num)\n {\n int count = 0;\n\n while (num != 0)\n {\n count++;\n if (num % 2 == 0)\n {\n num /= 2;\n }\n else {\n num -= 1;\n }\n }\n\n return count;\n }\n};"} \ No newline at end of file diff --git a/problems/1351.json b/problems/1351.json deleted file mode 100644 index 5be8a5e..0000000 --- a/problems/1351.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/count-negative-numbers-in-a-sorted-matrix", "name": "Count Negative Numbers in a Sorted Matrix", "difficulty": "Easy", "statement": "

Given a m * n matrix grid which is sorted in non-increasing order both row-wise and column-wise. 

\n\n

Return the number of negative numbers in grid.

\n\n

 

\n

Example 1:

\n\n
Input: grid = [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]]\nOutput: 8\nExplanation: There are 8 negatives number in the matrix.\n
\n\n

Example 2:

\n\n
Input: grid = [[3,2],[1,0]]\nOutput: 0\n
\n\n

Example 3:

\n\n
Input: grid = [[1,-1],[-1,-1]]\nOutput: 3\n
\n\n

Example 4:

\n\n
Input: grid = [[-1]]\nOutput: 1\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • m == grid.length
  • \n\t
  • n == grid[i].length
  • \n\t
  • 1 <= m, n <= 100
  • \n\t
  • -100 <= grid[i][j] <= 100
  • \n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n int countNegatives(vector>& grid) {\n\n int count = 0;\n\n for(vector x: grid) {\n for(int a: x) {\n if (a < 0) ++count;\n }\n }\n return count;\n \n }\n};"} \ No newline at end of file diff --git a/problems/1356.json b/problems/1356.json deleted file mode 100644 index 4521dba..0000000 --- a/problems/1356.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/sort-integers-by-the-number-of-1-bits", "name": "Sort Integers by The Number of 1 Bits", "difficulty": "Easy", "statement": "

Given an integer array arr. You have to sort the integers in the array in ascending order by the number of 1's in their binary representation and in case of two or more integers have the same number of 1's you have to sort them in ascending order.

\n\n

Return the sorted array.

\n\n

 

\n

Example 1:

\n\n
Input: arr = [0,1,2,3,4,5,6,7,8]\nOutput: [0,1,2,4,8,3,5,6,7]\nExplantion: [0] is the only integer with 0 bits.\n[1,2,4,8] all have 1 bit.\n[3,5,6] have 2 bits.\n[7] has 3 bits.\nThe sorted array by bits is [0,1,2,4,8,3,5,6,7]\n
\n\n

Example 2:

\n\n
Input: arr = [1024,512,256,128,64,32,16,8,4,2,1]\nOutput: [1,2,4,8,16,32,64,128,256,512,1024]\nExplantion: All integers have 1 bit in the binary representation, you should just sort them in ascending order.\n
\n\n

Example 3:

\n\n
Input: arr = [10000,10000]\nOutput: [10000,10000]\n
\n\n

Example 4:

\n\n
Input: arr = [2,3,5,7,11,13,17,19]\nOutput: [2,3,5,17,7,11,13,19]\n
\n\n

Example 5:

\n\n
Input: arr = [10,100,1000,10000]\nOutput: [10,100,10000,1000]\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= arr.length <= 500
  • \n\t
  • 0 <= arr[i] <= 10^4
  • \n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nint one_count(int a) {\n if (a == 0) return 0;\n return a % 2 + one_count(a / 2);\n}\n\nbool comp(int a, int b)\n{\n int c = one_count(a);\n int d = one_count(b);\n if (c == d) {\n return a < b;\n }\n return c < d;\n}\n\nclass Solution\n{\npublic:\n vector sortByBits(vector &arr)\n {\n sort(arr.begin(), arr.end());\n sort(arr.begin(), arr.end(), comp);\n return arr;\n }\n};"} \ No newline at end of file diff --git a/problems/1365.json b/problems/1365.json deleted file mode 100644 index 81b0a7a..0000000 --- a/problems/1365.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/how-many-numbers-are-smaller-than-the-current-number", "name": "How Many Numbers Are Smaller Than the Current Number", "difficulty": "Easy", "statement": "

Given the array nums, for each nums[i] find out how many numbers in the array are smaller than it. That is, for each nums[i] you have to count the number of valid j's such that j != i and nums[j] < nums[i].

\n\n

Return the answer in an array.

\n\n

 

\n

Example 1:

\n\n
Input: nums = [8,1,2,2,3]\nOutput: [4,0,1,1,3]\nExplanation: \nFor nums[0]=8 there exist four smaller numbers than it (1, 2, 2 and 3). \nFor nums[1]=1 does not exist any smaller number than it.\nFor nums[2]=2 there exist one smaller number than it (1). \nFor nums[3]=2 there exist one smaller number than it (1). \nFor nums[4]=3 there exist three smaller numbers than it (1, 2 and 2).\n
\n\n

Example 2:

\n\n
Input: nums = [6,5,4,8]\nOutput: [2,1,0,3]\n
\n\n

Example 3:

\n\n
Input: nums = [7,7,7,7]\nOutput: [0,0,0,0]\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 2 <= nums.length <= 500
  • \n\t
  • 0 <= nums[i] <= 100
  • \n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n vector smallerNumbersThanCurrent(vector &nums)\n {\n\n vector temp = nums;\n\n sort(temp.begin(), temp.end());\n\n int first_pos[101];\n fill_n(first_pos, 101, -1);\n\n int n = temp.size();\n\n for (int i = 0; i < n; i++) {\n if (first_pos[temp[i]] == -1) {\n first_pos[temp[i]] = i;\n }\n }\n\n vector res;\n\n for (int i = 0; i < n; i++) {\n res.push_back(first_pos[nums[i]]);\n }\n\n return res;\n\n\n }\n};"} \ No newline at end of file diff --git a/problems/1370.json b/problems/1370.json deleted file mode 100644 index 9da7c85..0000000 --- a/problems/1370.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/increasing-decreasing-string", "name": "Increasing Decreasing String", "difficulty": "Easy", "statement": "

Given a string s. You should re-order the string using the following algorithm:

\n\n
    \n\t
  1. Pick the smallest character from s and append it to the result.
  2. \n\t
  3. Pick the smallest character from s which is greater than the last appended character to the result and append it.
  4. \n\t
  5. Repeat step 2 until you cannot pick more characters.
  6. \n\t
  7. Pick the largest character from s and append it to the result.
  8. \n\t
  9. Pick the largest character from s which is smaller than the last appended character to the result and append it.
  10. \n\t
  11. Repeat step 5 until you cannot pick more characters.
  12. \n\t
  13. Repeat the steps from 1 to 6 until you pick all characters from s.
  14. \n
\n\n

In each step, If the smallest or the largest character appears more than once you can choose any occurrence and append it to the result.

\n\n

Return the result string after sorting s with this algorithm.

\n\n

 

\n

Example 1:

\n\n
Input: s = \"aaaabbbbcccc\"\nOutput: \"abccbaabccba\"\nExplanation: After steps 1, 2 and 3 of the first iteration, result = \"abc\"\nAfter steps 4, 5 and 6 of the first iteration, result = \"abccba\"\nFirst iteration is done. Now s = \"aabbcc\" and we go back to step 1\nAfter steps 1, 2 and 3 of the second iteration, result = \"abccbaabc\"\nAfter steps 4, 5 and 6 of the second iteration, result = \"abccbaabccba\"\n
\n\n

Example 2:

\n\n
Input: s = \"rat\"\nOutput: \"art\"\nExplanation: The word \"rat\" becomes \"art\" after re-ordering it with the mentioned algorithm.\n
\n\n

Example 3:

\n\n
Input: s = \"leetcode\"\nOutput: \"cdelotee\"\n
\n\n

Example 4:

\n\n
Input: s = \"ggggggg\"\nOutput: \"ggggggg\"\n
\n\n

Example 5:

\n\n
Input: s = \"spo\"\nOutput: \"ops\"\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= s.length <= 500
  • \n\t
  • s contains only lower-case English letters.
  • \n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n string sortString(string s) {\n\n int n = s.length();\n\n int count[26];\n fill_n(count, 26, 0);\n\n stringstream ss;\n\n for(char i: s) {\n ++count[(int)(i) - 97];\n }\n\n int max_count = -1;\n for(int i: count) {\n max_count = max_count > i ? max_count : i;\n }\n\n for (int step = 1; step <= max_count; ++step ) {\n\n for (int i = 0; i < 26; i++) {\n if (count[i] >= step) {\n ss << (char)(i + 97);\n }\n }\n\n ++step;\n\n for (int i = 25; i >= 0; i--) {\n if (count[i] >= step) {\n ss << (char)(i + 97);\n }\n }\n\n }\n\n return ss.str();\n\n }\n};"} \ No newline at end of file diff --git a/problems/1374.json b/problems/1374.json deleted file mode 100644 index da05f6d..0000000 --- a/problems/1374.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/generate-a-string-with-characters-that-have-odd-counts", "name": "Generate a String With Characters That Have Odd Counts", "difficulty": "Easy", "statement": "

Given an integer n, return a string with n characters such that each character in such string occurs an odd number of times.

\n\n

The returned string must contain only lowercase English letters. If there are multiples valid strings, return any of them.  

\n\n

 

\n

Example 1:

\n\n
Input: n = 4\nOutput: \"pppz\"\nExplanation: \"pppz\" is a valid string since the character 'p' occurs three times and the character 'z' occurs once. Note that there are many other valid strings such as \"ohhh\" and \"love\".\n
\n\n

Example 2:

\n\n
Input: n = 2\nOutput: \"xy\"\nExplanation: \"xy\" is a valid string since the characters 'x' and 'y' occur once. Note that there are many other valid strings such as \"ag\" and \"ur\".\n
\n\n

Example 3:

\n\n
Input: n = 7\nOutput: \"holasss\"\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= n <= 500
  • \n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n string generateTheString(int n)\n {\n\n stringstream ss;\n\n if (n % 2)\n {\n for (int i = 0; i < n; i++)\n {\n ss << 'a';\n }\n }\n else\n {\n for (int i = 0; i < n - 1; i++)\n {\n ss << 'a';\n }\n ss << 'b';\n }\n\n return ss.str();\n }\n};"} \ No newline at end of file diff --git a/problems/1380.json b/problems/1380.json deleted file mode 100644 index bc241f9..0000000 --- a/problems/1380.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/lucky-numbers-in-a-matrix", "name": "Lucky Numbers in a Matrix", "difficulty": "Easy", "statement": "

Given a m * n matrix of distinct numbers, return all lucky numbers in the matrix in any order.

\n\n

A lucky number is an element of the matrix such that it is the minimum element in its row and maximum in its column.

\n\n

 

\n

Example 1:

\n\n
Input: matrix = [[3,7,8],[9,11,13],[15,16,17]]\nOutput: [15]\nExplanation: 15 is the only lucky number since it is the minimum in its row and the maximum in its column\n
\n\n

Example 2:

\n\n
Input: matrix = [[1,10,4,2],[9,3,8,7],[15,16,17,12]]\nOutput: [12]\nExplanation: 12 is the only lucky number since it is the minimum in its row and the maximum in its column.\n
\n\n

Example 3:

\n\n
Input: matrix = [[7,8],[1,2]]\nOutput: [7]\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • m == mat.length
  • \n\t
  • n == mat[i].length
  • \n\t
  • 1 <= n, m <= 50
  • \n\t
  • 1 <= matrix[i][j] <= 10^5.
  • \n\t
  • All elements in the matrix are distinct.
  • \n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n vector luckyNumbers(vector> &matrix)\n {\n\n int m = matrix.size();\n int n = matrix[0].size();\n\n int min_row[m];\n int max_col[n];\n\n fill_n(min_row, m, 1000000);\n fill_n(max_col, n, 0);\n\n for (int i = 0; i < m; i++)\n for (int j = 0; j < n; j++)\n {\n min_row[i] = min_row[i] < matrix[i][j] ? min_row[i] : matrix[i][j];\n max_col[j] = max_col[j] > matrix[i][j] ? max_col[j] : matrix[i][j];\n }\n\n vector res;\n\n for (int i = 0; i < m; i++)\n for (int j = 0; j < n; j++)\n if (min_row[i] == matrix[i][j] && max_col[j] == matrix[i][j])\n res.push_back(matrix[i][j]);\n \n return res;\n }\n};"} \ No newline at end of file diff --git a/problems/1389.json b/problems/1389.json deleted file mode 100644 index 7f34a99..0000000 --- a/problems/1389.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/create-target-array-in-the-given-order", "name": "Create Target Array in the Given Order", "difficulty": "Easy", "statement": "

Given two arrays of integers nums and index. Your task is to create target array under the following rules:

\n\n
    \n\t
  • Initially target array is empty.
  • \n\t
  • From left to right read nums[i] and index[i], insert at index index[i] the value nums[i] in target array.
  • \n\t
  • Repeat the previous step until there are no elements to read in nums and index.
  • \n
\n\n

Return the target array.

\n\n

It is guaranteed that the insertion operations will be valid.

\n\n

 

\n

Example 1:

\n\n
Input: nums = [0,1,2,3,4], index = [0,1,2,2,1]\nOutput: [0,4,1,3,2]\nExplanation:\nnums       index     target\n0            0        [0]\n1            1        [0,1]\n2            2        [0,1,2]\n3            2        [0,1,3,2]\n4            1        [0,4,1,3,2]\n
\n\n

Example 2:

\n\n
Input: nums = [1,2,3,4,0], index = [0,1,2,3,0]\nOutput: [0,1,2,3,4]\nExplanation:\nnums       index     target\n1            0        [1]\n2            1        [1,2]\n3            2        [1,2,3]\n4            3        [1,2,3,4]\n0            0        [0,1,2,3,4]\n
\n\n

Example 3:

\n\n
Input: nums = [1], index = [0]\nOutput: [1]\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= nums.length, index.length <= 100
  • \n\t
  • nums.length == index.length
  • \n\t
  • 0 <= nums[i] <= 100
  • \n\t
  • 0 <= index[i] <= i
  • \n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n vector createTargetArray(vector &nums, vector &index)\n {\n\n int n = nums.size();\n\n vector res;\n\n for (int i = 0; i < n; i++)\n {\n res.insert(res.begin() + index[i], nums[i]);\n }\n\n return res;\n }\n};"} \ No newline at end of file diff --git a/problems/1403.json b/problems/1403.json deleted file mode 100644 index 6b2ae76..0000000 --- a/problems/1403.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/minimum-subsequence-in-non-increasing-order", "name": "Minimum Subsequence in Non-Increasing Order", "difficulty": "Easy", "statement": "

Given the array nums, obtain a subsequence of the array whose sum of elements is strictly greater than the sum of the non included elements in such subsequence. 

\n\n

If there are multiple solutions, return the subsequence with minimum size and if there still exist multiple solutions, return the subsequence with the maximum total sum of all its elements. A subsequence of an array can be obtained by erasing some (possibly zero) elements from the array. 

\n\n

Note that the solution with the given constraints is guaranteed to be unique. Also return the answer sorted in non-increasing order.

\n\n

 

\n

Example 1:

\n\n
Input: nums = [4,3,10,9,8]\nOutput: [10,9] \nExplanation: The subsequences [10,9] and [10,8] are minimal such that the sum of their elements is strictly greater than the sum of elements not included, however, the subsequence [10,9] has the maximum total sum of its elements. \n
\n\n

Example 2:

\n\n
Input: nums = [4,4,7,6,7]\nOutput: [7,7,6] \nExplanation: The subsequence [7,7] has the sum of its elements equal to 14 which is not strictly greater than the sum of elements not included (14 = 4 + 4 + 6). Therefore, the subsequence [7,6,7] is the minimal satisfying the conditions. Note the subsequence has to returned in non-decreasing order.  \n
\n\n

Example 3:

\n\n
Input: nums = [6]\nOutput: [6]\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= nums.length <= 500
  • \n\t
  • 1 <= nums[i] <= 100
  • \n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n vector minSubsequence(vector& nums) {\n\n sort(nums.begin(), nums.end());\n reverse(nums.begin(), nums.end());\n int sum = 0;\n int totalsum = 0;\n vector res;\n\n for(int i: nums)\n totalsum += i;\n\n for (int i: nums) {\n sum += i;\n res.push_back(i);\n if (sum > totalsum / 2) {\n break;\n }\n }\n\n return res;\n \n }\n};"} \ No newline at end of file diff --git a/problems/1431.json b/problems/1431.json deleted file mode 100644 index 9cd6967..0000000 --- a/problems/1431.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/kids-with-the-greatest-number-of-candies", "name": "Kids With the Greatest Number of Candies", "difficulty": "Easy", "statement": "

Given the array candies and the integer extraCandies, where candies[i] represents the number of candies that the ith kid has.

\n\n

For each kid check if there is a way to distribute extraCandies among the kids such that he or she can have the greatest number of candies among them. Notice that multiple kids can have the greatest number of candies.

\n\n

 

\n

Example 1:

\n\n
Input: candies = [2,3,5,1,3], extraCandies = 3\nOutput: [true,true,true,false,true] \nExplanation: \nKid 1 has 2 candies and if he or she receives all extra candies (3) will have 5 candies --- the greatest number of candies among the kids. \nKid 2 has 3 candies and if he or she receives at least 2 extra candies will have the greatest number of candies among the kids. \nKid 3 has 5 candies and this is already the greatest number of candies among the kids. \nKid 4 has 1 candy and even if he or she receives all extra candies will only have 4 candies. \nKid 5 has 3 candies and if he or she receives at least 2 extra candies will have the greatest number of candies among the kids. \n
\n\n

Example 2:

\n\n
Input: candies = [4,2,1,1,2], extraCandies = 1\nOutput: [true,false,false,false,false] \nExplanation: There is only 1 extra candy, therefore only kid 1 will have the greatest number of candies among the kids regardless of who takes the extra candy.\n
\n\n

Example 3:

\n\n
Input: candies = [12,1,12], extraCandies = 10\nOutput: [true,false,true]\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 2 <= candies.length <= 100
  • \n\t
  • 1 <= candies[i] <= 100
  • \n\t
  • 1 <= extraCandies <= 50
  • \n
", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n vector kidsWithCandies(vector& candies, int extraCandies) {\n vector res;\n long int max = 0;\n for(int i = 0; i < candies.size(); i++) {\n max = max > candies[i] ? max : candies[i];\n }\n for(int i: candies) {\n res.push_back(i + extraCandies >= max);\n }\n \n return res;\n }\n};"} \ No newline at end of file diff --git a/problems/1436.json b/problems/1436.json deleted file mode 100644 index 01d4ad8..0000000 --- a/problems/1436.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/destination-city", "name": "Destination City", "difficulty": "Easy", "statement": "

You are given the array paths, where paths[i] = [cityAi, cityBi] means there exists a direct path going from cityAi to cityBi. Return the destination city, that is, the city without any path outgoing to another city.

\n\n

It is guaranteed that the graph of paths forms a line without any loop, therefore, there will be exactly one destination city.

\n\n

 

\n

Example 1:

\n\n
Input: paths = [[\"London\",\"New York\"],[\"New York\",\"Lima\"],[\"Lima\",\"Sao Paulo\"]]\nOutput: \"Sao Paulo\" \nExplanation: Starting at \"London\" city you will reach \"Sao Paulo\" city which is the destination city. Your trip consist of: \"London\" -> \"New York\" -> \"Lima\" -> \"Sao Paulo\".\n
\n\n

Example 2:

\n\n
Input: paths = [[\"B\",\"C\"],[\"D\",\"B\"],[\"C\",\"A\"]]\nOutput: \"A\"\nExplanation: All possible trips are: \n\"D\" -> \"B\" -> \"C\" -> \"A\". \n\"B\" -> \"C\" -> \"A\". \n\"C\" -> \"A\". \n\"A\". \nClearly the destination city is \"A\".\n
\n\n

Example 3:

\n\n
Input: paths = [[\"A\",\"Z\"]]\nOutput: \"Z\"\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= paths.length <= 100
  • \n\t
  • paths[i].length == 2
  • \n\t
  • 1 <= cityAi.length, cityBi.length <= 10
  • \n\t
  • cityA!= cityBi
  • \n\t
  • All strings consist of lowercase and uppercase English letters and the space character.
  • \n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n string destCity(vector>& paths) {\n \n\n set all;\n for (vector path: paths) {\n all.insert(path[0]);\n all.insert(path[1]);\n }\n\n set outonly;\n for (vector path: paths) {\n outonly.insert(path[0]);\n }\n\n string city;\n\n for(string c: all) {\n if (outonly.find(c) == outonly.end()) {\n city = c;\n break;\n }\n }\n\n return city;\n\n }\n};"} \ No newline at end of file diff --git a/problems/1441.json b/problems/1441.json deleted file mode 100644 index 2a14a66..0000000 --- a/problems/1441.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/build-an-array-with-stack-operations", "name": "Build an Array With Stack Operations", "difficulty": "Easy", "statement": "

Given an array target and an integer n. In each iteration, you will read a number from  list = {1,2,3..., n}.

\n\n

Build the target array using the following operations:

\n\n
    \n\t
  • Push: Read a new element from the beginning list, and push it in the array.
  • \n\t
  • Pop: delete the last element of the array.
  • \n\t
  • If the target array is already built, stop reading more elements.
  • \n
\n\n

You are guaranteed that the target array is strictly increasing, only containing numbers between 1 to n inclusive.

\n\n

Return the operations to build the target array.

\n\n

You are guaranteed that the answer is unique.

\n\n

 

\n

Example 1:

\n\n
Input: target = [1,3], n = 3\nOutput: [\"Push\",\"Push\",\"Pop\",\"Push\"]\nExplanation: \nRead number 1 and automatically push in the array -> [1]\nRead number 2 and automatically push in the array then Pop it -> [1]\nRead number 3 and automatically push in the array -> [1,3]\n
\n\n

Example 2:

\n\n
Input: target = [1,2,3], n = 3\nOutput: [\"Push\",\"Push\",\"Push\"]\n
\n\n

Example 3:

\n\n
Input: target = [1,2], n = 4\nOutput: [\"Push\",\"Push\"]\nExplanation: You only need to read the first 2 numbers and stop.\n
\n\n

Example 4:

\n\n
Input: target = [2,3,4], n = 4\nOutput: [\"Push\",\"Pop\",\"Push\",\"Push\",\"Push\"]\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= target.length <= 100
  • \n\t
  • 1 <= target[i] <= 100
  • \n\t
  • 1 <= n <= 100
  • \n\t
  • target is strictly increasing.
  • \n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n vector buildArray(vector &target, int n)\n {\n\n string push = \"Push\";\n string pop = \"Pop\";\n\n vector res;\n\n int index = 0;\n\n for (int num = 1; index < target.size() && num <= n; ++num)\n {\n res.push_back(push);\n if (num == target[index])\n {\n ++index;\n }\n else\n {\n res.push_back(pop);\n }\n }\n\n return res;\n }\n};"} \ No newline at end of file diff --git a/problems/1450.json b/problems/1450.json deleted file mode 100644 index ea65211..0000000 --- a/problems/1450.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/number-of-students-doing-homework-at-a-given-time", "name": "Number of Students Doing Homework at a Given Time", "difficulty": "Easy", "statement": "

Given two integer arrays startTime and endTime and given an integer queryTime.

\n\n

The ith student started doing their homework at the time startTime[i] and finished it at time endTime[i].

\n\n

Return the number of students doing their homework at time queryTime. More formally, return the number of students where queryTime lays in the interval [startTime[i], endTime[i]] inclusive.

\n\n

 

\n

Example 1:

\n\n
Input: startTime = [1,2,3], endTime = [3,2,7], queryTime = 4\nOutput: 1\nExplanation: We have 3 students where:\nThe first student started doing homework at time 1 and finished at time 3 and wasn't doing anything at time 4.\nThe second student started doing homework at time 2 and finished at time 2 and also wasn't doing anything at time 4.\nThe third student started doing homework at time 3 and finished at time 7 and was the only student doing homework at time 4.\n
\n\n

Example 2:

\n\n
Input: startTime = [4], endTime = [4], queryTime = 4\nOutput: 1\nExplanation: The only student was doing their homework at the queryTime.\n
\n\n

Example 3:

\n\n
Input: startTime = [4], endTime = [4], queryTime = 5\nOutput: 0\n
\n\n

Example 4:

\n\n
Input: startTime = [1,1,1,1], endTime = [1,3,2,4], queryTime = 7\nOutput: 0\n
\n\n

Example 5:

\n\n
Input: startTime = [9,8,7,6,5,4,3,2,1], endTime = [10,10,10,10,10,10,10,10,10], queryTime = 5\nOutput: 5\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • startTime.length == endTime.length
  • \n\t
  • 1 <= startTime.length <= 100
  • \n\t
  • 1 <= startTime[i] <= endTime[i] <= 1000
  • \n\t
  • 1 <= queryTime <= 1000
  • \n
\n
", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n int busyStudent(vector& startTime, vector& endTime, int queryTime) {\n\n int count = 0;\n\n for(int i = 0; i < startTime.size(); i++) {\n if (queryTime >= startTime[i] && queryTime <= endTime[i]) ++count;\n }\n\n return count;\n \n }\n};"} \ No newline at end of file diff --git a/problems/1464.json b/problems/1464.json deleted file mode 100644 index 9b87d80..0000000 --- a/problems/1464.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/maximum-product-of-two-elements-in-an-array", "name": "Maximum Product of Two Elements in an Array", "difficulty": "Easy", "statement": "
Given the array of integers nums, you will choose two different indices i and j of that array. Return the maximum value of (nums[i]-1)*(nums[j]-1).\n

 

\n

Example 1:

\n\n
Input: nums = [3,4,5,2]\nOutput: 12 \nExplanation: If you choose the indices i=1 and j=2 (indexed from 0), you will get the maximum value, that is, (nums[1]-1)*(nums[2]-1) = (4-1)*(5-1) = 3*4 = 12. \n
\n\n

Example 2:

\n\n
Input: nums = [1,5,4,5]\nOutput: 16\nExplanation: Choosing the indices i=1 and j=3 (indexed from 0), you will get the maximum value of (5-1)*(5-1) = 16.\n
\n\n

Example 3:

\n\n
Input: nums = [3,7]\nOutput: 12\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 2 <= nums.length <= 500
  • \n\t
  • 1 <= nums[i] <= 10^3
  • \n
\n
", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n int maxProduct(vector& nums) {\n\n sort(nums.begin(), nums.end()); \n int n = nums.size();\n\n return (nums[n-1]-1)*(nums[n-2]-1);\n }\n};"} \ No newline at end of file diff --git a/problems/1470.json b/problems/1470.json deleted file mode 100644 index f4946c3..0000000 --- a/problems/1470.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/shuffle-the-array", "name": "Shuffle the Array", "difficulty": "Easy", "statement": "

Given the array nums consisting of 2n elements in the form [x1,x2,...,xn,y1,y2,...,yn].

\n\n

Return the array in the form [x1,y1,x2,y2,...,xn,yn].

\n\n

 

\n

Example 1:

\n\n
Input: nums = [2,5,1,3,4,7], n = 3\nOutput: [2,3,5,4,1,7] \nExplanation: Since x1=2, x2=5, x3=1, y1=3, y2=4, y3=7 then the answer is [2,3,5,4,1,7].\n
\n\n

Example 2:

\n\n
Input: nums = [1,2,3,4,4,3,2,1], n = 4\nOutput: [1,4,2,3,3,2,4,1]\n
\n\n

Example 3:

\n\n
Input: nums = [1,1,2,2], n = 2\nOutput: [1,2,1,2]\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= n <= 500
  • \n\t
  • nums.length == 2n
  • \n\t
  • 1 <= nums[i] <= 10^3
  • \n
", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n vector shuffle(vector& nums, int n) {\n vector res;\n for(int i = 0; i < n; i++) {\n res.push_back(nums[i]);\n res.push_back(nums[i + n]);\n }\n return res;\n }\n};"} \ No newline at end of file diff --git a/problems/1475.json b/problems/1475.json deleted file mode 100644 index 1c007e1..0000000 --- a/problems/1475.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/final-prices-with-a-special-discount-in-a-shop", "name": "Final Prices With a Special Discount in a Shop", "difficulty": "Easy", "statement": "

Given the array prices where prices[i] is the price of the ith item in a shop. There is a special discount for items in the shop, if you buy the ith item, then you will receive a discount equivalent to prices[j] where j is the minimum index such that j > i and prices[j] <= prices[i], otherwise, you will not receive any discount at all.

\n\n

Return an array where the ith element is the final price you will pay for the ith item of the shop considering the special discount.

\n\n

 

\n

Example 1:

\n\n
Input: prices = [8,4,6,2,3]\nOutput: [4,2,4,2,3]\nExplanation: \nFor item 0 with price[0]=8 you will receive a discount equivalent to prices[1]=4, therefore, the final price you will pay is 8 - 4 = 4. \nFor item 1 with price[1]=4 you will receive a discount equivalent to prices[3]=2, therefore, the final price you will pay is 4 - 2 = 2. \nFor item 2 with price[2]=6 you will receive a discount equivalent to prices[3]=2, therefore, the final price you will pay is 6 - 2 = 4. \nFor items 3 and 4 you will not receive any discount at all.\n
\n\n

Example 2:

\n\n
Input: prices = [1,2,3,4,5]\nOutput: [1,2,3,4,5]\nExplanation: In this case, for all items, you will not receive any discount at all.\n
\n\n

Example 3:

\n\n
Input: prices = [10,1,1,6]\nOutput: [9,0,1,6]\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= prices.length <= 500
  • \n\t
  • 1 <= prices[i] <= 10^3
  • \n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n vector finalPrices(vector &prices)\n {\n\n int n = prices.size();\n\n for (int i = 0; i < n; i++)\n {\n for (int j = i + 1; j < n; j++)\n {\n if (prices[j] <= prices[i])\n {\n prices[i] -= prices[j];\n break;\n }\n }\n }\n\n return prices;\n }\n};"} \ No newline at end of file diff --git a/problems/1480.json b/problems/1480.json deleted file mode 100644 index cf68d13..0000000 --- a/problems/1480.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/running-sum-of-1d-array", "name": "Running Sum of 1d Array", "difficulty": "Easy", "statement": "

Given an array nums. We define a running sum of an array as runningSum[i] = sum(nums[0]\u2026nums[i]).

\n\n

Return the running sum of nums.

\n\n

 

\n

Example 1:

\n\n
Input: nums = [1,2,3,4]\nOutput: [1,3,6,10]\nExplanation: Running sum is obtained as follows: [1, 1+2, 1+2+3, 1+2+3+4].
\n\n

Example 2:

\n\n
Input: nums = [1,1,1,1,1]\nOutput: [1,2,3,4,5]\nExplanation: Running sum is obtained as follows: [1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1].
\n\n

Example 3:

\n\n
Input: nums = [3,1,2,10,1]\nOutput: [3,4,6,16,17]\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= nums.length <= 1000
  • \n\t
  • -10^6 <= nums[i] <= 10^6
  • \n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n vector runningSum(vector &nums)\n {\n\n vector res;\n\n res.push_back(nums[0]);\n\n int sum = res[0];\n\n for (int i = 1; i < nums.size(); i++)\n {\n sum += nums[i];\n res.push_back(sum);\n }\n\n return res;\n }\n};"} \ No newline at end of file diff --git a/problems/1486.json b/problems/1486.json deleted file mode 100644 index 1a91592..0000000 --- a/problems/1486.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/xor-operation-in-an-array", "name": "XOR Operation in an Array", "difficulty": "Easy", "statement": "

Given an integer n and an integer start.

\n\n

Define an array nums where nums[i] = start + 2*i (0-indexed) and n == nums.length.

\n\n

Return the bitwise XOR of all elements of nums.

\n\n

 

\n

Example 1:

\n\n
Input: n = 5, start = 0\nOutput: 8\nExplanation: Array nums is equal to [0, 2, 4, 6, 8] where (0 ^ 2 ^ 4 ^ 6 ^ 8) = 8.\nWhere \"^\" corresponds to bitwise XOR operator.\n
\n\n

Example 2:

\n\n
Input: n = 4, start = 3\nOutput: 8\nExplanation: Array nums is equal to [3, 5, 7, 9] where (3 ^ 5 ^ 7 ^ 9) = 8.
\n\n

Example 3:

\n\n
Input: n = 1, start = 7\nOutput: 7\n
\n\n

Example 4:

\n\n
Input: n = 10, start = 5\nOutput: 2\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= n <= 1000
  • \n\t
  • 0 <= start <= 1000
  • \n\t
  • n == nums.length
  • \n
", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n int xorOperation(int n, int start) {\n int res = start;\n\n for(int i = 1; i < n; i++) {\n res ^= (start + 2 * i);\n }\n\n return res;\n }\n};"} \ No newline at end of file diff --git a/problems/1491.json b/problems/1491.json deleted file mode 100644 index 107624a..0000000 --- a/problems/1491.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/average-salary-excluding-the-minimum-and-maximum-salary", "name": "Average Salary Excluding the Minimum and Maximum Salary", "difficulty": "Easy", "statement": "

Given an array of unique integers salary where salary[i] is the salary of the employee i.

\n\n

Return the average salary of employees excluding the minimum and maximum salary.

\n\n

 

\n

Example 1:

\n\n
Input: salary = [4000,3000,1000,2000]\nOutput: 2500.00000\nExplanation: Minimum salary and maximum salary are 1000 and 4000 respectively.\nAverage salary excluding minimum and maximum salary is (2000+3000)/2= 2500\n
\n\n

Example 2:

\n\n
Input: salary = [1000,2000,3000]\nOutput: 2000.00000\nExplanation: Minimum salary and maximum salary are 1000 and 3000 respectively.\nAverage salary excluding minimum and maximum salary is (2000)/1= 2000\n
\n\n

Example 3:

\n\n
Input: salary = [6000,5000,4000,3000,2000,1000]\nOutput: 3500.00000\n
\n\n

Example 4:

\n\n
Input: salary = [8000,9000,2000,3000,6000,1000]\nOutput: 4750.00000\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 3 <= salary.length <= 100
  • \n\t
  • 10^3 <= salary[i] <= 10^6
  • \n\t
  • salary[i] is unique.
  • \n\t
  • Answers within 10^-5 of the actual value will be accepted as correct.
  • \n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n double average(vector &salary)\n {\n sort(salary.begin(), salary.end());\n int n = salary.size();\n int sum = 0;\n for (double i : salary)\n sum += i;\n sum -= salary[0];\n sum -= salary[n - 1];\n\n return (double)(sum / (double)(n - 2));\n }\n};"} \ No newline at end of file diff --git a/problems/1502.json b/problems/1502.json deleted file mode 100644 index 6141034..0000000 --- a/problems/1502.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/can-make-arithmetic-progression-from-sequence", "name": "Can Make Arithmetic Progression From Sequence", "difficulty": "Easy", "statement": "

Given an array of numbers arr. A sequence of numbers is called an arithmetic progression if the difference between any two consecutive elements is the same.

\n\n

Return true if the array can be rearranged to form an arithmetic progression, otherwise, return false.

\n\n

 

\n

Example 1:

\n\n
Input: arr = [3,5,1]\nOutput: true\nExplanation: We can reorder the elements as [1,3,5] or [5,3,1] with differences 2 and -2 respectively, between each consecutive elements.\n
\n\n

Example 2:

\n\n
Input: arr = [1,2,4]\nOutput: false\nExplanation: There is no way to reorder the elements to obtain an arithmetic progression.\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 2 <= arr.length <= 1000
  • \n\t
  • -10^6 <= arr[i] <= 10^6
  • \n
\n
", "language": "cpp", "solution": "#include \n\n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n bool canMakeArithmeticProgression(vector &arr)\n {\n sort(arr.begin(), arr.end());\n int diff;\n if (arr.size() > 1)\n diff = arr[1] - arr[0];\n for (int i = 0; i < arr.size() - 1; i++)\n {\n if (diff != arr[i + 1] - arr[i])\n return false;\n }\n return true;\n }\n};"} \ No newline at end of file diff --git a/problems/1512.json b/problems/1512.json deleted file mode 100644 index 4e76fa8..0000000 --- a/problems/1512.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/number-of-good-pairs", "name": "Number of Good Pairs", "difficulty": "Easy", "statement": "

Given an array of integers nums.

\n\n

A pair (i,j) is called good if nums[i] == nums[j] and i < j.

\n\n

Return the number of good pairs.

\n\n

 

\n

Example 1:

\n\n
Input: nums = [1,2,3,1,1,3]\nOutput: 4\nExplanation: There are 4 good pairs (0,3), (0,4), (3,4), (2,5) 0-indexed.\n
\n\n

Example 2:

\n\n
Input: nums = [1,1,1,1]\nOutput: 6\nExplanation: Each pair in the array are good.\n
\n\n

Example 3:

\n\n
Input: nums = [1,2,3]\nOutput: 0\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= nums.length <= 100
  • \n\t
  • 1 <= nums[i] <= 100
  • \n
", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n int numIdenticalPairs(vector& nums) {\n\n int visited[101];\n fill_n(visited, 101, 0);\n\n int count = 0;\n\n for (int i: nums) {\n visited[i] += 1;\n }\n\n for (int i: visited) {\n count += (i * (i-1)) / 2;\n }\n\n return count;\n }\n};"} \ No newline at end of file diff --git a/problems/1528.json b/problems/1528.json deleted file mode 100644 index 481e879..0000000 --- a/problems/1528.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/shuffle-string", "name": "Shuffle String", "difficulty": "Easy", "statement": "

Given a string s and an integer array indices of the same length.

\n\n

The string s will be shuffled such that the character at the ith position moves to indices[i] in the shuffled string.

\n\n

Return the shuffled string.

\n\n

 

\n

Example 1:

\n\"\"\n
Input: s = \"codeleet\", indices = [4,5,6,7,0,2,1,3]\nOutput: \"leetcode\"\nExplanation: As shown, \"codeleet\" becomes \"leetcode\" after shuffling.\n
\n\n

Example 2:

\n\n
Input: s = \"abc\", indices = [0,1,2]\nOutput: \"abc\"\nExplanation: After shuffling, each character remains in its position.\n
\n\n

Example 3:

\n\n
Input: s = \"aiohn\", indices = [3,1,4,2,0]\nOutput: \"nihao\"\n
\n\n

Example 4:

\n\n
Input: s = \"aaiougrt\", indices = [4,0,2,6,7,3,1,5]\nOutput: \"arigatou\"\n
\n\n

Example 5:

\n\n
Input: s = \"art\", indices = [1,0,2]\nOutput: \"rat\"\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • s.length == indices.length == n
  • \n\t
  • 1 <= n <= 100
  • \n\t
  • s contains only lower-case English letters.
  • \n\t
  • 0 <= indices[i] < n
  • \n\t
  • All values of indices are unique (i.e. indices is a permutation of the integers from 0 to n - 1).
  • \n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n string restoreString(string s, vector &indices)\n {\n\n int n = s.length();\n\n char arr[n+1];\n fill_n(arr, n+1, '\\0');\n \n for (int i = 0; i < n; i++)\n {\n arr[indices[i]] = s[i];\n } \n string res(arr);\n return res;\n }\n};"} \ No newline at end of file diff --git a/problems/1534.json b/problems/1534.json deleted file mode 100644 index fd67dd8..0000000 --- a/problems/1534.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/count-good-triplets", "name": "Count Good Triplets", "difficulty": "Easy", "statement": "

Given an array of integers arr, and three integers ab and c. You need to find the number of good triplets.

\n\n

A triplet (arr[i], arr[j], arr[k]) is good if the following conditions are true:

\n\n
    \n\t
  • 0 <= i < j < k < arr.length
  • \n\t
  • |arr[i] - arr[j]| <= a
  • \n\t
  • |arr[j] - arr[k]| <= b
  • \n\t
  • |arr[i] - arr[k]| <= c
  • \n
\n\n

Where |x| denotes the absolute value of x.

\n\n

Return the number of good triplets.

\n\n

 

\n

Example 1:

\n\n
Input: arr = [3,0,1,1,9,7], a = 7, b = 2, c = 3\nOutput: 4\nExplanation: There are 4 good triplets: [(3,0,1), (3,0,1), (3,1,1), (0,1,1)].\n
\n\n

Example 2:

\n\n
Input: arr = [1,1,2,2,3], a = 0, b = 0, c = 1\nOutput: 0\nExplanation: No triplet satisfies all conditions.\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 3 <= arr.length <= 100
  • \n\t
  • 0 <= arr[i] <= 1000
  • \n\t
  • 0 <= a, b, c <= 1000
  • \n
", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n int countGoodTriplets(vector& arr, int a, int b, int c) {\n int n = arr.size();\n\n int count = 0;\n\n for(int i= 0; i < n; i++) {\n for (int j = i+1; j < n; j++) {\n for (int k = j+1; k < n; k++) {\n if ( abs(arr[i] - arr[j]) <= a && abs(arr[j]-arr[k]) <= b && abs(arr[i] - arr[k])<=c ) count++;\n }\n }\n }\n \n return count;\n }\n};"} \ No newline at end of file diff --git a/problems/1572.json b/problems/1572.json deleted file mode 100644 index 06a7582..0000000 --- a/problems/1572.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/matrix-diagonal-sum", "name": "Matrix Diagonal Sum", "difficulty": "Easy", "statement": "

Given a square matrix mat, return the sum of the matrix diagonals.

\n\n

Only include the sum of all the elements on the primary diagonal and all the elements on the secondary diagonal that are not part of the primary diagonal.

\n\n

 

\n

Example 1:

\n\"\"\n
Input: mat = [[1,2,3],\n              [4,5,6],\n              [7,8,9]]\nOutput: 25\nExplanation: Diagonals sum: 1 + 5 + 9 + 3 + 7 = 25\nNotice that element mat[1][1] = 5 is counted only once.\n
\n\n

Example 2:

\n\n
Input: mat = [[1,1,1,1],\n              [1,1,1,1],\n              [1,1,1,1],\n              [1,1,1,1]]\nOutput: 8\n
\n\n

Example 3:

\n\n
Input: mat = [[5]]\nOutput: 5\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • n == mat.length == mat[i].length
  • \n\t
  • 1 <= n <= 100
  • \n\t
  • 1 <= mat[i][j] <= 100
  • \n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int diagonalSum(vector> &mat)\n {\n\n int n = mat.size();\n int sum = 0;\n for (int i = 0; i < n; i++)\n {\n sum += mat[i][i];\n if (i != n-i-1) sum += mat[i][n-i-1];\n }\n return sum;\n }\n};"} \ No newline at end of file diff --git a/problems/1588.json b/problems/1588.json deleted file mode 100644 index c49d8e1..0000000 --- a/problems/1588.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/sum-of-all-odd-length-subarrays", "name": "Sum of All Odd Length Subarrays", "difficulty": "Easy", "statement": "

Given an array of positive integers arr, calculate the sum of all possible odd-length subarrays.

\n\n

A subarray is a contiguous subsequence of the array.

\n\n

Return the sum of all odd-length subarrays of arr.

\n\n

 

\n

Example 1:

\n\n
Input: arr = [1,4,2,5,3]\nOutput: 58\nExplanation: The odd-length subarrays of arr and their sums are:\n[1] = 1\n[4] = 4\n[2] = 2\n[5] = 5\n[3] = 3\n[1,4,2] = 7\n[4,2,5] = 11\n[2,5,3] = 10\n[1,4,2,5,3] = 15\nIf we add all these together we get 1 + 4 + 2 + 5 + 3 + 7 + 11 + 10 + 15 = 58
\n\n

Example 2:

\n\n
Input: arr = [1,2]\nOutput: 3\nExplanation: There are only 2 subarrays of odd length, [1] and [2]. Their sum is 3.
\n\n

Example 3:

\n\n
Input: arr = [10,11,12]\nOutput: 66\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= arr.length <= 100
  • \n\t
  • 1 <= arr[i] <= 1000
  • \n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int sumOddLengthSubarrays(vector &arr)\n {\n\n int n = arr.size();\n\n int sum = 0;\n\n for (int i = 0; i < n; i++)\n {\n for (int j = i; j < n; j += 2)\n {\n for(int k = i; k <= j; k++) {\n sum += arr[k];\n }\n }\n }\n\n return sum;\n }\n};"} \ No newline at end of file diff --git a/problems/1603.json b/problems/1603.json deleted file mode 100644 index 97134cd..0000000 --- a/problems/1603.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/design-parking-system", "name": "Design Parking System", "difficulty": "Easy", "statement": "

Design a parking system for a parking lot. The parking lot has three kinds of parking spaces: big, medium, and small, with a fixed number of slots for each size.

\n\n

Implement the ParkingSystem class:

\n\n
    \n\t
  • ParkingSystem(int big, int medium, int small) Initializes object of the ParkingSystem class. The number of slots for each parking space are given as part of the constructor.
  • \n\t
  • bool addCar(int carType) Checks whether there is a parking space of carType for the car that wants to get into the parking lot. carType can be of three kinds: big, medium, or small, which are represented by 1, 2, and 3 respectively. A car can only park in a parking space of its carType. If there is no space available, return false, else park the car in that size space and return true.
  • \n
\n\n

 

\n

Example 1:

\n\n
Input\n[\"ParkingSystem\", \"addCar\", \"addCar\", \"addCar\", \"addCar\"]\n[[1, 1, 0], [1], [2], [3], [1]]\nOutput\n[null, true, true, false, false]\n\nExplanation\nParkingSystem parkingSystem = new ParkingSystem(1, 1, 0);\nparkingSystem.addCar(1); // return true because there is 1 available slot for a big car\nparkingSystem.addCar(2); // return true because there is 1 available slot for a medium car\nparkingSystem.addCar(3); // return false because there is no available slot for a small car\nparkingSystem.addCar(1); // return false because there is no available slot for a big car. It is already occupied.\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 0 <= big, medium, small <= 1000
  • \n\t
  • carType is 1, 2, or 3
  • \n\t
  • At most 1000 calls will be made to addCar
  • \n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass ParkingSystem\n{\npublic:\n int b, s, m;\n int c_big, c_small, c_medium;\n\n ParkingSystem(int big, int medium, int small)\n {\n b = 0;\n s = 0;\n m = 0;\n c_big = big;\n c_medium = medium;\n c_small = small;\n }\n\n bool addCar(int carType)\n {\n switch (carType)\n {\n case 3:\n if (s < c_small)\n {\n ++s;\n cout << s;\n return true;\n }\n return false;\n break;\n case 2:\n if (m < c_medium)\n {\n ++m;\n cout << m;\n return true;\n }\n return false;\n break;\n case 1:\n if (b < c_big)\n {\n cout << b;\n ++b;\n return true;\n }\n return false;\n break;\n default:\n break;\n }\n return false;\n }\n};"} \ No newline at end of file diff --git a/problems/1614.json b/problems/1614.json deleted file mode 100644 index 3b2df21..0000000 --- a/problems/1614.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/maximum-nesting-depth-of-the-parentheses", "name": "Maximum Nesting Depth of the Parentheses", "difficulty": "Easy", "statement": "

A string is a valid parentheses string (denoted VPS) if it meets one of the following:

\n\n
    \n\t
  • It is an empty string \"\", or a single character not equal to \"(\" or \")\",
  • \n\t
  • It can be written as AB (A concatenated with B), where A and B are VPS's, or
  • \n\t
  • It can be written as (A), where A is a VPS.
  • \n
\n\n

We can similarly define the nesting depth depth(S) of any VPS S as follows:

\n\n
    \n\t
  • depth(\"\") = 0
  • \n\t
  • depth(A + B) = max(depth(A), depth(B)), where A and B are VPS's
  • \n\t
  • depth(\"(\" + A + \")\") = 1 + depth(A), where A is a VPS.
  • \n
\n\n

For example, \"\", \"()()\", and \"()(()())\" are VPS's (with nesting depths 0, 1, and 2), and \")(\" and \"(()\" are not VPS's.

\n\n

Given a VPS represented as string s, return the nesting depth of s.

\n\n

 

\n

Example 1:

\n\n
Input: s = \"(1+(2*3)+((8)/4))+1\"\nOutput: 3\nExplanation: Digit 8 is inside of 3 nested parentheses in the string.\n
\n\n

Example 2:

\n\n
Input: s = \"(1)+((2))+(((3)))\"\nOutput: 3\n
\n\n

Example 3:

\n\n
Input: s = \"1+(2*3)/(2-1)\"\nOutput: 1\n
\n\n

Example 4:

\n\n
Input: s = \"1\"\nOutput: 0\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= s.length <= 100
  • \n\t
  • s consists of digits 0-9 and characters '+', '-', '*', '/', '(', and ')'.
  • \n\t
  • It is guaranteed that parentheses expression s is a VPS.
  • \n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int maxDepth(string s)\n {\n\n int max_depth = 0;\n int current_depth = 0;\n\n for (char ch : s)\n {\n if (ch == '(')\n ++current_depth;\n else if (ch == ')')\n --current_depth;\n max_depth = max_depth > current_depth ? max_depth : current_depth;\n }\n\n return max_depth;\n }\n};"} \ No newline at end of file diff --git a/problems/344.json b/problems/344.json deleted file mode 100644 index f0e3821..0000000 --- a/problems/344.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/reverse-string", "name": "Reverse String", "difficulty": "Easy", "statement": "

Write a function that reverses a string. The input string is given as an array of characters char[].

\n\n

Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.

\n\n

You may assume all the characters consist of printable ascii characters.

\n\n

 

\n\n
\n

Example 1:

\n\n
Input: [\"h\",\"e\",\"l\",\"l\",\"o\"]\nOutput: [\"o\",\"l\",\"l\",\"e\",\"h\"]\n
\n\n
\n

Example 2:

\n\n
Input: [\"H\",\"a\",\"n\",\"n\",\"a\",\"h\"]\nOutput: [\"h\",\"a\",\"n\",\"n\",\"a\",\"H\"]\n
\n
\n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n void reverseString(vector &s)\n {\n int n = s.size();\n for(int i = 0; i < n / 2; i++) {\n int temp = s[i];\n s[i] = s[n - i - 1];\n s[n - i - 1] = temp;\n }\n }\n};"} \ No newline at end of file diff --git a/problems/461.json b/problems/461.json deleted file mode 100644 index 29b36d5..0000000 --- a/problems/461.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/hamming-distance", "name": "Hamming Distance", "difficulty": "Easy", "statement": "

The Hamming distance between two integers is the number of positions at which the corresponding bits are different.

\n\n

Given two integers x and y, calculate the Hamming distance.

\n\n

Note:
\n0 \u2264 x, y < 231.\n

\n\n

Example:\n

Input: x = 1, y = 4\n\nOutput: 2\n\nExplanation:\n1   (0 0 0 1)\n4   (0 1 0 0)\n       \u2191   \u2191\n\nThe above arrows point to positions where the corresponding bits are different.\n
\n

", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n int hammingDistance(int x, int y) {\n\n int count = 0;\n while (x || y) {\n if (x % 2 != y % 2) count ++;\n x /= 2; y/= 2;\n }\n\n return count;\n \n }\n};"} \ No newline at end of file diff --git a/problems/509.json b/problems/509.json deleted file mode 100644 index 34b5003..0000000 --- a/problems/509.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/fibonacci-number", "name": "Fibonacci Number", "difficulty": "Easy", "statement": "

The Fibonacci numbers, commonly denoted F(n) form a sequence, called the Fibonacci sequence, such that each number is the sum of the two preceding ones, starting from 0 and 1. That is,

\n\n
F(0) = 0,   F(1) = 1\nF(N) = F(N - 1) + F(N - 2), for N > 1.\n
\n\n

Given N, calculate F(N).

\n\n

 

\n\n

Example 1:

\n\n
Input: 2\nOutput: 1\nExplanation: F(2) = F(1) + F(0) = 1 + 0 = 1.\n
\n\n

Example 2:

\n\n
Input: 3\nOutput: 2\nExplanation: F(3) = F(2) + F(1) = 1 + 1 = 2.\n
\n\n

Example 3:

\n\n
Input: 4\nOutput: 3\nExplanation: F(4) = F(3) + F(2) = 2 + 1 = 3.\n
\n\n

 

\n\n

Note:

\n\n

0 \u2264 N \u2264 30.

\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int fib(int N)\n {\n int *arr = (int *)malloc(sizeof(int) * N + 1);\n\n int n = N;\n if (n == 0) return 0;\n if (n == 1) return 1;\n\n arr[0] = 0;\n arr[1] = 1;\n\n for(int i = 2; i <= N; i++)\n arr[i] = arr[i-1] + arr[i-2];\n\n return arr[N];\n\n }\n};"} \ No newline at end of file diff --git a/problems/557.json b/problems/557.json deleted file mode 100644 index 68ca0fb..0000000 --- a/problems/557.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/reverse-words-in-a-string-iii", "name": "Reverse Words in a String III", "difficulty": "Easy", "statement": "

Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.

\n\n

Example 1:
\n

Input: \"Let's take LeetCode contest\"\nOutput: \"s'teL ekat edoCteeL tsetnoc\"\n
\n

\n\n

Note:\nIn the string, each word is separated by single space and there will not be any extra space in the string.\n

", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n string reverseWords(string s) {\n\n vector ind;\n ind.push_back(-1);\n int n = s.length();\n\n for(int i = 0; i < n; i++) {\n if (s[i] == ' ') {\n ind.push_back(i);\n }\n }\n\n ind.push_back(n);\n\n stringstream res;\n\n int nums = ind.size();\n for(int i = 0; i < nums - 1; i++) {\n for(int j = ind[i + 1] - 1; j > ind[i]; j--) {\n res << s[j];\n }\n if (i < nums - 2) {\n res << ' ';\n }\n }\n\n return res.str();\n }\n};"} \ No newline at end of file diff --git a/problems/559.json b/problems/559.json deleted file mode 100644 index 46fdb22..0000000 --- a/problems/559.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/maximum-depth-of-n-ary-tree", "name": "Maximum Depth of N-ary Tree", "difficulty": "Easy", "statement": "

Given a n-ary tree, find its maximum depth.

\n\n

The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

\n\n

Nary-Tree input serialization is represented in their level order traversal, each group of children is separated by the null value (See examples).

\n\n

 

\n

Example 1:

\n\n

\n\n
Input: root = [1,null,3,2,4,null,5,6]\nOutput: 3\n
\n\n

Example 2:

\n\n

\"\"

\n\n
Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]\nOutput: 5\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • The depth of the n-ary tree is less than or equal to 1000.
  • \n\t
  • The total number of nodes is between [0, 10^4].
  • \n
\n
", "language": "c", "solution": "\nstruct Node\n{\n int val;\n int numChildren;\n struct Node **children;\n};\n\nint *maxDepth(struct Node *root)\n{\n return calc_depth(root, 0);\n}\n\nint calc_depth(struct Node *root, int depth)\n{\n if (!root)\n return depth;\n int old_depth = depth;\n depth += 1;\n for (int i = 0; i < root->numChildren; i++)\n {\n int newd = calc_depth(root->children[i], old_depth + 1);\n printf(\"%d\\n\", newd);\n depth = depth > newd ? depth : newd;\n }\n return depth;\n}"} \ No newline at end of file diff --git a/problems/561.json b/problems/561.json deleted file mode 100644 index 89ca089..0000000 --- a/problems/561.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/array-partition-i", "name": "Array Partition I", "difficulty": "Easy", "statement": "

\nGiven an array of 2n integers, your task is to group these integers into n pairs of integer, say (a1, b1), (a2, b2), ..., (an, bn) which makes sum of min(ai, bi) for all i from 1 to n as large as possible.\n

\n\n

Example 1:
\n

Input: [1,4,3,2]\n\nOutput: 4\nExplanation: n is 2, and the maximum sum of pairs is 4 = min(1, 2) + min(3, 4).\n
\n

\n\n

Note:
\n

    \n
  1. n is a positive integer, which is in the range of [1, 10000].
  2. \n
  3. All the integers in the array will be in the range of [-10000, 10000].
  4. \n
\n

", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n int arrayPairSum(vector& nums) {\n\n sort(nums.begin(), nums.end());\n\n int n = nums.size();\n int res = 0;\n for(int i = 0; i < n; i += 2)\n res += nums[i];\n \n return res;\n \n }\n};"} \ No newline at end of file diff --git a/problems/589.json b/problems/589.json deleted file mode 100644 index 8bf7198..0000000 --- a/problems/589.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/n-ary-tree-preorder-traversal", "name": "N-ary Tree Preorder Traversal", "difficulty": "Easy", "statement": "

Given an n-ary tree, return the preorder traversal of its nodes' values.

\n\n

Nary-Tree input serialization is represented in their level order traversal, each group of children is separated by the null value (See examples).

\n\n

 

\n\n

Follow up:

\n\n

Recursive solution is trivial, could you do it iteratively?

\n\n

 

\n

Example 1:

\n\n

\n\n
Input: root = [1,null,3,2,4,null,5,6]\nOutput: [1,3,5,6,2,4]\n
\n\n

Example 2:

\n\n

\"\"

\n\n
Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]\nOutput: [1,2,3,6,7,11,14,4,8,12,5,9,13,10]\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • The height of the n-ary tree is less than or equal to 1000
  • \n\t
  • The total number of nodes is between [0, 10^4]
  • \n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Node {\npublic:\n int val;\n vector children;\n\n Node() {}\n\n Node(int _val) {\n val = _val;\n }\n\n Node(int _val, vector _children) {\n val = _val;\n children = _children;\n }\n};\n\nclass Solution {\npublic:\n vector preorder(Node* root) {\n\n vector res;\n if (!root) {\n return res;\n }\n\n reverse((root->children).begin(), (root->children).end());\n\n res.push_back(root->val);\n\n for (Node* node: root->children) {\n vector temp = preorder(node);\n res.insert(res.begin() + 1, temp.begin(), temp.end());\n }\n return res;\n }\n};"} \ No newline at end of file diff --git a/problems/590.json b/problems/590.json deleted file mode 100644 index 39c2925..0000000 --- a/problems/590.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/n-ary-tree-postorder-traversal", "name": "N-ary Tree Postorder Traversal", "difficulty": "Easy", "statement": "

Given an n-ary tree, return the postorder traversal of its nodes' values.

\n\n

Nary-Tree input serialization is represented in their level order traversal, each group of children is separated by the null value (See examples).

\n\n

 

\n\n

Follow up:

\n\n

Recursive solution is trivial, could you do it iteratively?

\n\n

 

\n

Example 1:

\n\n

\n\n
Input: root = [1,null,3,2,4,null,5,6]\nOutput: [5,6,3,2,4,1]\n
\n\n

Example 2:

\n\n

\"\"

\n\n
Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]\nOutput: [2,6,14,11,7,3,12,8,4,13,9,10,5,1]\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • The height of the n-ary tree is less than or equal to 1000
  • \n\t
  • The total number of nodes is between [0, 10^4]
  • \n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Node {\npublic:\n int val;\n vector children;\n\n Node() {}\n\n Node(int _val) {\n val = _val;\n }\n\n Node(int _val, vector _children) {\n val = _val;\n children = _children;\n }\n};\n\nclass Solution {\npublic:\n vector postorder(Node* root) {\n\n vector res;\n if (!root) {\n return res;\n }\n\n reverse((root->children).begin(), (root->children).end());\n\n for (Node* node: root->children) {\n vector temp = postorder(node);\n res.insert(res.begin(), temp.begin(), temp.end());\n }\n\n res.push_back(root->val);\n return res;\n }\n};"} \ No newline at end of file diff --git a/problems/617.json b/problems/617.json deleted file mode 100644 index b270df2..0000000 --- a/problems/617.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/merge-two-binary-trees", "name": "Merge Two Binary Trees", "difficulty": "Easy", "statement": "

Given two binary trees and imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not.

\n\n

You need to merge them into a new binary tree. The merge rule is that if two nodes overlap, then sum node values up as the new value of the merged node. Otherwise, the NOT null node will be used as the node of new tree.

\n\n

Example 1:

\n\n
Input: \n\tTree 1                     Tree 2                  \n          1                         2                             \n         / \\                       / \\                            \n        3   2                     1   3                        \n       /                           \\   \\                      \n      5                             4   7                  \nOutput: \nMerged tree:\n\t     3\n\t    / \\\n\t   4   5\n\t  / \\   \\ \n\t 5   4   7\n
\n\n

 

\n\n

Note: The merging process must start from the root nodes of both trees.

\n
", "language": "c", "solution": "#include\n#include \n\nstruct TreeNode\n{\n int val;\n struct TreeNode *left;\n struct TreeNode *right;\n};\n\nstruct TreeNode *mergeTrees(struct TreeNode *t1, struct TreeNode *t2)\n{\n\n if (!t1) return t2;\n if (!t2) return t1;\n\n t1->val = t1->val + t2->val;\n\n if (t1->left && t2->left)\n t1->left = mergeTrees(t1->left, t2->left);\n else if (t1->left)\n t1->left = t1->left;\n else if (t2->left)\n t1->left = t2->left;\n\n if (t1->right && t2->right)\n t1->right = mergeTrees(t1->right, t2->right);\n else if (t1->right)\n t1->right = t1->right;\n else if (t2->right)\n t1->right = t2->right;\n\n return t1;\n}"} \ No newline at end of file diff --git a/problems/657.json b/problems/657.json deleted file mode 100644 index 900d3e2..0000000 --- a/problems/657.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/robot-return-to-origin", "name": "Robot Return to Origin", "difficulty": "Easy", "statement": "

There is a robot starting at position (0, 0), the origin, on a 2D plane. Given a sequence of its moves, judge if this robot ends up at (0, 0) after it completes its moves.

\n\n

The move sequence is represented by a string, and the character moves[i] represents its ith move. Valid moves are R (right), L (left), U (up), and D (down). If the robot returns to the origin after it finishes all of its moves, return true. Otherwise, return false.

\n\n

Note: The way that the robot is \"facing\" is irrelevant. \"R\" will always make the robot move to the right once, \"L\" will always make it move left, etc. Also, assume that the magnitude of the robot's movement is the same for each move.

\n\n

 

\n

Example 1:

\n\n
Input: moves = \"UD\"\nOutput: true\nExplanation: The robot moves up once, and then down once. All moves have the same magnitude, so it ended up at the origin where it started. Therefore, we return true.\n
\n\n

Example 2:

\n\n
Input: moves = \"LL\"\nOutput: false\nExplanation: The robot moves left twice. It ends up two \"moves\" to the left of the origin. We return false because it is not at the origin at the end of its moves.\n
\n\n

Example 3:

\n\n
Input: moves = \"RRDD\"\nOutput: false\n
\n\n

Example 4:

\n\n
Input: moves = \"LDRRLRUULR\"\nOutput: false\n
\n\n

 

\n

Constraints:

\n\n
    \n\t
  • 1 <= moves.length <= 2 * 104
  • \n\t
  • moves only contains the characters 'U', 'D', 'L' and 'R'.
  • \n
\n
", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n bool judgeCircle(string moves)\n {\n\n return count(moves.begin(), moves.end(), 'U') == count(moves.begin(), moves.end(), 'D') && count(moves.begin(), moves.end(), 'L') == count(moves.begin(), moves.end(), 'R');\n }\n};"} \ No newline at end of file diff --git a/problems/700.json b/problems/700.json deleted file mode 100644 index e8c9f50..0000000 --- a/problems/700.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/search-in-a-binary-search-tree", "name": "Search in a Binary Search Tree", "difficulty": "Easy", "statement": "

Given the root node of a binary search tree (BST) and a value. You need to find the node in the BST that the node's value equals the given value. Return the subtree rooted with that node. If such node doesn't exist, you should return NULL.

\n\n

For example, 

\n\n
Given the tree:\n        4\n       / \\\n      2   7\n     / \\\n    1   3\n\nAnd the value to search: 2\n
\n\n

You should return this subtree:

\n\n
      2     \n     / \\   \n    1   3\n
\n\n

In the example above, if we want to search the value 5, since there is no node with value 5, we should return NULL.

\n\n

Note that an empty tree is represented by NULL, therefore you would see the expected output (serialized tree format) as [], not null.

\n
", "language": "c", "solution": "#include \n#include \n\nstruct TreeNode\n{\n int val;\n struct TreeNode *left;\n struct TreeNode *right;\n};\n\nstruct TreeNode *searchBST(struct TreeNode *root, int val)\n{\n if (!root)\n return NULL;\n\n if (root->val == val)\n return root;\n\n struct TreeNode *left = searchBST(root->left, val);\n if (left)\n return left;\n\n struct TreeNode *right = searchBST(root->right, val);\n if (right)\n return right;\n\n return NULL;\n}"} \ No newline at end of file diff --git a/problems/709.json b/problems/709.json deleted file mode 100644 index e69da38..0000000 --- a/problems/709.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/to-lower-case", "name": "To Lower Case", "difficulty": "Easy", "statement": "

Implement function ToLowerCase() that has a string parameter str, and returns the same string in lowercase.

\n\n

 

\n\n
\n

Example 1:

\n\n
Input: \"Hello\"\nOutput: \"hello\"\n
\n\n
\n

Example 2:

\n\n
Input: \"here\"\nOutput: \"here\"\n
\n\n
\n

Example 3:

\n\n
Input: \"LOVELY\"\nOutput: \"lovely\"\n
\n
\n
\n
", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n string toLowerCase(string str) {\n\n transform(str.begin(), str.end(), str.begin(), ::tolower);\n\n return str;\n \n }\n};"} \ No newline at end of file diff --git a/problems/728.json b/problems/728.json deleted file mode 100644 index 1519f16..0000000 --- a/problems/728.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/self-dividing-numbers", "name": "Self Dividing Numbers", "difficulty": "Easy", "statement": "

\nA self-dividing number is a number that is divisible by every digit it contains.\n

\nFor example, 128 is a self-dividing number because 128 % 1 == 0, 128 % 2 == 0, and 128 % 8 == 0.\n

\nAlso, a self-dividing number is not allowed to contain the digit zero.\n

\nGiven a lower and upper number bound, output a list of every possible self dividing number, including the bounds if possible.\n

\n

Example 1:
\n

Input: \nleft = 1, right = 22\nOutput: [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]\n
\n

\n\n

Note:\n

  • The boundaries of each input argument are 1 <= left <= right <= 10000.
  • \n

    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n vector selfDividingNumbers(int left, int right) {\n\n vector res;\n for(int i = left; i <= right; i++) {\n\n int isValid = 1;\n int num = i;\n while (num) {\n int rem = num % 10;\n if (rem == 0 || i % rem != 0) isValid = 0;\n num /= 10;\n }\n\n if (isValid) res.push_back(i);\n\n }\n\n return res;\n \n }\n};"} \ No newline at end of file diff --git a/problems/771.json b/problems/771.json deleted file mode 100644 index e83f2e6..0000000 --- a/problems/771.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/jewels-and-stones", "name": "Jewels and Stones", "difficulty": "Easy", "statement": "

    You're given strings J representing the types of stones that are jewels, and S representing the stones you have.  Each character in S is a type of stone you have.  You want to know how many of the stones you have are also jewels.

    \n\n

    The letters in J are guaranteed distinct, and all characters in J and S are letters. Letters are case sensitive, so \"a\" is considered a different type of stone from \"A\".

    \n\n

    Example 1:

    \n\n
    Input: J = \"aA\", S = \"aAAbbbb\"\nOutput: 3\n
    \n\n

    Example 2:

    \n\n
    Input: J = \"z\", S = \"ZZ\"\nOutput: 0\n
    \n\n

    Note:

    \n\n
      \n\t
    • S and J will consist of letters and have length at most 50.
    • \n\t
    • The characters in J are distinct.
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int numJewelsInStones(string J, string S)\n {\n\n int isJewel[126];\n\n fill_n(isJewel, 126, 0);\n\n for (char i : J)\n {\n isJewel[(int)i] = 1;\n }\n\n int count = 0;\n for (char i : S)\n {\n count += isJewel[(int)i];\n }\n\n return count;\n }\n};"} \ No newline at end of file diff --git a/problems/804.json b/problems/804.json deleted file mode 100644 index 17191c3..0000000 --- a/problems/804.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/unique-morse-code-words", "name": "Unique Morse Code Words", "difficulty": "Easy", "statement": "

    International Morse Code defines a standard encoding where each letter is mapped to a series of dots and dashes, as follows: \"a\" maps to \".-\", \"b\" maps to \"-...\", \"c\" maps to \"-.-.\", and so on.

    \n\n

    For convenience, the full table for the 26 letters of the English alphabet is given below:

    \n\n
    [\".-\",\"-...\",\"-.-.\",\"-..\",\".\",\"..-.\",\"--.\",\"....\",\"..\",\".---\",\"-.-\",\".-..\",\"--\",\"-.\",\"---\",\".--.\",\"--.-\",\".-.\",\"...\",\"-\",\"..-\",\"...-\",\".--\",\"-..-\",\"-.--\",\"--..\"]
    \n\n

    Now, given a list of words, each word can be written as a concatenation of the Morse code of each letter. For example, \"cab\" can be written as \"-.-..--...\", (which is the concatenation \"-.-.\" + \".-\" + \"-...\"). We'll call such a concatenation, the transformation of a word.

    \n\n

    Return the number of different transformations among all words we have.

    \n\n
    Example:\nInput: words = [\"gin\", \"zen\", \"gig\", \"msg\"]\nOutput: 2\nExplanation: \nThe transformation of each word is:\n\"gin\" -> \"--...-.\"\n\"zen\" -> \"--...-.\"\n\"gig\" -> \"--...--.\"\n\"msg\" -> \"--...--.\"\n\nThere are 2 different transformations, \"--...-.\" and \"--...--.\".\n
    \n\n

    Note:

    \n\n
      \n\t
    • The length of words will be at most 100.
    • \n\t
    • Each words[i] will have length in range [1, 12].
    • \n\t
    • words[i] will only consist of lowercase letters.
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int uniqueMorseRepresentations(vector &words)\n {\n\n vector codes;\n int n = words.size();\n\n string mapping[26] = {\".-\", \"-...\", \"-.-.\", \"-..\", \".\", \"..-.\", \"--.\", \"....\", \"..\", \".---\", \"-.-\", \".-..\", \"--\", \"-.\", \"---\", \".--.\", \"--.-\", \".-.\", \"...\", \"-\", \"..-\", \"...-\", \".--\", \"-..-\", \"-.--\", \"--..\"};\n\n for (string word : words)\n {\n\n stringstream r;\n\n for (char c : word)\n {\n r << mapping[(int)(c)-97];\n }\n\n string res = r.str();\n codes.push_back(res);\n }\n\n sort(codes.begin(), codes.end());\n\n int count = n > 0 ? 1 : 0;\n\n for (int i = 1; i < n; i++)\n {\n if (codes[i].compare(codes[i - 1]))\n ++count;\n }\n\n return count;\n }\n};"} \ No newline at end of file diff --git a/problems/811.json b/problems/811.json deleted file mode 100644 index 1d1e7d5..0000000 --- a/problems/811.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/subdomain-visit-count", "name": "Subdomain Visit Count", "difficulty": "Easy", "statement": "

    A website domain like \"discuss.leetcode.com\" consists of various subdomains. At the top level, we have \"com\", at the next level, we have \"leetcode.com\", and at the lowest level, \"discuss.leetcode.com\". When we visit a domain like \"discuss.leetcode.com\", we will also visit the parent domains \"leetcode.com\" and \"com\" implicitly.

    \n\n

    Now, call a \"count-paired domain\" to be a count (representing the number of visits this domain received), followed by a space, followed by the address. An example of a count-paired domain might be \"9001 discuss.leetcode.com\".

    \n\n

    We are given a list cpdomains of count-paired domains. We would like a list of count-paired domains, (in the same format as the input, and in any order), that explicitly counts the number of visits to each subdomain.

    \n\n
    Example 1:\nInput: \n[\"9001 discuss.leetcode.com\"]\nOutput: \n[\"9001 discuss.leetcode.com\", \"9001 leetcode.com\", \"9001 com\"]\nExplanation: \nWe only have one website domain: \"discuss.leetcode.com\". As discussed above, the subdomain \"leetcode.com\" and \"com\" will also be visited. So they will all be visited 9001 times.\n\n
    \n\n
    Example 2:\nInput: \n[\"900 google.mail.com\", \"50 yahoo.com\", \"1 intel.mail.com\", \"5 wiki.org\"]\nOutput: \n[\"901 mail.com\",\"50 yahoo.com\",\"900 google.mail.com\",\"5 wiki.org\",\"5 org\",\"1 intel.mail.com\",\"951 com\"]\nExplanation: \nWe will visit \"google.mail.com\" 900 times, \"yahoo.com\" 50 times, \"intel.mail.com\" once and \"wiki.org\" 5 times. For the subdomains, we will visit \"mail.com\" 900 + 1 = 901 times, \"com\" 900 + 50 + 1 = 951 times, and \"org\" 5 times.\n\n
    \n\n

    Notes:

    \n\n
      \n\t
    • The length of cpdomains will not exceed 100
    • \n\t
    • The length of each domain name will not exceed 100.
    • \n\t
    • Each address will have either 1 or 2 \".\" characters.
    • \n\t
    • The input count in any count-paired domain will not exceed 10000.
    • \n\t
    • The answer output can be returned in any order.
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n vector subdomainVisits(vector& cpdomains) {\n\n vector res;\n\n unordered_map count;\n for (string x: cpdomains) {\n\n int space_pos = x.find(' ');\n string num_string = x.substr(0, space_pos);\n int num = stoi(num_string);\n string domain = x.substr(space_pos + 1);\n\n if (count[domain]) count[domain] += num;\n else count[domain] = num;\n\n for (int i = 0; i < domain.length(); i++) {\n if (domain[i] == '.') {\n if (count[domain.substr(i+1)]) count[domain.substr(i+1)] += num;\n else count[domain.substr(i+1)] = num;\n }\n }\n\n }\n for (auto x: count) {\n stringstream r;\n r << x.second << \" \" << x.first;\n res.push_back(r.str());\n }\n return res;\n }\n};"} \ No newline at end of file diff --git a/problems/821.json b/problems/821.json deleted file mode 100644 index 63ce36a..0000000 --- a/problems/821.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/shortest-distance-to-a-character", "name": "Shortest Distance to a Character", "difficulty": "Easy", "statement": "

    Given a string S and a character C, return an array of integers representing the shortest distance from the character C in the string.

    \n\n

    Example 1:

    \n\n
    Input: S = \"loveleetcode\", C = 'e'\nOutput: [3, 2, 1, 0, 1, 0, 0, 1, 2, 2, 1, 0]\n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    1. S string length is in [1, 10000].
    2. \n\t
    3. C is a single character, and guaranteed to be in string S.
    4. \n\t
    5. All letters in S and C are lowercase.
    6. \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n vector shortestToChar(string S, char C)\n {\n vector poss;\n int n = S.length();\n for (int i = 0; i < n; i++)\n {\n if (S[i] == C)\n {\n poss.push_back(i);\n }\n }\n\n vector out;\n\n int occ = poss.size();\n\n if (occ)\n {\n for (int i = 0; i <= poss[0]; ++i)\n out.push_back(poss[0] - i);\n }\n for (int i = 0; i < occ - 1; i++)\n {\n for (int j = poss[i] + 1; j <= poss[i + 1]; ++j)\n {\n out.push_back(min((j - poss[i]), (poss[i + 1] - j)));\n }\n }\n\n if (occ)\n {\n for (int i = poss[occ - 1] + 1; i < n; ++i)\n out.push_back(i - poss[occ - 1]);\n }\n\n return out;\n }\n};"} \ No newline at end of file diff --git a/problems/832.json b/problems/832.json deleted file mode 100644 index 5720eee..0000000 --- a/problems/832.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/flipping-an-image", "name": "Flipping an Image", "difficulty": "Easy", "statement": "

    Given a binary matrix A, we want to flip the image horizontally, then invert it, and return the resulting image.

    \n\n

    To flip an image horizontally means that each row of the image is reversed.  For example, flipping [1, 1, 0] horizontally results in [0, 1, 1].

    \n\n

    To invert an image means that each 0 is replaced by 1, and each 1 is replaced by 0. For example, inverting [0, 1, 1] results in [1, 0, 0].

    \n\n

    Example 1:

    \n\n
    Input: [[1,1,0],[1,0,1],[0,0,0]]\nOutput: [[1,0,0],[0,1,0],[1,1,1]]\nExplanation: First reverse each row: [[0,1,1],[1,0,1],[0,0,0]].\nThen, invert the image: [[1,0,0],[0,1,0],[1,1,1]]\n
    \n\n

    Example 2:

    \n\n
    Input: [[1,1,0,0],[1,0,0,1],[0,1,1,1],[1,0,1,0]]\nOutput: [[1,1,0,0],[0,1,1,0],[0,0,0,1],[1,0,1,0]]\nExplanation: First reverse each row: [[0,0,1,1],[1,0,0,1],[1,1,1,0],[0,1,0,1]].\nThen invert the image: [[1,1,0,0],[0,1,1,0],[0,0,0,1],[1,0,1,0]]\n
    \n\n

    Notes:

    \n\n
      \n\t
    • 1 <= A.length = A[0].length <= 20
    • \n\t
    • 0 <= A[i][j] <= 1
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n vector> flipAndInvertImage(vector>& A) {\n\n int n = A.size();\n\n vector> res;\n\n for (vector a: A) {\n vector temp;\n for(int x: a) {\n temp.push_back(1-x);\n }\n reverse(temp.begin(), temp.end());\n res.push_back(temp);\n }\n\n return res;\n \n }\n};"} \ No newline at end of file diff --git a/problems/852.json b/problems/852.json deleted file mode 100644 index 32be5c9..0000000 --- a/problems/852.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/peak-index-in-a-mountain-array", "name": "Peak Index in a Mountain Array", "difficulty": "Easy", "statement": "

    Let's call an array arr a mountain if the following properties hold:

    \n\n
      \n\t
    • arr.length >= 3
    • \n\t
    • There exists some i with 0 < i < arr.length - 1 such that:\n\t
        \n\t\t
      • arr[0] < arr[1] < ... arr[i-1] < arr[i]
      • \n\t\t
      • arr[i] > arr[i+1] > ... > arr[arr.length - 1]
      • \n\t
      \n\t
    • \n
    \n\n

    Given an integer array arr that is guaranteed to be a mountain, return any i such that arr[0] < arr[1] < ... arr[i - 1] < arr[i] > arr[i + 1] > ... > arr[arr.length - 1].

    \n\n

     

    \n

    Example 1:

    \n
    Input: arr = [0,1,0]\nOutput: 1\n

    Example 2:

    \n
    Input: arr = [0,2,1,0]\nOutput: 1\n

    Example 3:

    \n
    Input: arr = [0,10,5,2]\nOutput: 1\n

    Example 4:

    \n
    Input: arr = [3,4,5,1]\nOutput: 2\n

    Example 5:

    \n
    Input: arr = [24,69,100,99,79,78,67,36,26,19]\nOutput: 2\n
    \n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 3 <= arr.length <= 104
    • \n\t
    • 0 <= arr[i] <= 106
    • \n\t
    • arr is guaranteed to be a mountain array.
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n int peakIndexInMountainArray(vector& A) {\n\n int n = A.size();\n for (int i = 1; i < n-1; i++) {\n if (A[i] > A[i-1] && A[i] > A[i+1]) return i;\n }\n return -1;\n }\n};"} \ No newline at end of file diff --git a/problems/876.json b/problems/876.json deleted file mode 100644 index 8442ac8..0000000 --- a/problems/876.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/middle-of-the-linked-list", "name": "Middle of the Linked List", "difficulty": "Easy", "statement": "

    Given a non-empty, singly linked list with head node head, return a middle node of linked list.

    \n\n

    If there are two middle nodes, return the second middle node.

    \n\n

     

    \n\n
    \n

    Example 1:

    \n\n
    Input: [1,2,3,4,5]\nOutput: Node 3 from this list (Serialization: [3,4,5])\nThe returned node has value 3.  (The judge's serialization of this node is [3,4,5]).\nNote that we returned a ListNode object ans, such that:\nans.val = 3, ans.next.val = 4, ans.next.next.val = 5, and ans.next.next.next = NULL.\n
    \n\n
    \n

    Example 2:

    \n\n
    Input: [1,2,3,4,5,6]\nOutput: Node 4 from this list (Serialization: [4,5,6])\nSince the list has two middle nodes with values 3 and 4, we return the second one.\n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    • The number of nodes in the given list will be between 1 and 100.
    • \n
    \n
    \n
    \n
    ", "language": "C", "solution": "\nstruct ListNode\n{\n int val;\n struct ListNode *next;\n};\n\nstruct ListNode *middleNode(struct ListNode *head)\n{\n int n = 0;\n struct ListNode* curr = head;\n\n while(curr) {\n curr = curr->next;\n ++n;\n }\n curr = head;\n for(int i = 0; i < n/2; ++i)\n curr = curr->next;\n return curr;\n}"} \ No newline at end of file diff --git a/problems/883.json b/problems/883.json deleted file mode 100644 index ee6e892..0000000 --- a/problems/883.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/projection-area-of-3d-shapes", "name": "Projection Area of 3D Shapes", "difficulty": "Easy", "statement": "

    On a N * N grid, we place some 1 * 1 * 1 cubes that are axis-aligned with the x, y, and z axes.

    \n\n

    Each value v = grid[i][j] represents a tower of v cubes placed on top of grid cell (i, j).

    \n\n

    Now we view the projection of these cubes onto the xy, yz, and zx planes.

    \n\n

    A projection is like a shadow, that maps our 3 dimensional figure to a 2 dimensional plane. 

    \n\n

    Here, we are viewing the \"shadow\" when looking at the cubes from the top, the front, and the side.

    \n\n

    Return the total area of all three projections.

    \n\n

     

    \n\n
    \n
      \n
    \n
    \n\n
    \n
    \n
      \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
      \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
      \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n

    Example 1:

    \n\n
    Input: [[2]]\nOutput: 5\n
    \n\n
    \n

    Example 2:

    \n\n
    Input: [[1,2],[3,4]]\nOutput: 17\nExplanation: \nHere are the three projections (\"shadows\") of the shape made with each axis-aligned plane.\n\"\"\n
    \n\n
    \n

    Example 3:

    \n\n
    Input: [[1,0],[0,2]]\nOutput: 8\n
    \n\n
    \n

    Example 4:

    \n\n
    Input: [[1,1,1],[1,0,1],[1,1,1]]\nOutput: 14\n
    \n\n
    \n

    Example 5:

    \n\n
    Input: [[2,2,2],[2,1,2],[2,2,2]]\nOutput: 21\n
    \n\n

     

    \n\n
    \n
    \n
    \n

    Note:

    \n\n
      \n\t
    • 1 <= grid.length = grid[0].length <= 50
    • \n\t
    • 0 <= grid[i][j] <= 50
    • \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int projectionArea(vector> &grid)\n {\n int n = grid.size();\n\n int top = 0;\n for (vector temp : grid)\n {\n for (int i : temp)\n {\n if (i)\n ++top;\n }\n }\n\n vector front;\n vector right;\n for (int i = 0; i < n; i++)\n {\n front.push_back(0);\n right.push_back(0);\n for (int j = 0; j < n; j++)\n {\n front[i] = max(front[i], grid[i][j]);\n right[i] = max(right[i], grid[j][i]);\n }\n }\n\n return top + accumulate(front.begin(), front.end(), 0) + accumulate(right.begin(), right.end(), 0);\n }\n};"} \ No newline at end of file diff --git a/problems/893.json b/problems/893.json deleted file mode 100644 index 56eee85..0000000 --- a/problems/893.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/groups-of-special-equivalent-strings", "name": "Groups of Special-Equivalent Strings", "difficulty": "Easy", "statement": "

    You are given an array A of strings.

    \n\n

    A move onto S consists of swapping any two even indexed characters of S, or any two odd indexed characters of S.

    \n\n

    Two strings S and T are special-equivalent if after any number of moves onto S, S == T.

    \n\n

    For example, S = \"zzxy\" and T = \"xyzz\" are special-equivalent because we may make the moves \"zzxy\" -> \"xzzy\" -> \"xyzz\" that swap S[0] and S[2], then S[1] and S[3].

    \n\n

    Now, a group of special-equivalent strings from A is a non-empty subset of A such that:

    \n\n
      \n\t
    1. Every pair of strings in the group are special equivalent, and;
    2. \n\t
    3. The group is the largest size possible (ie., there isn't a string S not in the group such that S is special equivalent to every string in the group)
    4. \n
    \n\n

    Return the number of groups of special-equivalent strings from A.

    \n\n
     
    \n\n
    \n

    Example 1:

    \n\n
    Input: [\"abcd\",\"cdab\",\"cbad\",\"xyzz\",\"zzxy\",\"zzyx\"]\nOutput: 3\nExplanation: \nOne group is [\"abcd\", \"cdab\", \"cbad\"], since they are all pairwise special equivalent, and none of the other strings are all pairwise special equivalent to these.\n\nThe other two groups are [\"xyzz\", \"zzxy\"] and [\"zzyx\"].  Note that in particular, \"zzxy\" is not special equivalent to \"zzyx\".\n
    \n\n
    \n

    Example 2:

    \n\n
    Input: [\"abc\",\"acb\",\"bac\",\"bca\",\"cab\",\"cba\"]\nOutput: 3
    \n\n

     

    \n
    \n
    \n\n
    \n
    \n
    \n
    \n

    Note:

    \n\n
      \n\t
    • 1 <= A.length <= 1000
    • \n\t
    • 1 <= A[i].length <= 20
    • \n\t
    • All A[i] have the same length.
    • \n\t
    • All A[i] consist of only lowercase letters.
    • \n
    \n
    \n
    \n
    \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nlong int calc_even(string a)\n{\n long int product = 1;\n int arr[26] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101};\n\n int n = a.length();\n for(int i = 0; i < n; i+=2) {\n product *= arr[(int)(a[i]) - 97];\n }\n\n return product;\n}\n\nlong int calc_odd(string a)\n{\n long int product = 1;\n int arr[26] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101};\n\n int n = a.length();\n for(int i = 1; i < n; i+=2) {\n product *= arr[(int)(a[i]) - 97];\n }\n\n return product;\n}\n\nclass Solution\n{\npublic:\n int numSpecialEquivGroups(vector &A)\n {\n vector matches;\n vector even_scores;\n vector odd_scores;\n\n for(string temp: A) {\n even_scores.push_back(calc_even(temp));\n odd_scores.push_back(calc_odd(temp));\n }\n\n int len = A.size();\n\n for (int i = 0; i < len; i++)\n {\n matches.push_back(-1);\n for (int j = i + 1; j < len; j++)\n {\n if (even_scores[i] == even_scores[j] && odd_scores[i] == odd_scores[j])\n {\n matches[i] = j;\n j = len;\n }\n }\n }\n\n int *group_id = (int *)malloc(sizeof(int) * len);\n fill_n(group_id, len, 0);\n\n int group_number = 0;\n\n for (int i = 0; i < len; i++)\n {\n if (!group_id[i])\n group_id[i] = ++group_number;\n if (matches[i] != -1)\n {\n group_id[matches[i]] = group_id[i];\n }\n }\n\n return group_number;\n }\n};"} \ No newline at end of file diff --git a/problems/897.json b/problems/897.json deleted file mode 100644 index 6510f7f..0000000 --- a/problems/897.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/increasing-order-search-tree", "name": "Increasing Order Search Tree", "difficulty": "Easy", "statement": "

    Given a binary search tree, rearrange the tree in in-order so that the leftmost node in the tree is now the root of the tree, and every node has no left child and only 1 right child.

    \n\n
    Example 1:\nInput: [5,3,6,2,4,null,8,1,null,null,null,7,9]\n\n       5\n      / \\\n    3    6\n   / \\    \\\n  2   4    8\n /        / \\ \n1        7   9\n\nOutput: [1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9]\n\n 1\n  \\\n   2\n    \\\n     3\n      \\\n       4\n        \\\n         5\n          \\\n           6\n            \\\n             7\n              \\\n               8\n                \\\n                 9  
    \n

     

    \n

    Constraints:

    \n\n
      \n\t
    • The number of nodes in the given tree will be between 1 and 100.
    • \n\t
    • Each node will have a unique integer value from 0 to 1000.
    • \n
    \n
    ", "language": "c", "solution": "#include\n\nstruct TreeNode\n{\n int val;\n struct TreeNode *left;\n struct TreeNode *right;\n};\n\nstruct TreeNode *increasingBST(struct TreeNode *root)\n{\n struct TreeNode *middle = (struct TreeNode *)malloc(sizeof(struct TreeNode));\n middle->right = NULL;\n middle->left = NULL;\n middle->val = root->val;\n\n struct TreeNode *left;\n\n if (root->left)\n {\n left = increasingBST(root->left);\n struct TreeNode *temp = left;\n while (temp->right)\n {\n temp = temp->right;\n }\n temp->right = middle;\n }\n\n if (root->right)\n {\n middle->right = increasingBST(root->right);\n }\n return root->left ? left : middle;\n}"} \ No newline at end of file diff --git a/problems/905.json b/problems/905.json deleted file mode 100644 index 9ef550b..0000000 --- a/problems/905.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/sort-array-by-parity", "name": "Sort Array By Parity", "difficulty": "Easy", "statement": "

    Given an array A of non-negative integers, return an array consisting of all the even elements of A, followed by all the odd elements of A.

    \n\n

    You may return any answer array that satisfies this condition.

    \n\n

     

    \n\n
    \n

    Example 1:

    \n\n
    Input: [3,1,2,4]\nOutput: [2,4,3,1]\nThe outputs [4,2,3,1], [2,4,1,3], and [4,2,1,3] would also be accepted.\n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    1. 1 <= A.length <= 5000
    2. \n\t
    3. 0 <= A[i] <= 5000
    4. \n
    \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n vector sortArrayByParity(vector& A) {\n\n vector even;\n vector odd;\n for(int i: A) if (i%2) odd.push_back(i); else even.push_back(i);\n for(int i: odd) even.push_back(i);\n return even;\n\n }\n};"} \ No newline at end of file diff --git a/problems/922.json b/problems/922.json deleted file mode 100644 index d51927b..0000000 --- a/problems/922.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/sort-array-by-parity-ii", "name": "Sort Array By Parity II", "difficulty": "Easy", "statement": "

    Given an array A of non-negative integers, half of the integers in A are odd, and half of the integers are even.

    \n\n

    Sort the array so that whenever A[i] is odd, i is odd; and whenever A[i] is even, i is even.

    \n\n

    You may return any answer array that satisfies this condition.

    \n\n

     

    \n\n

    Example 1:

    \n\n
    Input: [4,2,5,7]\nOutput: [4,5,2,7]\nExplanation: [4,7,2,5], [2,5,4,7], [2,7,4,5] would also have been accepted.\n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    1. 2 <= A.length <= 20000
    2. \n\t
    3. A.length % 2 == 0
    4. \n\t
    5. 0 <= A[i] <= 1000
    6. \n
    \n\n
    \n

     

    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n vector sortArrayByParityII(vector& A) {\n\n vector odd;\n vector even;\n\n vector res;\n\n for (int i: A) {\n if (i % 2) odd.push_back(i);\n else even.push_back(i);\n }\n\n int even_len = even.size();\n int odd_len = odd.size();\n\n for (int i = 0; i < odd_len; ++i) {\n res.push_back(even[i]);\n res.push_back(odd[i]);\n }\n\n if (even_len > odd_len) \n res.push_back(even[even_len - 1]);\n\n return res;\n \n }\n};"} \ No newline at end of file diff --git a/problems/929.json b/problems/929.json deleted file mode 100644 index 27f43ea..0000000 --- a/problems/929.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/unique-email-addresses", "name": "Unique Email Addresses", "difficulty": "Easy", "statement": "

    Every email consists of a local name and a domain name, separated by the @ sign.

    \n\n

    For example, in alice@leetcode.comalice is the local name, and leetcode.com is the domain name.

    \n\n

    Besides lowercase letters, these emails may contain '.'s or '+'s.

    \n\n

    If you add periods ('.') between some characters in the local name part of an email address, mail sent there will be forwarded to the same address without dots in the local name.  For example, \"alice.z@leetcode.com\" and \"alicez@leetcode.com\" forward to the same email address.  (Note that this rule does not apply for domain names.)

    \n\n

    If you add a plus ('+') in the local name, everything after the first plus sign will be ignored. This allows certain emails to be filtered, for example m.y+name@email.com will be forwarded to my@email.com.  (Again, this rule does not apply for domain names.)

    \n\n

    It is possible to use both of these rules at the same time.

    \n\n

    Given a list of emails, we send one email to each address in the list.  How many different addresses actually receive mails? 

    \n\n

     

    \n\n
    \n

    Example 1:

    \n\n
    Input: [\"test.email+alex@leetcode.com\",\"test.e.mail+bob.cathy@leetcode.com\",\"testemail+david@lee.tcode.com\"]\nOutput: 2\nExplanation: \"testemail@leetcode.com\" and \"testemail@lee.tcode.com\" actually receive mails\n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    • 1 <= emails[i].length <= 100
    • \n\t
    • 1 <= emails.length <= 100
    • \n\t
    • Each emails[i] contains exactly one '@' character.
    • \n\t
    • All local and domain names are non-empty.
    • \n\t
    • Local names do not start with a '+' character.
    • \n
    \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int numUniqueEmails(vector &emails)\n {\n\n set track;\n for (string email : emails)\n {\n stringstream processed;\n int plusenc = 0;\n int atenc = 0;\n for(char ch: email) {\n if (ch == '.' && !atenc) continue;\n if (ch == '+') plusenc = 1;\n if (ch == '@') atenc = 1;\n if (plusenc && !atenc) continue;\n processed << ch;\n }\n\n track.insert(processed.str());\n }\n\n return track.size();\n }\n};"} \ No newline at end of file diff --git a/problems/933.json b/problems/933.json deleted file mode 100644 index 641b2da..0000000 --- a/problems/933.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/number-of-recent-calls", "name": "Number of Recent Calls", "difficulty": "Easy", "statement": "

    Write a class RecentCounter to count recent requests.

    \n\n

    It has only one method: ping(int t), where t represents some time in milliseconds.

    \n\n

    Return the number of pings that have been made from 3000 milliseconds ago until now.

    \n\n

    Any ping with time in [t - 3000, t] will count, including the current ping.

    \n\n

    It is guaranteed that every call to ping uses a strictly larger value of t than before.

    \n\n

     

    \n\n

    Example 1:

    \n\n
    Input: inputs = [\"RecentCounter\",\"ping\",\"ping\",\"ping\",\"ping\"], inputs = [[],[1],[100],[3001],[3002]]\nOutput: [null,1,2,3,3]
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    1. Each test case will have at most 10000 calls to ping.
    2. \n\t
    3. Each test case will call ping with strictly increasing values of t.
    4. \n\t
    5. Each call to ping will have 1 <= t <= 10^9.
    6. \n
    \n\n
    \n

     

    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass RecentCounter\n{\n\npublic:\n vector pings;\n int size;\n int lastIndex;\n\n RecentCounter()\n {\n this->lastIndex = 0;\n this->size = 0;\n }\n\n int ping(int t)\n {\n this->pings.push_back(t);\n ++this->size;\n for (; this->lastIndex < this->size && this->pings[this->lastIndex] < t - 3000; ++this->lastIndex)\n ;\n return this->size - this->lastIndex;\n }\n};"} \ No newline at end of file diff --git a/problems/938.json b/problems/938.json deleted file mode 100644 index 6db17e1..0000000 --- a/problems/938.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/range-sum-of-bst", "name": "Range Sum of BST", "difficulty": "Easy", "statement": "

    Given the root node of a binary search tree, return the sum of values of all nodes with value between L and R (inclusive).

    \n\n

    The binary search tree is guaranteed to have unique values.

    \n\n

     

    \n\n
    \n

    Example 1:

    \n\n
    Input: root = [10,5,15,3,7,null,18], L = 7, R = 15\nOutput: 32\n
    \n\n
    \n

    Example 2:

    \n\n
    Input: root = [10,5,15,3,7,13,18,1,null,6], L = 6, R = 10\nOutput: 23\n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    1. The number of nodes in the tree is at most 10000.
    2. \n\t
    3. The final answer is guaranteed to be less than 2^31.
    4. \n
    \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\n/**\n * Definition for a binary tree node.\n * struct TreeNode {\n * int val;\n * TreeNode *left;\n * TreeNode *right;\n * TreeNode() : val(0), left(nullptr), right(nullptr) {}\n * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}\n * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}\n * };\n */\nclass Solution\n{\npublic:\n int rangeSumBST(TreeNode *root, int L, int R)\n {\n\n int sum = 0;\n if (root)\n {\n sum = root->val >= L && root->val <= R ? root->val : 0;\n sum += rangeSumBST(root->left, L, R);\n sum += rangeSumBST(root->right, L, R);\n }\n\n return sum;\n }\n};"} \ No newline at end of file diff --git a/problems/942.json b/problems/942.json deleted file mode 100644 index f92098c..0000000 --- a/problems/942.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/di-string-match", "name": "DI String Match", "difficulty": "Easy", "statement": "

    Given a string S that only contains \"I\" (increase) or \"D\" (decrease), let N = S.length.

    \n\n

    Return any permutation A of [0, 1, ..., N] such that for all i = 0, ..., N-1:

    \n\n
      \n\t
    • If S[i] == \"I\", then A[i] < A[i+1]
    • \n\t
    • If S[i] == \"D\", then A[i] > A[i+1]
    • \n
    \n\n

     

    \n\n

    Example 1:

    \n\n
    Input: \"IDID\"\nOutput: [0,4,1,3,2]\n
    \n\n
    \n

    Example 2:

    \n\n
    Input: \"III\"\nOutput: [0,1,2,3]\n
    \n\n
    \n

    Example 3:

    \n\n
    Input: \"DDI\"\nOutput: [3,2,0,1]
    \n
    \n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    1. 1 <= S.length <= 10000
    2. \n\t
    3. S only contains characters \"I\" or \"D\".
    4. \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n vector diStringMatch(string S) {\n\n vector res;\n\n int n = S.length();\n\n if (S[0] == 'I') res.push_back(0);\n else res.push_back(n);\n\n int ICount = count(S.begin(), S.end(), 'I');\n int DCount = n - ICount;\n\n int I, D;\n if (S[0] == 'I') {\n D = DCount;\n I = D+1;\n }\n else {\n D = DCount - 1;\n I = D+1;\n }\n\n for(char i: S) {\n if (i == 'I') res.push_back(I++);\n else res.push_back(D--);\n }\n\n return res;\n\n }\n};"} \ No newline at end of file diff --git a/problems/944.json b/problems/944.json deleted file mode 100644 index 15f8437..0000000 --- a/problems/944.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/delete-columns-to-make-sorted", "name": "Delete Columns to Make Sorted", "difficulty": "Easy", "statement": "

    We are given an array A of N lowercase letter strings, all of the same length.

    \n\n

    Now, we may choose any set of deletion indices, and for each string, we delete all the characters in those indices.

    \n\n

    For example, if we have an array A = [\"abcdef\",\"uvwxyz\"] and deletion indices {0, 2, 3}, then the final array after deletions is [\"bef\", \"vyz\"], and the remaining columns of A are [\"b\",\"v\"], [\"e\",\"y\"], and [\"f\",\"z\"].  (Formally, the c-th column is [A[0][c], A[1][c], ..., A[A.length-1][c]]).

    \n\n

    Suppose we chose a set of deletion indices D such that after deletions, each remaining column in A is in non-decreasing sorted order.

    \n\n

    Return the minimum possible value of D.length.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: A = [\"cba\",\"daf\",\"ghi\"]\nOutput: 1\nExplanation: \nAfter choosing D = {1}, each column [\"c\",\"d\",\"g\"] and [\"a\",\"f\",\"i\"] are in non-decreasing sorted order.\nIf we chose D = {}, then a column [\"b\",\"a\",\"h\"] would not be in non-decreasing sorted order.\n
    \n\n

    Example 2:

    \n\n
    Input: A = [\"a\",\"b\"]\nOutput: 0\nExplanation: D = {}\n
    \n\n

    Example 3:

    \n\n
    Input: A = [\"zyx\",\"wvu\",\"tsr\"]\nOutput: 3\nExplanation: D = {0, 1, 2}\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= A.length <= 100
    • \n\t
    • 1 <= A[i].length <= 1000
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int minDeletionSize(vector &A)\n {\n\n int len = A[0].length();\n int n = A.size();\n\n int del[len];\n fill_n(del, len, 0);\n\n for(int i = 0; i < n-1; i++) {\n for(int j = 0; j < len; j++) {\n if (A[i][j] > A[i+1][j]) {\n del[j] = 1;\n \n }\n }\n }\n\n int count = 0;\n for(int i: del)\n count += i;\n\n return count;\n\n }\n};"} \ No newline at end of file diff --git a/problems/961.json b/problems/961.json deleted file mode 100644 index 6c6134b..0000000 --- a/problems/961.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/n-repeated-element-in-size-2n-array", "name": "N-Repeated Element in Size 2N Array", "difficulty": "Easy", "statement": "

    In a array A of size 2N, there are N+1 unique elements, and exactly one of these elements is repeated N times.

    \n\n

    Return the element repeated N times.

    \n\n

     

    \n\n
      \n
    \n\n
    \n

    Example 1:

    \n\n
    Input: [1,2,3,3]\nOutput: 3\n
    \n\n
    \n

    Example 2:

    \n\n
    Input: [2,1,2,5,3,2]\nOutput: 2\n
    \n\n
    \n

    Example 3:

    \n\n
    Input: [5,1,5,2,5,3,5,4]\nOutput: 5\n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    • 4 <= A.length <= 10000
    • \n\t
    • 0 <= A[i] < 10000
    • \n\t
    • A.length is even
    • \n
    \n
    \n
    \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n int repeatedNTimes(vector& A) {\n\n int v[100001];\n fill_n(v, 100001, 0);\n for(int i: A) if (v[i]++) return i;\n\n }\n};"} \ No newline at end of file diff --git a/problems/965.json b/problems/965.json deleted file mode 100644 index c11e749..0000000 --- a/problems/965.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/univalued-binary-tree", "name": "Univalued Binary Tree", "difficulty": "Easy", "statement": "

    A binary tree is univalued if every node in the tree has the same value.

    \n\n

    Return true if and only if the given tree is univalued.

    \n\n

     

    \n\n

    Example 1:

    \n\"\"\n
    Input: [1,1,1,1,1,null,1]\nOutput: true\n
    \n\n
    \n

    Example 2:

    \n\"\"\n
    Input: [2,2,2,5,2]\nOutput: false\n
    \n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    1. The number of nodes in the given tree will be in the range [1, 100].
    2. \n\t
    3. Each node's value will be an integer in the range [0, 99].
    4. \n
    \n
    ", "language": "c", "solution": "\nstruct TreeNode\n{\n int val;\n struct TreeNode *left;\n struct TreeNode *right;\n};\n\nbool isUnivalTree(struct TreeNode *root)\n{\n if(!root) return true;\n if(root->left) {\n if (root->left->val != root->val) return false;\n if (!isUnivalTree(root->left)) return false;\n }\n if(root->right) {\n if (root->right->val != root->val) return false;\n if (!isUnivalTree(root->right)) return false;\n }\n\n return true;\n\n}"} \ No newline at end of file diff --git a/problems/977.json b/problems/977.json deleted file mode 100644 index 5299871..0000000 --- a/problems/977.json +++ /dev/null @@ -1 +0,0 @@ -{"link": "https://leetcode.com/problems/squares-of-a-sorted-array", "name": "Squares of a Sorted Array", "difficulty": "Easy", "statement": "

    Given an array of integers A sorted in non-decreasing order, return an array of the squares of each number, also in sorted non-decreasing order.

    \n\n

     

    \n\n
    \n

    Example 1:

    \n\n
    Input: [-4,-1,0,3,10]\nOutput: [0,1,9,16,100]\n
    \n\n
    \n

    Example 2:

    \n\n
    Input: [-7,-3,2,3,11]\nOutput: [4,9,9,49,121]\n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    1. 1 <= A.length <= 10000
    2. \n\t
    3. -10000 <= A[i] <= 10000
    4. \n\t
    5. A is sorted in non-decreasing order.
    6. \n
    \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n vector sortedSquares(vector& A) {\n\n vector res;\n\n for(int i: A) res.push_back(i*i);\n\n sort(res.begin(), res.end());\n\n return res;\n \n }\n};"} \ No newline at end of file diff --git a/public/index.html b/public/index.html deleted file mode 100644 index f786b41..0000000 --- a/public/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - Leetcode Solutions - - - - -
    - - diff --git a/public/robots.txt b/robots.txt similarity index 100% rename from public/robots.txt rename to robots.txt diff --git a/service-worker.js b/service-worker.js new file mode 100644 index 0000000..a3e97e8 --- /dev/null +++ b/service-worker.js @@ -0,0 +1,39 @@ +/** + * Welcome to your Workbox-powered service worker! + * + * You'll need to register this file in your web app and you should + * disable HTTP caching for this file too. + * See https://goo.gl/nhQhGp + * + * The rest of the code is auto-generated. Please don't update this file + * directly; instead, make changes to your Workbox build configuration + * and re-run your build process. + * See https://goo.gl/2aRDsh + */ + +importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); + +importScripts( + "/leetcode/precache-manifest.c18e282f527e738ff22f58d8288588ee.js" +); + +self.addEventListener('message', (event) => { + if (event.data && event.data.type === 'SKIP_WAITING') { + self.skipWaiting(); + } +}); + +workbox.core.clientsClaim(); + +/** + * The workboxSW.precacheAndRoute() method efficiently caches and responds to + * requests for URLs in the manifest. + * See https://goo.gl/S9QRab + */ +self.__precacheManifest = [].concat(self.__precacheManifest || []); +workbox.precaching.precacheAndRoute(self.__precacheManifest, {}); + +workbox.routing.registerNavigationRoute(workbox.precaching.getCacheKeyForURL("/leetcode/index.html"), { + + blacklist: [/^\/_/,/\/[^/?]+\.[^/]+$/], +}); diff --git a/solutions/easy/1002.cpp b/solutions/easy/1002.cpp deleted file mode 100644 index 5bc10f2..0000000 --- a/solutions/easy/1002.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - vector commonChars(vector &A) - { - - int len = A.size(); - vector> m; - for (int i = 0; i < 26; i++) - { - vector t; - for (string temp : A) - t.push_back(0); - m.push_back(t); - } - - for (int i = 0; i < len; ++i) - { - for (char ch : A[i]) - { - ++m[(int)(ch)-97][i]; - } - } - - vector out; - - for (int i = 0; i < 26; i++) - { - vector counts = m[i]; - int min_count = *min_element(counts.begin(), counts.end()); - stringstream s; - s << (char)(i + 97); - for (int j = 0; j < min_count; ++j) - { - out.push_back(s.str()); - } - } - - return out; - } -}; \ No newline at end of file diff --git a/solutions/easy/1021.cpp b/solutions/easy/1021.cpp deleted file mode 100644 index 20a151f..0000000 --- a/solutions/easy/1021.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - string removeOuterParentheses(string S) - { - - int n = S.length(); - char res[n]; - - fill_n(res, n, '\0'); - - int pos = 0; - int diff = 0; - for (char i : S) - { - - if (i == '(') - { - if (diff) - { - res[pos] = '('; - ++pos; - } - ++diff; - } - else - { - --diff; - if (diff) - { - res[pos] = ')'; - ++pos; - } - } - } - - string r(res); - - return r; - } -}; \ No newline at end of file diff --git a/solutions/easy/1022.c b/solutions/easy/1022.c deleted file mode 100644 index 4cd6e9e..0000000 --- a/solutions/easy/1022.c +++ /dev/null @@ -1,28 +0,0 @@ -#include - -struct TreeNode -{ - int val; - struct TreeNode *left; - struct TreeNode *right; -}; - -int sumRootToLeaf(struct TreeNode *root) -{ - return findSum(root, 0); -} - -int findSum(struct TreeNode *root, int prevSum) { - - int sum = 0; - - if (root->left) - sum += findSum(root->left, 2*prevSum + root->val); - if (root->right) - sum += findSum(root->right, 2*prevSum + root->val); - - if (!root->left && !root->right) - return prevSum*2 + root->val; - return sum; - -} \ No newline at end of file diff --git a/solutions/easy/1047.cpp b/solutions/easy/1047.cpp deleted file mode 100644 index 4dfba1d..0000000 --- a/solutions/easy/1047.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - string removeDuplicates(string S) - { - - stringstream out; - vector s; - for (char ch : S) - s.push_back(ch); - - int n = S.length(); - - for (int i = 0; i < n - 1; i++) - { - - if (s[i] == s[i + 1]) - { - - s.erase(s.begin() + i+1); - s.erase(s.begin() + i); - - i -= 2; - n -= 2; - - if (i < -1) - i = -1; - - } - } - - for(char ch: s) out << ch; - - return out.str(); - } -}; \ No newline at end of file diff --git a/solutions/easy/1051.cpp b/solutions/easy/1051.cpp deleted file mode 100644 index 0fc9626..0000000 --- a/solutions/easy/1051.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - int heightChecker(vector &heights) - { - - vector dup = heights; - sort(dup.begin(), dup.end()); - int count = 0; - int n = heights.size(); - for (int i = 0; i < n; i++) - { - if (dup[i] != heights[i]) - ++count; - } - - return count; - } -}; \ No newline at end of file diff --git a/solutions/easy/1108.cpp b/solutions/easy/1108.cpp deleted file mode 100644 index b994f88..0000000 --- a/solutions/easy/1108.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - string defangIPaddr(string address) - { - - int a, b, c, d; - - char arr[address.length() + 1]; - - strcpy(arr, address.c_str()); - - sscanf(arr, "%d.%d.%d.%d", &a, &b, &c, &d); - - char res_arr[address.length() + 1 + 10]; - - sprintf(res_arr, "%d[.]%d[.]%d[.]%d", a, b, c, d); - - string res(res_arr); - - return res; - } -}; \ No newline at end of file diff --git a/solutions/easy/1122.cpp b/solutions/easy/1122.cpp deleted file mode 100644 index 63e5ab5..0000000 --- a/solutions/easy/1122.cpp +++ /dev/null @@ -1,57 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - vector relativeSortArray(vector &arr1, vector &arr2) - { - - int *m1 = (int *)malloc(sizeof(int) * 1001); - fill_n(m1, 1001, 0); - - for (int i : arr1) - ++m1[i]; - - int *m2 = (int *)malloc(sizeof(int) * 1001); - fill_n(m2, 1001, 0); - - for (int i : arr2) - ++m2[i]; - - vector out; - vector exc; - - for (int i : arr2) - { - if (m2[i]) - { - int count = m1[i]; - for (int j = 0; j < count; ++j) - { - out.push_back(i); - } - } - } - - for (int i = 0; i <= 1000; ++i) - { - if (!m2[i]) - { - int count = m1[i]; - for (int j = 0; j < count; ++j) - { - exc.push_back(i); - } - } - } - - sort(exc.begin(), exc.end()); - for (int i : exc) - out.push_back(i); - - return out; - } -}; \ No newline at end of file diff --git a/solutions/easy/1160.cpp b/solutions/easy/1160.cpp deleted file mode 100644 index 3c078d6..0000000 --- a/solutions/easy/1160.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - int countCharacters(vector &words, string chars) - { - - int sum = 0; - int *count = (int *)malloc(sizeof(int) * 26); - fill_n(count, 26, 0); - - for (char ch : chars) - { - ++count[(int)(ch)-97]; - } - - for (string s : words) - { - int *count_t = (int *)malloc(sizeof(int) * 26); - fill_n(count_t, 26, 0); - - for (char ch : s) - { - ++count_t[(int)(ch)-97]; - } - - int check = 1; - - for(int i = 0; i < 26; i++) { - if (count_t[i] > count[i]) { - check = 0; - break; - } - } - - if (check) sum += s.length(); - } - return sum; - } -}; \ No newline at end of file diff --git a/solutions/easy/1207.cpp b/solutions/easy/1207.cpp deleted file mode 100644 index 21e84cd..0000000 --- a/solutions/easy/1207.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - bool uniqueOccurrences(vector& arr) { - - vector count; - for(int i = 0; i < 2001; i++) { - count.push_back(0); - } - - for (int i: arr) - ++count[i+1000]; - - sort(count.begin(), count.end()); - int n = count.size(); - - for(int i = 0; i < n - 1; i++) { - if (count[i] > 0 && count[i] == count[i+1]) return false; - } - return true; - - } -}; \ No newline at end of file diff --git a/solutions/easy/1221.cpp b/solutions/easy/1221.cpp deleted file mode 100644 index 9b37e8a..0000000 --- a/solutions/easy/1221.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - int balancedStringSplit(string s) - { - - int count = 0; - int diff = 0; - int n = s.length(); - - for(char i: s) { - if (i == 'L') diff--; - else diff++; - - if (diff == 0){ - count ++; - } - } - - return count; - } -}; \ No newline at end of file diff --git a/solutions/easy/1237.cpp b/solutions/easy/1237.cpp deleted file mode 100644 index 56b603b..0000000 --- a/solutions/easy/1237.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#include -#include - -using namespace std; - -class CustomFunction -{ -public: - // Returns f(x, y) for any given positive integers x and y. - // Note that f(x, y) is increasing with respect to both x and y. - // i.e. f(x, y) < f(x + 1, y), f(x, y) < f(x, y + 1) - int f(int x, int y); -}; - -class Solution -{ -public: - vector> findSolution(CustomFunction &customfunction, int z) - { - - vector> res; - for (int x = 1; x <= 1000; x++) - { - for (int y = 1; y <= 1000; y++) - { - int val = customfunction.f(x, y); - if (val == z) - { - vector r = {x, y}; - res.push_back(r); - break; - } - if (val > z) - { - break; - } - } - } - - return res; - } -}; \ No newline at end of file diff --git a/solutions/easy/1252.cpp b/solutions/easy/1252.cpp deleted file mode 100644 index e91bd59..0000000 --- a/solutions/easy/1252.cpp +++ /dev/null @@ -1,45 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - int oddCells(int n, int m, vector> &indices) - { - - int arr[n][m]; - - for (int i = 0; i < n; i++) - { - fill_n(arr[i], m, 0); - } - - for (vector i : indices) - { - int r = i[0]; - int c = i[1]; - - for (int k = 0; k < m; k++) - { - ++arr[r][k]; - } - - for (int k = 0; k < n; k++) - { - ++arr[k][c]; - } - } - - int count = 0; - - for(int i = 0; i < n; i++) { - for(int j: arr[i]) { - count += j%2; - } - } - - return count; - } -}; \ No newline at end of file diff --git a/solutions/easy/1266.cpp b/solutions/easy/1266.cpp deleted file mode 100644 index e69c0f7..0000000 --- a/solutions/easy/1266.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - int minTimeToVisitAllPoints(vector>& points) { - - int cost = 0; - int n = points.size(); - - for(int i = 0; i < n - 1; i++) { - - vector a = points[i]; - vector b = points[i+1]; - - cost += max(abs(a[0]-b[0]), abs(a[1]-b[1])); - - cout << cost << endl; - - } - return cost; - - } -}; \ No newline at end of file diff --git a/solutions/easy/1281.cpp b/solutions/easy/1281.cpp deleted file mode 100644 index 409beec..0000000 --- a/solutions/easy/1281.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - int subtractProductAndSum(int n) { - int sum = 0; - int prod = 1; - - while (n) { - int rem = n % 10; - sum += rem; - prod *= rem; - n /= 10; - } - - if (sum > prod) { - return sum - prod; - } - return prod - sum; - } -}; \ No newline at end of file diff --git a/solutions/easy/1290.cpp b/solutions/easy/1290.cpp deleted file mode 100644 index 275d153..0000000 --- a/solutions/easy/1290.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - int getDecimalValue(ListNode* head) { - - int res = 0; - - while(head) { - res = res*2 + head->val; - head = head->next; - } - - return res; - - } -}; \ No newline at end of file diff --git a/solutions/easy/1295.cpp b/solutions/easy/1295.cpp deleted file mode 100644 index ee1d4df..0000000 --- a/solutions/easy/1295.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include - -using namespace std; - -class Solution { -public: - int findNumbers(vector& nums) { - - int count = 0; - for (int i: nums) { - if ((int)ceil(log10(i+1)) % 2 == 0) - count ++; - } - - return count; - - } -}; \ No newline at end of file diff --git a/solutions/easy/1299.cpp b/solutions/easy/1299.cpp deleted file mode 100644 index 9f7113f..0000000 --- a/solutions/easy/1299.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - vector replaceElements(vector& arr) { - - vector res; - int n = arr.size(); - for (int i: arr) { - res.push_back(-1); - } - - for(int i = 0; i < n; i++) { - for(int j = i+1; j < n; j++) { - if (arr[j] > res[i]) { - res[i] = arr[j]; - } - } - } - - return res; - - } -}; \ No newline at end of file diff --git a/solutions/easy/1304.cpp b/solutions/easy/1304.cpp deleted file mode 100644 index 0d3037c..0000000 --- a/solutions/easy/1304.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - vector sumZero(int n) { - - vector res; - - for (int i = 1; i <= (n/2); i++) { - res.push_back(i); - res.push_back(i*-1); - } - - if (n%2) - res.push_back(0); - - return res; - - } -}; \ No newline at end of file diff --git a/solutions/easy/1309.cpp b/solutions/easy/1309.cpp deleted file mode 100644 index 89fa2ba..0000000 --- a/solutions/easy/1309.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - string freqAlphabets(string s) { - - stringstream res; - - int n = s.length(); - - for(int i = 0; i < n; i++) { - if (i+2 < n && s[i+2] == '#') { - - int a = (int)s[i] - 48; - int b = (int)s[i+1] - 48; - - char r = (char)(106 + (a-1)*10 + b); - res << r; - i += 2; - } - else { - char r = (char)((int)s[i] + 48); - res << r; - } - } - - return res.str(); - - } -}; \ No newline at end of file diff --git a/solutions/easy/1313.cpp b/solutions/easy/1313.cpp deleted file mode 100644 index ab1ad72..0000000 --- a/solutions/easy/1313.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - vector decompressRLElist(vector& nums) { - - int n = nums.size(); - - vector res; - - for (int i = 0; i < n / 2; i ++) { - for(int j = 0; j < nums[2*i]; j ++) { - res.push_back(nums[2*i + 1]); - } - } - - return res; - - } -}; \ No newline at end of file diff --git a/solutions/easy/1323.cpp b/solutions/easy/1323.cpp deleted file mode 100644 index bc85f29..0000000 --- a/solutions/easy/1323.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include -#include - -using namespace std; - -class Solution { -public: - int maximum69Number (int num) { - - int temp = num; - - int mult = 1; - int val = 0; - - while(num) { - int rem = num%10; - if (rem == 6) { - val = 3*mult; - } - mult *= 10; - num /= 10; - } - - return temp + val; - } -}; \ No newline at end of file diff --git a/solutions/easy/1337.cpp b/solutions/easy/1337.cpp deleted file mode 100644 index db668be..0000000 --- a/solutions/easy/1337.cpp +++ /dev/null @@ -1,48 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - vector kWeakestRows(vector> &mat, int k) - { - - int m = mat.size(); - int n = mat[0].size(); - - int *arr = (int *)malloc(sizeof(int) * m); - fill_n(arr, m, 0); - - vector output; - output.reserve(k); - - int done = 0; - - for (int i = 0; i < n && done < k; i++) - { - for (int j = 0; j < m && done < k; j++) - { - if (!(mat[j][i] || arr[j])) - { - output.push_back(j); - arr[j] = 1; - ++done; - } - } - } - - if (done != k) { - for(int i = 0; i < m && done < k; i++) { - if (!arr[i]) { - ++done; - output.push_back(i); - } - } - } - - - return output; - } -}; \ No newline at end of file diff --git a/solutions/easy/1342.cpp b/solutions/easy/1342.cpp deleted file mode 100644 index 58b82b0..0000000 --- a/solutions/easy/1342.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - int numberOfSteps(int num) - { - int count = 0; - - while (num != 0) - { - count++; - if (num % 2 == 0) - { - num /= 2; - } - else { - num -= 1; - } - } - - return count; - } -}; \ No newline at end of file diff --git a/solutions/easy/1351.cpp b/solutions/easy/1351.cpp deleted file mode 100644 index e469b24..0000000 --- a/solutions/easy/1351.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - int countNegatives(vector>& grid) { - - int count = 0; - - for(vector x: grid) { - for(int a: x) { - if (a < 0) ++count; - } - } - return count; - - } -}; \ No newline at end of file diff --git a/solutions/easy/1356.cpp b/solutions/easy/1356.cpp deleted file mode 100644 index 1c546a4..0000000 --- a/solutions/easy/1356.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace std; - -int one_count(int a) { - if (a == 0) return 0; - return a % 2 + one_count(a / 2); -} - -bool comp(int a, int b) -{ - int c = one_count(a); - int d = one_count(b); - if (c == d) { - return a < b; - } - return c < d; -} - -class Solution -{ -public: - vector sortByBits(vector &arr) - { - sort(arr.begin(), arr.end()); - sort(arr.begin(), arr.end(), comp); - return arr; - } -}; \ No newline at end of file diff --git a/solutions/easy/1365.cpp b/solutions/easy/1365.cpp deleted file mode 100644 index ab4bf9d..0000000 --- a/solutions/easy/1365.cpp +++ /dev/null @@ -1,37 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - vector smallerNumbersThanCurrent(vector &nums) - { - - vector temp = nums; - - sort(temp.begin(), temp.end()); - - int first_pos[101]; - fill_n(first_pos, 101, -1); - - int n = temp.size(); - - for (int i = 0; i < n; i++) { - if (first_pos[temp[i]] == -1) { - first_pos[temp[i]] = i; - } - } - - vector res; - - for (int i = 0; i < n; i++) { - res.push_back(first_pos[nums[i]]); - } - - return res; - - - } -}; \ No newline at end of file diff --git a/solutions/easy/1370.cpp b/solutions/easy/1370.cpp deleted file mode 100644 index 8212bc3..0000000 --- a/solutions/easy/1370.cpp +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - string sortString(string s) { - - int n = s.length(); - - int count[26]; - fill_n(count, 26, 0); - - stringstream ss; - - for(char i: s) { - ++count[(int)(i) - 97]; - } - - int max_count = -1; - for(int i: count) { - max_count = max_count > i ? max_count : i; - } - - for (int step = 1; step <= max_count; ++step ) { - - for (int i = 0; i < 26; i++) { - if (count[i] >= step) { - ss << (char)(i + 97); - } - } - - ++step; - - for (int i = 25; i >= 0; i--) { - if (count[i] >= step) { - ss << (char)(i + 97); - } - } - - } - - return ss.str(); - - } -}; \ No newline at end of file diff --git a/solutions/easy/1374.cpp b/solutions/easy/1374.cpp deleted file mode 100644 index a5c82d1..0000000 --- a/solutions/easy/1374.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - string generateTheString(int n) - { - - stringstream ss; - - if (n % 2) - { - for (int i = 0; i < n; i++) - { - ss << 'a'; - } - } - else - { - for (int i = 0; i < n - 1; i++) - { - ss << 'a'; - } - ss << 'b'; - } - - return ss.str(); - } -}; \ No newline at end of file diff --git a/solutions/easy/1380.cpp b/solutions/easy/1380.cpp deleted file mode 100644 index 1f85c96..0000000 --- a/solutions/easy/1380.cpp +++ /dev/null @@ -1,37 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - vector luckyNumbers(vector> &matrix) - { - - int m = matrix.size(); - int n = matrix[0].size(); - - int min_row[m]; - int max_col[n]; - - fill_n(min_row, m, 1000000); - fill_n(max_col, n, 0); - - for (int i = 0; i < m; i++) - for (int j = 0; j < n; j++) - { - min_row[i] = min_row[i] < matrix[i][j] ? min_row[i] : matrix[i][j]; - max_col[j] = max_col[j] > matrix[i][j] ? max_col[j] : matrix[i][j]; - } - - vector res; - - for (int i = 0; i < m; i++) - for (int j = 0; j < n; j++) - if (min_row[i] == matrix[i][j] && max_col[j] == matrix[i][j]) - res.push_back(matrix[i][j]); - - return res; - } -}; \ No newline at end of file diff --git a/solutions/easy/1389.cpp b/solutions/easy/1389.cpp deleted file mode 100644 index a8196b9..0000000 --- a/solutions/easy/1389.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - vector createTargetArray(vector &nums, vector &index) - { - - int n = nums.size(); - - vector res; - - for (int i = 0; i < n; i++) - { - res.insert(res.begin() + index[i], nums[i]); - } - - return res; - } -}; \ No newline at end of file diff --git a/solutions/easy/1403.cpp b/solutions/easy/1403.cpp deleted file mode 100644 index 2869d31..0000000 --- a/solutions/easy/1403.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - vector minSubsequence(vector& nums) { - - sort(nums.begin(), nums.end()); - reverse(nums.begin(), nums.end()); - int sum = 0; - int totalsum = 0; - vector res; - - for(int i: nums) - totalsum += i; - - for (int i: nums) { - sum += i; - res.push_back(i); - if (sum > totalsum / 2) { - break; - } - } - - return res; - - } -}; \ No newline at end of file diff --git a/solutions/easy/1431.cpp b/solutions/easy/1431.cpp deleted file mode 100644 index 3d3b3d8..0000000 --- a/solutions/easy/1431.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - vector kidsWithCandies(vector& candies, int extraCandies) { - vector res; - long int max = 0; - for(int i = 0; i < candies.size(); i++) { - max = max > candies[i] ? max : candies[i]; - } - for(int i: candies) { - res.push_back(i + extraCandies >= max); - } - - return res; - } -}; \ No newline at end of file diff --git a/solutions/easy/1436.cpp b/solutions/easy/1436.cpp deleted file mode 100644 index 3d7cb6c..0000000 --- a/solutions/easy/1436.cpp +++ /dev/null @@ -1,34 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - string destCity(vector>& paths) { - - - set all; - for (vector path: paths) { - all.insert(path[0]); - all.insert(path[1]); - } - - set outonly; - for (vector path: paths) { - outonly.insert(path[0]); - } - - string city; - - for(string c: all) { - if (outonly.find(c) == outonly.end()) { - city = c; - break; - } - } - - return city; - - } -}; \ No newline at end of file diff --git a/solutions/easy/1441.cpp b/solutions/easy/1441.cpp deleted file mode 100644 index f3774c4..0000000 --- a/solutions/easy/1441.cpp +++ /dev/null @@ -1,34 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - vector buildArray(vector &target, int n) - { - - string push = "Push"; - string pop = "Pop"; - - vector res; - - int index = 0; - - for (int num = 1; index < target.size() && num <= n; ++num) - { - res.push_back(push); - if (num == target[index]) - { - ++index; - } - else - { - res.push_back(pop); - } - } - - return res; - } -}; \ No newline at end of file diff --git a/solutions/easy/1450.cpp b/solutions/easy/1450.cpp deleted file mode 100644 index c37eab9..0000000 --- a/solutions/easy/1450.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - int busyStudent(vector& startTime, vector& endTime, int queryTime) { - - int count = 0; - - for(int i = 0; i < startTime.size(); i++) { - if (queryTime >= startTime[i] && queryTime <= endTime[i]) ++count; - } - - return count; - - } -}; \ No newline at end of file diff --git a/solutions/easy/1464.cpp b/solutions/easy/1464.cpp deleted file mode 100644 index 1cc54ec..0000000 --- a/solutions/easy/1464.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - int maxProduct(vector& nums) { - - sort(nums.begin(), nums.end()); - int n = nums.size(); - - return (nums[n-1]-1)*(nums[n-2]-1); - } -}; \ No newline at end of file diff --git a/solutions/easy/1470.cpp b/solutions/easy/1470.cpp deleted file mode 100644 index 0403c99..0000000 --- a/solutions/easy/1470.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - vector shuffle(vector& nums, int n) { - vector res; - for(int i = 0; i < n; i++) { - res.push_back(nums[i]); - res.push_back(nums[i + n]); - } - return res; - } -}; \ No newline at end of file diff --git a/solutions/easy/1475.cpp b/solutions/easy/1475.cpp deleted file mode 100644 index e4a1452..0000000 --- a/solutions/easy/1475.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - vector finalPrices(vector &prices) - { - - int n = prices.size(); - - for (int i = 0; i < n; i++) - { - for (int j = i + 1; j < n; j++) - { - if (prices[j] <= prices[i]) - { - prices[i] -= prices[j]; - break; - } - } - } - - return prices; - } -}; \ No newline at end of file diff --git a/solutions/easy/1480.cpp b/solutions/easy/1480.cpp deleted file mode 100644 index 4e357be..0000000 --- a/solutions/easy/1480.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - vector runningSum(vector &nums) - { - - vector res; - - res.push_back(nums[0]); - - int sum = res[0]; - - for (int i = 1; i < nums.size(); i++) - { - sum += nums[i]; - res.push_back(sum); - } - - return res; - } -}; \ No newline at end of file diff --git a/solutions/easy/1486.cpp b/solutions/easy/1486.cpp deleted file mode 100644 index ee1362a..0000000 --- a/solutions/easy/1486.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - int xorOperation(int n, int start) { - int res = start; - - for(int i = 1; i < n; i++) { - res ^= (start + 2 * i); - } - - return res; - } -}; \ No newline at end of file diff --git a/solutions/easy/1491.cpp b/solutions/easy/1491.cpp deleted file mode 100644 index 5ac9c75..0000000 --- a/solutions/easy/1491.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - double average(vector &salary) - { - sort(salary.begin(), salary.end()); - int n = salary.size(); - int sum = 0; - for (double i : salary) - sum += i; - sum -= salary[0]; - sum -= salary[n - 1]; - - return (double)(sum / (double)(n - 2)); - } -}; \ No newline at end of file diff --git a/solutions/easy/1502.cpp b/solutions/easy/1502.cpp deleted file mode 100644 index b0ddf7f..0000000 --- a/solutions/easy/1502.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include - -#include - -using namespace std; - -class Solution -{ -public: - bool canMakeArithmeticProgression(vector &arr) - { - sort(arr.begin(), arr.end()); - int diff; - if (arr.size() > 1) - diff = arr[1] - arr[0]; - for (int i = 0; i < arr.size() - 1; i++) - { - if (diff != arr[i + 1] - arr[i]) - return false; - } - return true; - } -}; \ No newline at end of file diff --git a/solutions/easy/1512.cpp b/solutions/easy/1512.cpp deleted file mode 100644 index 6b205b9..0000000 --- a/solutions/easy/1512.cpp +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - int numIdenticalPairs(vector& nums) { - - int visited[101]; - fill_n(visited, 101, 0); - - int count = 0; - - for (int i: nums) { - visited[i] += 1; - } - - for (int i: visited) { - count += (i * (i-1)) / 2; - } - - return count; - } -}; \ No newline at end of file diff --git a/solutions/easy/1528.cpp b/solutions/easy/1528.cpp deleted file mode 100644 index 46a5a9b..0000000 --- a/solutions/easy/1528.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - string restoreString(string s, vector &indices) - { - - int n = s.length(); - - char arr[n+1]; - fill_n(arr, n+1, '\0'); - - for (int i = 0; i < n; i++) - { - arr[indices[i]] = s[i]; - } - string res(arr); - return res; - } -}; \ No newline at end of file diff --git a/solutions/easy/1534.cpp b/solutions/easy/1534.cpp deleted file mode 100644 index 786c36e..0000000 --- a/solutions/easy/1534.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - int countGoodTriplets(vector& arr, int a, int b, int c) { - int n = arr.size(); - - int count = 0; - - for(int i= 0; i < n; i++) { - for (int j = i+1; j < n; j++) { - for (int k = j+1; k < n; k++) { - if ( abs(arr[i] - arr[j]) <= a && abs(arr[j]-arr[k]) <= b && abs(arr[i] - arr[k])<=c ) count++; - } - } - } - - return count; - } -}; \ No newline at end of file diff --git a/solutions/easy/1572.cpp b/solutions/easy/1572.cpp deleted file mode 100644 index d186926..0000000 --- a/solutions/easy/1572.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - int diagonalSum(vector> &mat) - { - - int n = mat.size(); - int sum = 0; - for (int i = 0; i < n; i++) - { - sum += mat[i][i]; - if (i != n-i-1) sum += mat[i][n-i-1]; - } - return sum; - } -}; \ No newline at end of file diff --git a/solutions/easy/1588.cpp b/solutions/easy/1588.cpp deleted file mode 100644 index 4224224..0000000 --- a/solutions/easy/1588.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - int sumOddLengthSubarrays(vector &arr) - { - - int n = arr.size(); - - int sum = 0; - - for (int i = 0; i < n; i++) - { - for (int j = i; j < n; j += 2) - { - for(int k = i; k <= j; k++) { - sum += arr[k]; - } - } - } - - return sum; - } -}; \ No newline at end of file diff --git a/solutions/easy/1603.cpp b/solutions/easy/1603.cpp deleted file mode 100644 index 0645a57..0000000 --- a/solutions/easy/1603.cpp +++ /dev/null @@ -1,58 +0,0 @@ -#include -#include - -using namespace std; - -class ParkingSystem -{ -public: - int b, s, m; - int c_big, c_small, c_medium; - - ParkingSystem(int big, int medium, int small) - { - b = 0; - s = 0; - m = 0; - c_big = big; - c_medium = medium; - c_small = small; - } - - bool addCar(int carType) - { - switch (carType) - { - case 3: - if (s < c_small) - { - ++s; - cout << s; - return true; - } - return false; - break; - case 2: - if (m < c_medium) - { - ++m; - cout << m; - return true; - } - return false; - break; - case 1: - if (b < c_big) - { - cout << b; - ++b; - return true; - } - return false; - break; - default: - break; - } - return false; - } -}; \ No newline at end of file diff --git a/solutions/easy/1614.cpp b/solutions/easy/1614.cpp deleted file mode 100644 index 5584524..0000000 --- a/solutions/easy/1614.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - int maxDepth(string s) - { - - int max_depth = 0; - int current_depth = 0; - - for (char ch : s) - { - if (ch == '(') - ++current_depth; - else if (ch == ')') - --current_depth; - max_depth = max_depth > current_depth ? max_depth : current_depth; - } - - return max_depth; - } -}; \ No newline at end of file diff --git a/solutions/easy/344.cpp b/solutions/easy/344.cpp deleted file mode 100644 index 30a45d5..0000000 --- a/solutions/easy/344.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - void reverseString(vector &s) - { - int n = s.size(); - for(int i = 0; i < n / 2; i++) { - int temp = s[i]; - s[i] = s[n - i - 1]; - s[n - i - 1] = temp; - } - } -}; \ No newline at end of file diff --git a/solutions/easy/461.cpp b/solutions/easy/461.cpp deleted file mode 100644 index b7e74c9..0000000 --- a/solutions/easy/461.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - int hammingDistance(int x, int y) { - - int count = 0; - while (x || y) { - if (x % 2 != y % 2) count ++; - x /= 2; y/= 2; - } - - return count; - - } -}; \ No newline at end of file diff --git a/solutions/easy/509.cpp b/solutions/easy/509.cpp deleted file mode 100644 index 6db8341..0000000 --- a/solutions/easy/509.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - int fib(int N) - { - int *arr = (int *)malloc(sizeof(int) * N + 1); - - int n = N; - if (n == 0) return 0; - if (n == 1) return 1; - - arr[0] = 0; - arr[1] = 1; - - for(int i = 2; i <= N; i++) - arr[i] = arr[i-1] + arr[i-2]; - - return arr[N]; - - } -}; \ No newline at end of file diff --git a/solutions/easy/557.cpp b/solutions/easy/557.cpp deleted file mode 100644 index f784932..0000000 --- a/solutions/easy/557.cpp +++ /dev/null @@ -1,36 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - string reverseWords(string s) { - - vector ind; - ind.push_back(-1); - int n = s.length(); - - for(int i = 0; i < n; i++) { - if (s[i] == ' ') { - ind.push_back(i); - } - } - - ind.push_back(n); - - stringstream res; - - int nums = ind.size(); - for(int i = 0; i < nums - 1; i++) { - for(int j = ind[i + 1] - 1; j > ind[i]; j--) { - res << s[j]; - } - if (i < nums - 2) { - res << ' '; - } - } - - return res.str(); - } -}; \ No newline at end of file diff --git a/solutions/easy/559.c b/solutions/easy/559.c deleted file mode 100644 index b3574dc..0000000 --- a/solutions/easy/559.c +++ /dev/null @@ -1,27 +0,0 @@ - -struct Node -{ - int val; - int numChildren; - struct Node **children; -}; - -int *maxDepth(struct Node *root) -{ - return calc_depth(root, 0); -} - -int calc_depth(struct Node *root, int depth) -{ - if (!root) - return depth; - int old_depth = depth; - depth += 1; - for (int i = 0; i < root->numChildren; i++) - { - int newd = calc_depth(root->children[i], old_depth + 1); - printf("%d\n", newd); - depth = depth > newd ? depth : newd; - } - return depth; -} \ No newline at end of file diff --git a/solutions/easy/561.cpp b/solutions/easy/561.cpp deleted file mode 100644 index 7421102..0000000 --- a/solutions/easy/561.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - int arrayPairSum(vector& nums) { - - sort(nums.begin(), nums.end()); - - int n = nums.size(); - int res = 0; - for(int i = 0; i < n; i += 2) - res += nums[i]; - - return res; - - } -}; \ No newline at end of file diff --git a/solutions/easy/589.cpp b/solutions/easy/589.cpp deleted file mode 100644 index 5a58001..0000000 --- a/solutions/easy/589.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#include -#include - -using namespace std; - -class Node { -public: - int val; - vector children; - - Node() {} - - Node(int _val) { - val = _val; - } - - Node(int _val, vector _children) { - val = _val; - children = _children; - } -}; - -class Solution { -public: - vector preorder(Node* root) { - - vector res; - if (!root) { - return res; - } - - reverse((root->children).begin(), (root->children).end()); - - res.push_back(root->val); - - for (Node* node: root->children) { - vector temp = preorder(node); - res.insert(res.begin() + 1, temp.begin(), temp.end()); - } - return res; - } -}; \ No newline at end of file diff --git a/solutions/easy/590.cpp b/solutions/easy/590.cpp deleted file mode 100644 index 3d3bf43..0000000 --- a/solutions/easy/590.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#include -#include - -using namespace std; - -class Node { -public: - int val; - vector children; - - Node() {} - - Node(int _val) { - val = _val; - } - - Node(int _val, vector _children) { - val = _val; - children = _children; - } -}; - -class Solution { -public: - vector postorder(Node* root) { - - vector res; - if (!root) { - return res; - } - - reverse((root->children).begin(), (root->children).end()); - - for (Node* node: root->children) { - vector temp = postorder(node); - res.insert(res.begin(), temp.begin(), temp.end()); - } - - res.push_back(root->val); - return res; - } -}; \ No newline at end of file diff --git a/solutions/easy/617.c b/solutions/easy/617.c deleted file mode 100644 index 02c1ac7..0000000 --- a/solutions/easy/617.c +++ /dev/null @@ -1,34 +0,0 @@ -#include -#include - -struct TreeNode -{ - int val; - struct TreeNode *left; - struct TreeNode *right; -}; - -struct TreeNode *mergeTrees(struct TreeNode *t1, struct TreeNode *t2) -{ - - if (!t1) return t2; - if (!t2) return t1; - - t1->val = t1->val + t2->val; - - if (t1->left && t2->left) - t1->left = mergeTrees(t1->left, t2->left); - else if (t1->left) - t1->left = t1->left; - else if (t2->left) - t1->left = t2->left; - - if (t1->right && t2->right) - t1->right = mergeTrees(t1->right, t2->right); - else if (t1->right) - t1->right = t1->right; - else if (t2->right) - t1->right = t2->right; - - return t1; -} \ No newline at end of file diff --git a/solutions/easy/657.cpp b/solutions/easy/657.cpp deleted file mode 100644 index 5f5d82c..0000000 --- a/solutions/easy/657.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - bool judgeCircle(string moves) - { - - return count(moves.begin(), moves.end(), 'U') == count(moves.begin(), moves.end(), 'D') && count(moves.begin(), moves.end(), 'L') == count(moves.begin(), moves.end(), 'R'); - } -}; \ No newline at end of file diff --git a/solutions/easy/700.c b/solutions/easy/700.c deleted file mode 100644 index 019bfaf..0000000 --- a/solutions/easy/700.c +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -struct TreeNode -{ - int val; - struct TreeNode *left; - struct TreeNode *right; -}; - -struct TreeNode *searchBST(struct TreeNode *root, int val) -{ - if (!root) - return NULL; - - if (root->val == val) - return root; - - struct TreeNode *left = searchBST(root->left, val); - if (left) - return left; - - struct TreeNode *right = searchBST(root->right, val); - if (right) - return right; - - return NULL; -} \ No newline at end of file diff --git a/solutions/easy/709.cpp b/solutions/easy/709.cpp deleted file mode 100644 index a6ec6d1..0000000 --- a/solutions/easy/709.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - string toLowerCase(string str) { - - transform(str.begin(), str.end(), str.begin(), ::tolower); - - return str; - - } -}; \ No newline at end of file diff --git a/solutions/easy/728.cpp b/solutions/easy/728.cpp deleted file mode 100644 index 3b2bd4c..0000000 --- a/solutions/easy/728.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - vector selfDividingNumbers(int left, int right) { - - vector res; - for(int i = left; i <= right; i++) { - - int isValid = 1; - int num = i; - while (num) { - int rem = num % 10; - if (rem == 0 || i % rem != 0) isValid = 0; - num /= 10; - } - - if (isValid) res.push_back(i); - - } - - return res; - - } -}; \ No newline at end of file diff --git a/solutions/easy/771.cpp b/solutions/easy/771.cpp deleted file mode 100644 index 9f2a595..0000000 --- a/solutions/easy/771.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - int numJewelsInStones(string J, string S) - { - - int isJewel[126]; - - fill_n(isJewel, 126, 0); - - for (char i : J) - { - isJewel[(int)i] = 1; - } - - int count = 0; - for (char i : S) - { - count += isJewel[(int)i]; - } - - return count; - } -}; \ No newline at end of file diff --git a/solutions/easy/804.cpp b/solutions/easy/804.cpp deleted file mode 100644 index aac1f5b..0000000 --- a/solutions/easy/804.cpp +++ /dev/null @@ -1,43 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - int uniqueMorseRepresentations(vector &words) - { - - vector codes; - int n = words.size(); - - string mapping[26] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."}; - - for (string word : words) - { - - stringstream r; - - for (char c : word) - { - r << mapping[(int)(c)-97]; - } - - string res = r.str(); - codes.push_back(res); - } - - sort(codes.begin(), codes.end()); - - int count = n > 0 ? 1 : 0; - - for (int i = 1; i < n; i++) - { - if (codes[i].compare(codes[i - 1])) - ++count; - } - - return count; - } -}; \ No newline at end of file diff --git a/solutions/easy/811.cpp b/solutions/easy/811.cpp deleted file mode 100644 index ed1ed77..0000000 --- a/solutions/easy/811.cpp +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - vector subdomainVisits(vector& cpdomains) { - - vector res; - - unordered_map count; - for (string x: cpdomains) { - - int space_pos = x.find(' '); - string num_string = x.substr(0, space_pos); - int num = stoi(num_string); - string domain = x.substr(space_pos + 1); - - if (count[domain]) count[domain] += num; - else count[domain] = num; - - for (int i = 0; i < domain.length(); i++) { - if (domain[i] == '.') { - if (count[domain.substr(i+1)]) count[domain.substr(i+1)] += num; - else count[domain.substr(i+1)] = num; - } - } - - } - for (auto x: count) { - stringstream r; - r << x.second << " " << x.first; - res.push_back(r.str()); - } - return res; - } -}; \ No newline at end of file diff --git a/solutions/easy/821.cpp b/solutions/easy/821.cpp deleted file mode 100644 index 6770f45..0000000 --- a/solutions/easy/821.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - vector shortestToChar(string S, char C) - { - vector poss; - int n = S.length(); - for (int i = 0; i < n; i++) - { - if (S[i] == C) - { - poss.push_back(i); - } - } - - vector out; - - int occ = poss.size(); - - if (occ) - { - for (int i = 0; i <= poss[0]; ++i) - out.push_back(poss[0] - i); - } - for (int i = 0; i < occ - 1; i++) - { - for (int j = poss[i] + 1; j <= poss[i + 1]; ++j) - { - out.push_back(min((j - poss[i]), (poss[i + 1] - j))); - } - } - - if (occ) - { - for (int i = poss[occ - 1] + 1; i < n; ++i) - out.push_back(i - poss[occ - 1]); - } - - return out; - } -}; \ No newline at end of file diff --git a/solutions/easy/832.cpp b/solutions/easy/832.cpp deleted file mode 100644 index 5c3e558..0000000 --- a/solutions/easy/832.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - vector> flipAndInvertImage(vector>& A) { - - int n = A.size(); - - vector> res; - - for (vector a: A) { - vector temp; - for(int x: a) { - temp.push_back(1-x); - } - reverse(temp.begin(), temp.end()); - res.push_back(temp); - } - - return res; - - } -}; \ No newline at end of file diff --git a/solutions/easy/852.cpp b/solutions/easy/852.cpp deleted file mode 100644 index 7467063..0000000 --- a/solutions/easy/852.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - int peakIndexInMountainArray(vector& A) { - - int n = A.size(); - for (int i = 1; i < n-1; i++) { - if (A[i] > A[i-1] && A[i] > A[i+1]) return i; - } - return -1; - } -}; \ No newline at end of file diff --git a/solutions/easy/876.c b/solutions/easy/876.c deleted file mode 100644 index 47f6bee..0000000 --- a/solutions/easy/876.c +++ /dev/null @@ -1,21 +0,0 @@ - -struct ListNode -{ - int val; - struct ListNode *next; -}; - -struct ListNode *middleNode(struct ListNode *head) -{ - int n = 0; - struct ListNode* curr = head; - - while(curr) { - curr = curr->next; - ++n; - } - curr = head; - for(int i = 0; i < n/2; ++i) - curr = curr->next; - return curr; -} \ No newline at end of file diff --git a/solutions/easy/883.cpp b/solutions/easy/883.cpp deleted file mode 100644 index aa3ddab..0000000 --- a/solutions/easy/883.cpp +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - int projectionArea(vector> &grid) - { - int n = grid.size(); - - int top = 0; - for (vector temp : grid) - { - for (int i : temp) - { - if (i) - ++top; - } - } - - vector front; - vector right; - for (int i = 0; i < n; i++) - { - front.push_back(0); - right.push_back(0); - for (int j = 0; j < n; j++) - { - front[i] = max(front[i], grid[i][j]); - right[i] = max(right[i], grid[j][i]); - } - } - - return top + accumulate(front.begin(), front.end(), 0) + accumulate(right.begin(), right.end(), 0); - } -}; \ No newline at end of file diff --git a/solutions/easy/893.cpp b/solutions/easy/893.cpp deleted file mode 100644 index 751f6d7..0000000 --- a/solutions/easy/893.cpp +++ /dev/null @@ -1,78 +0,0 @@ -#include -#include - -using namespace std; - -long int calc_even(string a) -{ - long int product = 1; - int arr[26] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101}; - - int n = a.length(); - for(int i = 0; i < n; i+=2) { - product *= arr[(int)(a[i]) - 97]; - } - - return product; -} - -long int calc_odd(string a) -{ - long int product = 1; - int arr[26] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101}; - - int n = a.length(); - for(int i = 1; i < n; i+=2) { - product *= arr[(int)(a[i]) - 97]; - } - - return product; -} - -class Solution -{ -public: - int numSpecialEquivGroups(vector &A) - { - vector matches; - vector even_scores; - vector odd_scores; - - for(string temp: A) { - even_scores.push_back(calc_even(temp)); - odd_scores.push_back(calc_odd(temp)); - } - - int len = A.size(); - - for (int i = 0; i < len; i++) - { - matches.push_back(-1); - for (int j = i + 1; j < len; j++) - { - if (even_scores[i] == even_scores[j] && odd_scores[i] == odd_scores[j]) - { - matches[i] = j; - j = len; - } - } - } - - int *group_id = (int *)malloc(sizeof(int) * len); - fill_n(group_id, len, 0); - - int group_number = 0; - - for (int i = 0; i < len; i++) - { - if (!group_id[i]) - group_id[i] = ++group_number; - if (matches[i] != -1) - { - group_id[matches[i]] = group_id[i]; - } - } - - return group_number; - } -}; \ No newline at end of file diff --git a/solutions/easy/897.c b/solutions/easy/897.c deleted file mode 100644 index a927be2..0000000 --- a/solutions/easy/897.c +++ /dev/null @@ -1,35 +0,0 @@ -#include - -struct TreeNode -{ - int val; - struct TreeNode *left; - struct TreeNode *right; -}; - -struct TreeNode *increasingBST(struct TreeNode *root) -{ - struct TreeNode *middle = (struct TreeNode *)malloc(sizeof(struct TreeNode)); - middle->right = NULL; - middle->left = NULL; - middle->val = root->val; - - struct TreeNode *left; - - if (root->left) - { - left = increasingBST(root->left); - struct TreeNode *temp = left; - while (temp->right) - { - temp = temp->right; - } - temp->right = middle; - } - - if (root->right) - { - middle->right = increasingBST(root->right); - } - return root->left ? left : middle; -} \ No newline at end of file diff --git a/solutions/easy/905.cpp b/solutions/easy/905.cpp deleted file mode 100644 index 09977e3..0000000 --- a/solutions/easy/905.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - vector sortArrayByParity(vector& A) { - - vector even; - vector odd; - for(int i: A) if (i%2) odd.push_back(i); else even.push_back(i); - for(int i: odd) even.push_back(i); - return even; - - } -}; \ No newline at end of file diff --git a/solutions/easy/922.cpp b/solutions/easy/922.cpp deleted file mode 100644 index 6ff2183..0000000 --- a/solutions/easy/922.cpp +++ /dev/null @@ -1,34 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - vector sortArrayByParityII(vector& A) { - - vector odd; - vector even; - - vector res; - - for (int i: A) { - if (i % 2) odd.push_back(i); - else even.push_back(i); - } - - int even_len = even.size(); - int odd_len = odd.size(); - - for (int i = 0; i < odd_len; ++i) { - res.push_back(even[i]); - res.push_back(odd[i]); - } - - if (even_len > odd_len) - res.push_back(even[even_len - 1]); - - return res; - - } -}; \ No newline at end of file diff --git a/solutions/easy/929.cpp b/solutions/easy/929.cpp deleted file mode 100644 index 0f036ae..0000000 --- a/solutions/easy/929.cpp +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - int numUniqueEmails(vector &emails) - { - - set track; - for (string email : emails) - { - stringstream processed; - int plusenc = 0; - int atenc = 0; - for(char ch: email) { - if (ch == '.' && !atenc) continue; - if (ch == '+') plusenc = 1; - if (ch == '@') atenc = 1; - if (plusenc && !atenc) continue; - processed << ch; - } - - track.insert(processed.str()); - } - - return track.size(); - } -}; \ No newline at end of file diff --git a/solutions/easy/933.cpp b/solutions/easy/933.cpp deleted file mode 100644 index 1135ae7..0000000 --- a/solutions/easy/933.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include - -using namespace std; - -class RecentCounter -{ - -public: - vector pings; - int size; - int lastIndex; - - RecentCounter() - { - this->lastIndex = 0; - this->size = 0; - } - - int ping(int t) - { - this->pings.push_back(t); - ++this->size; - for (; this->lastIndex < this->size && this->pings[this->lastIndex] < t - 3000; ++this->lastIndex) - ; - return this->size - this->lastIndex; - } -}; \ No newline at end of file diff --git a/solutions/easy/938.cpp b/solutions/easy/938.cpp deleted file mode 100644 index e69ceb3..0000000 --- a/solutions/easy/938.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include -#include - -using namespace std; - -/** - * Definition for a binary tree node. - * struct TreeNode { - * int val; - * TreeNode *left; - * TreeNode *right; - * TreeNode() : val(0), left(nullptr), right(nullptr) {} - * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} - * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} - * }; - */ -class Solution -{ -public: - int rangeSumBST(TreeNode *root, int L, int R) - { - - int sum = 0; - if (root) - { - sum = root->val >= L && root->val <= R ? root->val : 0; - sum += rangeSumBST(root->left, L, R); - sum += rangeSumBST(root->right, L, R); - } - - return sum; - } -}; \ No newline at end of file diff --git a/solutions/easy/942.cpp b/solutions/easy/942.cpp deleted file mode 100644 index a318f03..0000000 --- a/solutions/easy/942.cpp +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - vector diStringMatch(string S) { - - vector res; - - int n = S.length(); - - if (S[0] == 'I') res.push_back(0); - else res.push_back(n); - - int ICount = count(S.begin(), S.end(), 'I'); - int DCount = n - ICount; - - int I, D; - if (S[0] == 'I') { - D = DCount; - I = D+1; - } - else { - D = DCount - 1; - I = D+1; - } - - for(char i: S) { - if (i == 'I') res.push_back(I++); - else res.push_back(D--); - } - - return res; - - } -}; \ No newline at end of file diff --git a/solutions/easy/944.cpp b/solutions/easy/944.cpp deleted file mode 100644 index 2158590..0000000 --- a/solutions/easy/944.cpp +++ /dev/null @@ -1,34 +0,0 @@ -#include -#include - -using namespace std; - -class Solution -{ -public: - int minDeletionSize(vector &A) - { - - int len = A[0].length(); - int n = A.size(); - - int del[len]; - fill_n(del, len, 0); - - for(int i = 0; i < n-1; i++) { - for(int j = 0; j < len; j++) { - if (A[i][j] > A[i+1][j]) { - del[j] = 1; - - } - } - } - - int count = 0; - for(int i: del) - count += i; - - return count; - - } -}; \ No newline at end of file diff --git a/solutions/easy/961.cpp b/solutions/easy/961.cpp deleted file mode 100644 index 69af57c..0000000 --- a/solutions/easy/961.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - int repeatedNTimes(vector& A) { - - int v[100001]; - fill_n(v, 100001, 0); - for(int i: A) if (v[i]++) return i; - - } -}; \ No newline at end of file diff --git a/solutions/easy/965.c b/solutions/easy/965.c deleted file mode 100644 index 1599d80..0000000 --- a/solutions/easy/965.c +++ /dev/null @@ -1,23 +0,0 @@ - -struct TreeNode -{ - int val; - struct TreeNode *left; - struct TreeNode *right; -}; - -bool isUnivalTree(struct TreeNode *root) -{ - if(!root) return true; - if(root->left) { - if (root->left->val != root->val) return false; - if (!isUnivalTree(root->left)) return false; - } - if(root->right) { - if (root->right->val != root->val) return false; - if (!isUnivalTree(root->right)) return false; - } - - return true; - -} \ No newline at end of file diff --git a/solutions/easy/977.cpp b/solutions/easy/977.cpp deleted file mode 100644 index 9c1c6ac..0000000 --- a/solutions/easy/977.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -using namespace std; - -class Solution { -public: - vector sortedSquares(vector& A) { - - vector res; - - for(int i: A) res.push_back(i*i); - - sort(res.begin(), res.end()); - - return res; - - } -}; \ No newline at end of file diff --git a/src/App.css b/src/App.css deleted file mode 100644 index 101b77b..0000000 --- a/src/App.css +++ /dev/null @@ -1,204 +0,0 @@ -.navbar { - background-color: #282a36 !important; - min-width: 100%; -} - -.navbar a { - color: white; -} -.navbar a:hover { - color: grey; -} - -.navbar-text { - color: white; -} - -.navbar-text a:hover { - text-decoration: none; -} - -.main { - position: fixed; - width: 50%; - height: 100%; - overflow: auto; - background-color: #1a1c27; - display: flex; - flex-direction: column; - align-items: center; -} - -.button-group { - margin-top: 50px; -} - -.problems { - display: flex; - flex-direction: column; - align-items: center; - margin-top: 20px; -} - -.problem-card { - display: block; - background-color: #282a36; - border-radius: 5px; - padding: 20px 20px; - color: white; - margin: 10px; - cursor: pointer; - width: 100%; - transition: all 0.2s ease; -} - -.problem-card:hover { - color: white; - text-decoration: none; - background-color: #1a1c27; -} - -.problem { - color: white; - position: fixed; - width: 50%; - height: 100%; - right: 0; - overflow: auto; - background-color: #1a1c27; - padding: 40px 20px; - font-size: 14px; -} - -.problem-statement { - padding: 20px; - background-color: #1a1c27; -} - -.problem-statement-link { - text-decoration: none !important; - color: #b3b3b3; -} - -.problem-statement-link:hover { - color: #646464; -} - -.problem-statement-link:active { - text-decoration: none; - color: #b3b3b3; -} - -.problem-statement h4 a { - text-decoration: none; - color: #b3b3b3; -} - -.problem-statement h4 a:hover { - color: #646464; -} - -.problem pre { - color: white; -} - -.problem-error { - font-size: 20px; - text-align: center; - margin-top: 45vh; - color: white; -} - -.main-error { - font-size: 20px; - text-align: center; - margin-top: 25vh; - color: white; -} - -.problem-modal { - display: none; -} - -.problem-statement { - color: white; -} - -.problem-statement pre { - color: white; - white-space: pre-wrap; /* Since CSS 2.1 */ - white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - word-wrap: break-word; /* Internet Explorer 5.5+ */ -} - -.problem-statement img { - max-width: 100%; -} - -.modal-body { - background-color: #1a1c27; -} - -.modal-header { - color: white; - background-color: #1a1c27; - border: none; - font-size: 14px; -} - -.modal-content { - background-color:#1a1c27 !important; - border: none; -} - -.close span { - color: white; -} - -.btn-dark { - background-color: #282a36 !important; -} - -.btn-dark:hover { - background-color: #1a1c27 !important; -} - -.btn-dark:active { - background-color: #1a1c27 !important; -} - -@media (max-width: 760px) { - .main { - width: 100%; - } - - .navbar { - min-width: 0px; - } - - .problem-card { - width: 80%; - } - - .problem { - width: 0%; - } - - .problem-desktop { - display: none; - } - - .problem-error { - display: none; - } - - .problem-modal { - display: block; - } - - img { - height: 0px !important; - } -} diff --git a/src/App.js b/src/App.js deleted file mode 100644 index ab0029d..0000000 --- a/src/App.js +++ /dev/null @@ -1,199 +0,0 @@ -import React, { useState, useEffect } from "react"; -import _ from "lodash"; - -import "./App.css"; -import "bootstrap/dist/css/bootstrap.min.css"; - -import { - Button, - ButtonGroup, - Modal, - ModalBody, - ModalHeader, - Navbar, - NavbarBrand, - NavbarText, -} from "reactstrap"; - -import { LiveProvider, LiveEditor } from "react-live"; -import dracula from "prism-react-renderer/themes/dracula"; - -import data from "./solutions.json"; - -var parse = require("html-react-parser"); - -const Main = ({ updateProblem }) => { - const [difficulty, updateDifficulty] = useState("Easy"); - const [problems, updateProblems] = useState([]); - - useEffect(() => { - if (difficulty === "All") { - updateProblems(data); - return; - } - updateProblems( - _.filter(data, (prob) => prob.difficulty === difficulty) - ); - }, [difficulty]); - - return ( -
    - - Leetcode Solutions - - - Source Code - - - -
    - - - - - - -
    - - {!problems.length && difficulty !== "All" && ( -
    - No Problems found in this section -
    - )} -
    - ); -}; - -const Problem = ({ problem, updateProblem }) => { - const [isOpen, updateModal] = useState(problem ? true : false); - - const toggleModal = () => { - updateModal(!isOpen); - updateProblem(null); - }; - - useEffect(() => { - if (window.innerWidth < 760 && problem) updateModal(true); - }, [problem]); - - return ( -
    - {!isOpen && problem && ( -
    -
    -

    - - {data[problem].number + - ". " + - data[problem].name} - -

    - {parse(data[problem].statement)} -
    - - - -
    - )} - - {!isOpen && !problem && ( -
    -
    Select a problem to view the solution.
    -
    - )} - - {window.innerWidth < 760 && isOpen && problem && ( -
    - - - - {data[problem].number + - ". " + - data[problem].name} - - - -
    - {parse(data[problem].statement)} -
    - - - -
    -
    -
    - )} -
    - ); -}; - -const App = () => { - const [problem, updateProblem] = useState(null); - - useEffect(() => { - const problemId = window.location.hash.substring(1); - if (data[problemId]) updateProblem(problemId); - }, [window.location]); - - return ( -
    -
    - -
    - ); -}; - -export default App; diff --git a/src/index.css b/src/index.css deleted file mode 100644 index 4efd9da..0000000 --- a/src/index.css +++ /dev/null @@ -1,24 +0,0 @@ -html, body { - margin: 0; - color: white; -} - -/* width */ -::-webkit-scrollbar { - width: 10px; -} - -/* Track */ -::-webkit-scrollbar-track { - background: hsl(231, 22%, 18%); -} - -/* Handle */ -::-webkit-scrollbar-thumb { - background: #888; -} - -/* Handle on hover */ -::-webkit-scrollbar-thumb:hover { - background: rgb(80, 80, 80); -} \ No newline at end of file diff --git a/src/index.js b/src/index.js deleted file mode 100644 index f5185c1..0000000 --- a/src/index.js +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import './index.css'; -import App from './App'; -import * as serviceWorker from './serviceWorker'; - -ReactDOM.render( - - - , - document.getElementById('root') -); - -// If you want your app to work offline and load faster, you can change -// unregister() to register() below. Note this comes with some pitfalls. -// Learn more about service workers: https://bit.ly/CRA-PWA -serviceWorker.unregister(); diff --git a/src/logo.png b/src/logo.png deleted file mode 100644 index f51c771..0000000 Binary files a/src/logo.png and /dev/null differ diff --git a/src/serviceWorker.js b/src/serviceWorker.js deleted file mode 100644 index b04b771..0000000 --- a/src/serviceWorker.js +++ /dev/null @@ -1,141 +0,0 @@ -// This optional code is used to register a service worker. -// register() is not called by default. - -// This lets the app load faster on subsequent visits in production, and gives -// it offline capabilities. However, it also means that developers (and users) -// will only see deployed updates on subsequent visits to a page, after all the -// existing tabs open on the page have been closed, since previously cached -// resources are updated in the background. - -// To learn more about the benefits of this model and instructions on how to -// opt-in, read https://bit.ly/CRA-PWA - -const isLocalhost = Boolean( - window.location.hostname === 'localhost' || - // [::1] is the IPv6 localhost address. - window.location.hostname === '[::1]' || - // 127.0.0.0/8 are considered localhost for IPv4. - window.location.hostname.match( - /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ - ) -); - -export function register(config) { - if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { - // The URL constructor is available in all browsers that support SW. - const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href); - if (publicUrl.origin !== window.location.origin) { - // Our service worker won't work if PUBLIC_URL is on a different origin - // from what our page is served on. This might happen if a CDN is used to - // serve assets; see https://github.com/facebook/create-react-app/issues/2374 - return; - } - - window.addEventListener('load', () => { - const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; - - if (isLocalhost) { - // This is running on localhost. Let's check if a service worker still exists or not. - checkValidServiceWorker(swUrl, config); - - // Add some additional logging to localhost, pointing developers to the - // service worker/PWA documentation. - navigator.serviceWorker.ready.then(() => { - console.log( - 'This web app is being served cache-first by a service ' + - 'worker. To learn more, visit https://bit.ly/CRA-PWA' - ); - }); - } else { - // Is not localhost. Just register service worker - registerValidSW(swUrl, config); - } - }); - } -} - -function registerValidSW(swUrl, config) { - navigator.serviceWorker - .register(swUrl) - .then(registration => { - registration.onupdatefound = () => { - const installingWorker = registration.installing; - if (installingWorker == null) { - return; - } - installingWorker.onstatechange = () => { - if (installingWorker.state === 'installed') { - if (navigator.serviceWorker.controller) { - // At this point, the updated precached content has been fetched, - // but the previous service worker will still serve the older - // content until all client tabs are closed. - console.log( - 'New content is available and will be used when all ' + - 'tabs for this page are closed. See https://bit.ly/CRA-PWA.' - ); - - // Execute callback - if (config && config.onUpdate) { - config.onUpdate(registration); - } - } else { - // At this point, everything has been precached. - // It's the perfect time to display a - // "Content is cached for offline use." message. - console.log('Content is cached for offline use.'); - - // Execute callback - if (config && config.onSuccess) { - config.onSuccess(registration); - } - } - } - }; - }; - }) - .catch(error => { - console.error('Error during service worker registration:', error); - }); -} - -function checkValidServiceWorker(swUrl, config) { - // Check if the service worker can be found. If it can't reload the page. - fetch(swUrl, { - headers: { 'Service-Worker': 'script' }, - }) - .then(response => { - // Ensure service worker exists, and that we really are getting a JS file. - const contentType = response.headers.get('content-type'); - if ( - response.status === 404 || - (contentType != null && contentType.indexOf('javascript') === -1) - ) { - // No service worker found. Probably a different app. Reload the page. - navigator.serviceWorker.ready.then(registration => { - registration.unregister().then(() => { - window.location.reload(); - }); - }); - } else { - // Service worker found. Proceed as normal. - registerValidSW(swUrl, config); - } - }) - .catch(() => { - console.log( - 'No internet connection found. App is running in offline mode.' - ); - }); -} - -export function unregister() { - if ('serviceWorker' in navigator) { - navigator.serviceWorker.ready - .then(registration => { - registration.unregister(); - }) - .catch(error => { - console.error(error.message); - }); - } -} diff --git a/src/solutions.json b/src/solutions.json deleted file mode 100644 index 4e1345d..0000000 --- a/src/solutions.json +++ /dev/null @@ -1 +0,0 @@ -{"1122": {"link": "https://leetcode.com/problems/relative-sort-array", "name": "Relative Sort Array", "difficulty": "Easy", "statement": "

    Given two arrays arr1 and arr2, the elements of arr2 are distinct, and all elements in arr2 are also in arr1.

    \n\n

    Sort the elements of arr1 such that the relative ordering of items in arr1 are the same as in arr2.  Elements that don't appear in arr2 should be placed at the end of arr1 in ascending order.

    \n\n

     

    \n

    Example 1:

    \n
    Input: arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]\nOutput: [2,2,2,1,4,3,3,9,6,7,19]\n
    \n

     

    \n

    Constraints:

    \n\n
      \n\t
    • arr1.length, arr2.length <= 1000
    • \n\t
    • 0 <= arr1[i], arr2[i] <= 1000
    • \n\t
    • Each arr2[i] is distinct.
    • \n\t
    • Each arr2[i] is in arr1.
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n vector relativeSortArray(vector &arr1, vector &arr2)\n {\n\n int *m1 = (int *)malloc(sizeof(int) * 1001);\n fill_n(m1, 1001, 0);\n\n for (int i : arr1)\n ++m1[i];\n\n int *m2 = (int *)malloc(sizeof(int) * 1001);\n fill_n(m2, 1001, 0);\n\n for (int i : arr2)\n ++m2[i];\n\n vector out;\n vector exc;\n\n for (int i : arr2)\n {\n if (m2[i])\n {\n int count = m1[i];\n for (int j = 0; j < count; ++j)\n {\n out.push_back(i);\n }\n }\n }\n\n for (int i = 0; i <= 1000; ++i)\n {\n if (!m2[i])\n {\n int count = m1[i];\n for (int j = 0; j < count; ++j)\n {\n exc.push_back(i);\n }\n }\n }\n\n sort(exc.begin(), exc.end());\n for (int i : exc)\n out.push_back(i);\n\n return out;\n }\n};", "number": "1122"}, "893": {"link": "https://leetcode.com/problems/groups-of-special-equivalent-strings", "name": "Groups of Special-Equivalent Strings", "difficulty": "Easy", "statement": "

    You are given an array A of strings.

    \n\n

    A move onto S consists of swapping any two even indexed characters of S, or any two odd indexed characters of S.

    \n\n

    Two strings S and T are special-equivalent if after any number of moves onto S, S == T.

    \n\n

    For example, S = \"zzxy\" and T = \"xyzz\" are special-equivalent because we may make the moves \"zzxy\" -> \"xzzy\" -> \"xyzz\" that swap S[0] and S[2], then S[1] and S[3].

    \n\n

    Now, a group of special-equivalent strings from A is a non-empty subset of A such that:

    \n\n
      \n\t
    1. Every pair of strings in the group are special equivalent, and;
    2. \n\t
    3. The group is the largest size possible (ie., there isn't a string S not in the group such that S is special equivalent to every string in the group)
    4. \n
    \n\n

    Return the number of groups of special-equivalent strings from A.

    \n\n
     
    \n\n
    \n

    Example 1:

    \n\n
    Input: [\"abcd\",\"cdab\",\"cbad\",\"xyzz\",\"zzxy\",\"zzyx\"]\nOutput: 3\nExplanation: \nOne group is [\"abcd\", \"cdab\", \"cbad\"], since they are all pairwise special equivalent, and none of the other strings are all pairwise special equivalent to these.\n\nThe other two groups are [\"xyzz\", \"zzxy\"] and [\"zzyx\"].  Note that in particular, \"zzxy\" is not special equivalent to \"zzyx\".\n
    \n\n
    \n

    Example 2:

    \n\n
    Input: [\"abc\",\"acb\",\"bac\",\"bca\",\"cab\",\"cba\"]\nOutput: 3
    \n\n

     

    \n
    \n
    \n\n
    \n
    \n
    \n
    \n

    Note:

    \n\n
      \n\t
    • 1 <= A.length <= 1000
    • \n\t
    • 1 <= A[i].length <= 20
    • \n\t
    • All A[i] have the same length.
    • \n\t
    • All A[i] consist of only lowercase letters.
    • \n
    \n
    \n
    \n
    \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nlong int calc_even(string a)\n{\n long int product = 1;\n int arr[26] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101};\n\n int n = a.length();\n for(int i = 0; i < n; i+=2) {\n product *= arr[(int)(a[i]) - 97];\n }\n\n return product;\n}\n\nlong int calc_odd(string a)\n{\n long int product = 1;\n int arr[26] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101};\n\n int n = a.length();\n for(int i = 1; i < n; i+=2) {\n product *= arr[(int)(a[i]) - 97];\n }\n\n return product;\n}\n\nclass Solution\n{\npublic:\n int numSpecialEquivGroups(vector &A)\n {\n vector matches;\n vector even_scores;\n vector odd_scores;\n\n for(string temp: A) {\n even_scores.push_back(calc_even(temp));\n odd_scores.push_back(calc_odd(temp));\n }\n\n int len = A.size();\n\n for (int i = 0; i < len; i++)\n {\n matches.push_back(-1);\n for (int j = i + 1; j < len; j++)\n {\n if (even_scores[i] == even_scores[j] && odd_scores[i] == odd_scores[j])\n {\n matches[i] = j;\n j = len;\n }\n }\n }\n\n int *group_id = (int *)malloc(sizeof(int) * len);\n fill_n(group_id, len, 0);\n\n int group_number = 0;\n\n for (int i = 0; i < len; i++)\n {\n if (!group_id[i])\n group_id[i] = ++group_number;\n if (matches[i] != -1)\n {\n group_id[matches[i]] = group_id[i];\n }\n }\n\n return group_number;\n }\n};", "number": "893"}, "897": {"link": "https://leetcode.com/problems/increasing-order-search-tree", "name": "Increasing Order Search Tree", "difficulty": "Easy", "statement": "

    Given a binary search tree, rearrange the tree in in-order so that the leftmost node in the tree is now the root of the tree, and every node has no left child and only 1 right child.

    \n\n
    Example 1:\nInput: [5,3,6,2,4,null,8,1,null,null,null,7,9]\n\n       5\n      / \\\n    3    6\n   / \\    \\\n  2   4    8\n /        / \\ \n1        7   9\n\nOutput: [1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9]\n\n 1\n  \\\n   2\n    \\\n     3\n      \\\n       4\n        \\\n         5\n          \\\n           6\n            \\\n             7\n              \\\n               8\n                \\\n                 9  
    \n

     

    \n

    Constraints:

    \n\n
      \n\t
    • The number of nodes in the given tree will be between 1 and 100.
    • \n\t
    • Each node will have a unique integer value from 0 to 1000.
    • \n
    \n
    ", "language": "c", "solution": "#include\n\nstruct TreeNode\n{\n int val;\n struct TreeNode *left;\n struct TreeNode *right;\n};\n\nstruct TreeNode *increasingBST(struct TreeNode *root)\n{\n struct TreeNode *middle = (struct TreeNode *)malloc(sizeof(struct TreeNode));\n middle->right = NULL;\n middle->left = NULL;\n middle->val = root->val;\n\n struct TreeNode *left;\n\n if (root->left)\n {\n left = increasingBST(root->left);\n struct TreeNode *temp = left;\n while (temp->right)\n {\n temp = temp->right;\n }\n temp->right = middle;\n }\n\n if (root->right)\n {\n middle->right = increasingBST(root->right);\n }\n return root->left ? left : middle;\n}", "number": "897"}, "961": {"link": "https://leetcode.com/problems/n-repeated-element-in-size-2n-array", "name": "N-Repeated Element in Size 2N Array", "difficulty": "Easy", "statement": "

    In a array A of size 2N, there are N+1 unique elements, and exactly one of these elements is repeated N times.

    \n\n

    Return the element repeated N times.

    \n\n

     

    \n\n
      \n
    \n\n
    \n

    Example 1:

    \n\n
    Input: [1,2,3,3]\nOutput: 3\n
    \n\n
    \n

    Example 2:

    \n\n
    Input: [2,1,2,5,3,2]\nOutput: 2\n
    \n\n
    \n

    Example 3:

    \n\n
    Input: [5,1,5,2,5,3,5,4]\nOutput: 5\n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    • 4 <= A.length <= 10000
    • \n\t
    • 0 <= A[i] < 10000
    • \n\t
    • A.length is even
    • \n
    \n
    \n
    \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n int repeatedNTimes(vector& A) {\n\n int v[100001];\n fill_n(v, 100001, 0);\n for(int i: A) if (v[i]++) return i;\n\n }\n};", "number": "961"}, "1047": {"link": "https://leetcode.com/problems/remove-all-adjacent-duplicates-in-string", "name": "Remove All Adjacent Duplicates In String", "difficulty": "Easy", "statement": "

    Given a string S of lowercase letters, a duplicate removal consists of choosing two adjacent and equal letters, and removing them.

    \n\n

    We repeatedly make duplicate removals on S until we no longer can.

    \n\n

    Return the final string after all such duplicate removals have been made.  It is guaranteed the answer is unique.

    \n\n

     

    \n\n

    Example 1:

    \n\n
    Input: \"abbaca\"\nOutput: \"ca\"\nExplanation: \nFor example, in \"abbaca\" we could remove \"bb\" since the letters are adjacent and equal, and this is the only possible move.  The result of this move is that the string is \"aaca\", of which only \"aa\" is possible, so the final string is \"ca\".\n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    1. 1 <= S.length <= 20000
    2. \n\t
    3. S consists only of English lowercase letters.
    4. \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n string removeDuplicates(string S)\n {\n\n stringstream out;\n vector s;\n for (char ch : S)\n s.push_back(ch);\n\n int n = S.length();\n\n for (int i = 0; i < n - 1; i++)\n {\n \n if (s[i] == s[i + 1])\n {\n\n s.erase(s.begin() + i+1);\n s.erase(s.begin() + i);\n\n i -= 2;\n n -= 2;\n\n if (i < -1)\n i = -1;\n\n }\n }\n\n for(char ch: s) out << ch;\n\n return out.str();\n }\n};", "number": "1047"}, "557": {"link": "https://leetcode.com/problems/reverse-words-in-a-string-iii", "name": "Reverse Words in a String III", "difficulty": "Easy", "statement": "

    Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.

    \n\n

    Example 1:
    \n

    Input: \"Let's take LeetCode contest\"\nOutput: \"s'teL ekat edoCteeL tsetnoc\"\n
    \n

    \n\n

    Note:\nIn the string, each word is separated by single space and there will not be any extra space in the string.\n

    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n string reverseWords(string s) {\n\n vector ind;\n ind.push_back(-1);\n int n = s.length();\n\n for(int i = 0; i < n; i++) {\n if (s[i] == ' ') {\n ind.push_back(i);\n }\n }\n\n ind.push_back(n);\n\n stringstream res;\n\n int nums = ind.size();\n for(int i = 0; i < nums - 1; i++) {\n for(int j = ind[i + 1] - 1; j > ind[i]; j--) {\n res << s[j];\n }\n if (i < nums - 2) {\n res << ' ';\n }\n }\n\n return res.str();\n }\n};", "number": "557"}, "922": {"link": "https://leetcode.com/problems/sort-array-by-parity-ii", "name": "Sort Array By Parity II", "difficulty": "Easy", "statement": "

    Given an array A of non-negative integers, half of the integers in A are odd, and half of the integers are even.

    \n\n

    Sort the array so that whenever A[i] is odd, i is odd; and whenever A[i] is even, i is even.

    \n\n

    You may return any answer array that satisfies this condition.

    \n\n

     

    \n\n

    Example 1:

    \n\n
    Input: [4,2,5,7]\nOutput: [4,5,2,7]\nExplanation: [4,7,2,5], [2,5,4,7], [2,7,4,5] would also have been accepted.\n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    1. 2 <= A.length <= 20000
    2. \n\t
    3. A.length % 2 == 0
    4. \n\t
    5. 0 <= A[i] <= 1000
    6. \n
    \n\n
    \n

     

    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n vector sortArrayByParityII(vector& A) {\n\n vector odd;\n vector even;\n\n vector res;\n\n for (int i: A) {\n if (i % 2) odd.push_back(i);\n else even.push_back(i);\n }\n\n int even_len = even.size();\n int odd_len = odd.size();\n\n for (int i = 0; i < odd_len; ++i) {\n res.push_back(even[i]);\n res.push_back(odd[i]);\n }\n\n if (even_len > odd_len) \n res.push_back(even[even_len - 1]);\n\n return res;\n \n }\n};", "number": "922"}, "1160": {"link": "https://leetcode.com/problems/find-words-that-can-be-formed-by-characters", "name": "Find Words That Can Be Formed by Characters", "difficulty": "Easy", "statement": "

    You are given an array of strings words and a string chars.

    \n\n

    A string is good if it can be formed by characters from chars (each character can only be used once).

    \n\n

    Return the sum of lengths of all good strings in words.

    \n\n

     

    \n\n

    Example 1:

    \n\n
    Input: words = [\"cat\",\"bt\",\"hat\",\"tree\"], chars = \"atach\"\nOutput: 6\nExplanation: \nThe strings that can be formed are \"cat\" and \"hat\" so the answer is 3 + 3 = 6.\n
    \n\n

    Example 2:

    \n\n
    Input: words = [\"hello\",\"world\",\"leetcode\"], chars = \"welldonehoneyr\"\nOutput: 10\nExplanation: \nThe strings that can be formed are \"hello\" and \"world\" so the answer is 5 + 5 = 10.\n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    1. 1 <= words.length <= 1000
    2. \n\t
    3. 1 <= words[i].length, chars.length <= 100
    4. \n\t
    5. All strings contain lowercase English letters only.
    6. \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int countCharacters(vector &words, string chars)\n {\n\n int sum = 0;\n int *count = (int *)malloc(sizeof(int) * 26);\n fill_n(count, 26, 0);\n\n for (char ch : chars)\n {\n ++count[(int)(ch)-97];\n }\n\n for (string s : words)\n {\n int *count_t = (int *)malloc(sizeof(int) * 26);\n fill_n(count_t, 26, 0);\n\n for (char ch : s)\n {\n ++count_t[(int)(ch)-97];\n }\n\n int check = 1;\n\n for(int i = 0; i < 26; i++) {\n if (count_t[i] > count[i]) {\n check = 0;\n break;\n }\n }\n\n if (check) sum += s.length();\n }\n return sum;\n }\n};", "number": "1160"}, "1528": {"link": "https://leetcode.com/problems/shuffle-string", "name": "Shuffle String", "difficulty": "Easy", "statement": "

    Given a string s and an integer array indices of the same length.

    \n\n

    The string s will be shuffled such that the character at the ith position moves to indices[i] in the shuffled string.

    \n\n

    Return the shuffled string.

    \n\n

     

    \n

    Example 1:

    \n\"\"\n
    Input: s = \"codeleet\", indices = [4,5,6,7,0,2,1,3]\nOutput: \"leetcode\"\nExplanation: As shown, \"codeleet\" becomes \"leetcode\" after shuffling.\n
    \n\n

    Example 2:

    \n\n
    Input: s = \"abc\", indices = [0,1,2]\nOutput: \"abc\"\nExplanation: After shuffling, each character remains in its position.\n
    \n\n

    Example 3:

    \n\n
    Input: s = \"aiohn\", indices = [3,1,4,2,0]\nOutput: \"nihao\"\n
    \n\n

    Example 4:

    \n\n
    Input: s = \"aaiougrt\", indices = [4,0,2,6,7,3,1,5]\nOutput: \"arigatou\"\n
    \n\n

    Example 5:

    \n\n
    Input: s = \"art\", indices = [1,0,2]\nOutput: \"rat\"\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • s.length == indices.length == n
    • \n\t
    • 1 <= n <= 100
    • \n\t
    • s contains only lower-case English letters.
    • \n\t
    • 0 <= indices[i] < n
    • \n\t
    • All values of indices are unique (i.e. indices is a permutation of the integers from 0 to n - 1).
    • \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n string restoreString(string s, vector &indices)\n {\n\n int n = s.length();\n\n char arr[n+1];\n fill_n(arr, n+1, '\\0');\n \n for (int i = 0; i < n; i++)\n {\n arr[indices[i]] = s[i];\n } \n string res(arr);\n return res;\n }\n};", "number": "1528"}, "1365": {"link": "https://leetcode.com/problems/how-many-numbers-are-smaller-than-the-current-number", "name": "How Many Numbers Are Smaller Than the Current Number", "difficulty": "Easy", "statement": "

    Given the array nums, for each nums[i] find out how many numbers in the array are smaller than it. That is, for each nums[i] you have to count the number of valid j's such that j != i and nums[j] < nums[i].

    \n\n

    Return the answer in an array.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: nums = [8,1,2,2,3]\nOutput: [4,0,1,1,3]\nExplanation: \nFor nums[0]=8 there exist four smaller numbers than it (1, 2, 2 and 3). \nFor nums[1]=1 does not exist any smaller number than it.\nFor nums[2]=2 there exist one smaller number than it (1). \nFor nums[3]=2 there exist one smaller number than it (1). \nFor nums[4]=3 there exist three smaller numbers than it (1, 2 and 2).\n
    \n\n

    Example 2:

    \n\n
    Input: nums = [6,5,4,8]\nOutput: [2,1,0,3]\n
    \n\n

    Example 3:

    \n\n
    Input: nums = [7,7,7,7]\nOutput: [0,0,0,0]\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 2 <= nums.length <= 500
    • \n\t
    • 0 <= nums[i] <= 100
    • \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n vector smallerNumbersThanCurrent(vector &nums)\n {\n\n vector temp = nums;\n\n sort(temp.begin(), temp.end());\n\n int first_pos[101];\n fill_n(first_pos, 101, -1);\n\n int n = temp.size();\n\n for (int i = 0; i < n; i++) {\n if (first_pos[temp[i]] == -1) {\n first_pos[temp[i]] = i;\n }\n }\n\n vector res;\n\n for (int i = 0; i < n; i++) {\n res.push_back(first_pos[nums[i]]);\n }\n\n return res;\n\n\n }\n};", "number": "1365"}, "1502": {"link": "https://leetcode.com/problems/can-make-arithmetic-progression-from-sequence", "name": "Can Make Arithmetic Progression From Sequence", "difficulty": "Easy", "statement": "

    Given an array of numbers arr. A sequence of numbers is called an arithmetic progression if the difference between any two consecutive elements is the same.

    \n\n

    Return true if the array can be rearranged to form an arithmetic progression, otherwise, return false.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: arr = [3,5,1]\nOutput: true\nExplanation: We can reorder the elements as [1,3,5] or [5,3,1] with differences 2 and -2 respectively, between each consecutive elements.\n
    \n\n

    Example 2:

    \n\n
    Input: arr = [1,2,4]\nOutput: false\nExplanation: There is no way to reorder the elements to obtain an arithmetic progression.\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 2 <= arr.length <= 1000
    • \n\t
    • -10^6 <= arr[i] <= 10^6
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n\n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n bool canMakeArithmeticProgression(vector &arr)\n {\n sort(arr.begin(), arr.end());\n int diff;\n if (arr.size() > 1)\n diff = arr[1] - arr[0];\n for (int i = 0; i < arr.size() - 1; i++)\n {\n if (diff != arr[i + 1] - arr[i])\n return false;\n }\n return true;\n }\n};", "number": "1502"}, "832": {"link": "https://leetcode.com/problems/flipping-an-image", "name": "Flipping an Image", "difficulty": "Easy", "statement": "

    Given a binary matrix A, we want to flip the image horizontally, then invert it, and return the resulting image.

    \n\n

    To flip an image horizontally means that each row of the image is reversed.  For example, flipping [1, 1, 0] horizontally results in [0, 1, 1].

    \n\n

    To invert an image means that each 0 is replaced by 1, and each 1 is replaced by 0. For example, inverting [0, 1, 1] results in [1, 0, 0].

    \n\n

    Example 1:

    \n\n
    Input: [[1,1,0],[1,0,1],[0,0,0]]\nOutput: [[1,0,0],[0,1,0],[1,1,1]]\nExplanation: First reverse each row: [[0,1,1],[1,0,1],[0,0,0]].\nThen, invert the image: [[1,0,0],[0,1,0],[1,1,1]]\n
    \n\n

    Example 2:

    \n\n
    Input: [[1,1,0,0],[1,0,0,1],[0,1,1,1],[1,0,1,0]]\nOutput: [[1,1,0,0],[0,1,1,0],[0,0,0,1],[1,0,1,0]]\nExplanation: First reverse each row: [[0,0,1,1],[1,0,0,1],[1,1,1,0],[0,1,0,1]].\nThen invert the image: [[1,1,0,0],[0,1,1,0],[0,0,0,1],[1,0,1,0]]\n
    \n\n

    Notes:

    \n\n
      \n\t
    • 1 <= A.length = A[0].length <= 20
    • \n\t
    • 0 <= A[i][j] <= 1
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n vector> flipAndInvertImage(vector>& A) {\n\n int n = A.size();\n\n vector> res;\n\n for (vector a: A) {\n vector temp;\n for(int x: a) {\n temp.push_back(1-x);\n }\n reverse(temp.begin(), temp.end());\n res.push_back(temp);\n }\n\n return res;\n \n }\n};", "number": "832"}, "1370": {"link": "https://leetcode.com/problems/increasing-decreasing-string", "name": "Increasing Decreasing String", "difficulty": "Easy", "statement": "

    Given a string s. You should re-order the string using the following algorithm:

    \n\n
      \n\t
    1. Pick the smallest character from s and append it to the result.
    2. \n\t
    3. Pick the smallest character from s which is greater than the last appended character to the result and append it.
    4. \n\t
    5. Repeat step 2 until you cannot pick more characters.
    6. \n\t
    7. Pick the largest character from s and append it to the result.
    8. \n\t
    9. Pick the largest character from s which is smaller than the last appended character to the result and append it.
    10. \n\t
    11. Repeat step 5 until you cannot pick more characters.
    12. \n\t
    13. Repeat the steps from 1 to 6 until you pick all characters from s.
    14. \n
    \n\n

    In each step, If the smallest or the largest character appears more than once you can choose any occurrence and append it to the result.

    \n\n

    Return the result string after sorting s with this algorithm.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: s = \"aaaabbbbcccc\"\nOutput: \"abccbaabccba\"\nExplanation: After steps 1, 2 and 3 of the first iteration, result = \"abc\"\nAfter steps 4, 5 and 6 of the first iteration, result = \"abccba\"\nFirst iteration is done. Now s = \"aabbcc\" and we go back to step 1\nAfter steps 1, 2 and 3 of the second iteration, result = \"abccbaabc\"\nAfter steps 4, 5 and 6 of the second iteration, result = \"abccbaabccba\"\n
    \n\n

    Example 2:

    \n\n
    Input: s = \"rat\"\nOutput: \"art\"\nExplanation: The word \"rat\" becomes \"art\" after re-ordering it with the mentioned algorithm.\n
    \n\n

    Example 3:

    \n\n
    Input: s = \"leetcode\"\nOutput: \"cdelotee\"\n
    \n\n

    Example 4:

    \n\n
    Input: s = \"ggggggg\"\nOutput: \"ggggggg\"\n
    \n\n

    Example 5:

    \n\n
    Input: s = \"spo\"\nOutput: \"ops\"\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= s.length <= 500
    • \n\t
    • s contains only lower-case English letters.
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n string sortString(string s) {\n\n int n = s.length();\n\n int count[26];\n fill_n(count, 26, 0);\n\n stringstream ss;\n\n for(char i: s) {\n ++count[(int)(i) - 97];\n }\n\n int max_count = -1;\n for(int i: count) {\n max_count = max_count > i ? max_count : i;\n }\n\n for (int step = 1; step <= max_count; ++step ) {\n\n for (int i = 0; i < 26; i++) {\n if (count[i] >= step) {\n ss << (char)(i + 97);\n }\n }\n\n ++step;\n\n for (int i = 25; i >= 0; i--) {\n if (count[i] >= step) {\n ss << (char)(i + 97);\n }\n }\n\n }\n\n return ss.str();\n\n }\n};", "number": "1370"}, "771": {"link": "https://leetcode.com/problems/jewels-and-stones", "name": "Jewels and Stones", "difficulty": "Easy", "statement": "

    You're given strings J representing the types of stones that are jewels, and S representing the stones you have.  Each character in S is a type of stone you have.  You want to know how many of the stones you have are also jewels.

    \n\n

    The letters in J are guaranteed distinct, and all characters in J and S are letters. Letters are case sensitive, so \"a\" is considered a different type of stone from \"A\".

    \n\n

    Example 1:

    \n\n
    Input: J = \"aA\", S = \"aAAbbbb\"\nOutput: 3\n
    \n\n

    Example 2:

    \n\n
    Input: J = \"z\", S = \"ZZ\"\nOutput: 0\n
    \n\n

    Note:

    \n\n
      \n\t
    • S and J will consist of letters and have length at most 50.
    • \n\t
    • The characters in J are distinct.
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int numJewelsInStones(string J, string S)\n {\n\n int isJewel[126];\n\n fill_n(isJewel, 126, 0);\n\n for (char i : J)\n {\n isJewel[(int)i] = 1;\n }\n\n int count = 0;\n for (char i : S)\n {\n count += isJewel[(int)i];\n }\n\n return count;\n }\n};", "number": "771"}, "709": {"link": "https://leetcode.com/problems/to-lower-case", "name": "To Lower Case", "difficulty": "Easy", "statement": "

    Implement function ToLowerCase() that has a string parameter str, and returns the same string in lowercase.

    \n\n

     

    \n\n
    \n

    Example 1:

    \n\n
    Input: \"Hello\"\nOutput: \"hello\"\n
    \n\n
    \n

    Example 2:

    \n\n
    Input: \"here\"\nOutput: \"here\"\n
    \n\n
    \n

    Example 3:

    \n\n
    Input: \"LOVELY\"\nOutput: \"lovely\"\n
    \n
    \n
    \n
    ", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n string toLowerCase(string str) {\n\n transform(str.begin(), str.end(), str.begin(), ::tolower);\n\n return str;\n \n }\n};", "number": "709"}, "1464": {"link": "https://leetcode.com/problems/maximum-product-of-two-elements-in-an-array", "name": "Maximum Product of Two Elements in an Array", "difficulty": "Easy", "statement": "
    Given the array of integers nums, you will choose two different indices i and j of that array. Return the maximum value of (nums[i]-1)*(nums[j]-1).\n

     

    \n

    Example 1:

    \n\n
    Input: nums = [3,4,5,2]\nOutput: 12 \nExplanation: If you choose the indices i=1 and j=2 (indexed from 0), you will get the maximum value, that is, (nums[1]-1)*(nums[2]-1) = (4-1)*(5-1) = 3*4 = 12. \n
    \n\n

    Example 2:

    \n\n
    Input: nums = [1,5,4,5]\nOutput: 16\nExplanation: Choosing the indices i=1 and j=3 (indexed from 0), you will get the maximum value of (5-1)*(5-1) = 16.\n
    \n\n

    Example 3:

    \n\n
    Input: nums = [3,7]\nOutput: 12\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 2 <= nums.length <= 500
    • \n\t
    • 1 <= nums[i] <= 10^3
    • \n
    \n
    ", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n int maxProduct(vector& nums) {\n\n sort(nums.begin(), nums.end()); \n int n = nums.size();\n\n return (nums[n-1]-1)*(nums[n-2]-1);\n }\n};", "number": "1464"}, "821": {"link": "https://leetcode.com/problems/shortest-distance-to-a-character", "name": "Shortest Distance to a Character", "difficulty": "Easy", "statement": "

    Given a string S and a character C, return an array of integers representing the shortest distance from the character C in the string.

    \n\n

    Example 1:

    \n\n
    Input: S = \"loveleetcode\", C = 'e'\nOutput: [3, 2, 1, 0, 1, 0, 0, 1, 2, 2, 1, 0]\n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    1. S string length is in [1, 10000].
    2. \n\t
    3. C is a single character, and guaranteed to be in string S.
    4. \n\t
    5. All letters in S and C are lowercase.
    6. \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n vector shortestToChar(string S, char C)\n {\n vector poss;\n int n = S.length();\n for (int i = 0; i < n; i++)\n {\n if (S[i] == C)\n {\n poss.push_back(i);\n }\n }\n\n vector out;\n\n int occ = poss.size();\n\n if (occ)\n {\n for (int i = 0; i <= poss[0]; ++i)\n out.push_back(poss[0] - i);\n }\n for (int i = 0; i < occ - 1; i++)\n {\n for (int j = poss[i] + 1; j <= poss[i + 1]; ++j)\n {\n out.push_back(min((j - poss[i]), (poss[i + 1] - j)));\n }\n }\n\n if (occ)\n {\n for (int i = poss[occ - 1] + 1; i < n; ++i)\n out.push_back(i - poss[occ - 1]);\n }\n\n return out;\n }\n};", "number": "821"}, "1475": {"link": "https://leetcode.com/problems/final-prices-with-a-special-discount-in-a-shop", "name": "Final Prices With a Special Discount in a Shop", "difficulty": "Easy", "statement": "

    Given the array prices where prices[i] is the price of the ith item in a shop. There is a special discount for items in the shop, if you buy the ith item, then you will receive a discount equivalent to prices[j] where j is the minimum index such that j > i and prices[j] <= prices[i], otherwise, you will not receive any discount at all.

    \n\n

    Return an array where the ith element is the final price you will pay for the ith item of the shop considering the special discount.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: prices = [8,4,6,2,3]\nOutput: [4,2,4,2,3]\nExplanation: \nFor item 0 with price[0]=8 you will receive a discount equivalent to prices[1]=4, therefore, the final price you will pay is 8 - 4 = 4. \nFor item 1 with price[1]=4 you will receive a discount equivalent to prices[3]=2, therefore, the final price you will pay is 4 - 2 = 2. \nFor item 2 with price[2]=6 you will receive a discount equivalent to prices[3]=2, therefore, the final price you will pay is 6 - 2 = 4. \nFor items 3 and 4 you will not receive any discount at all.\n
    \n\n

    Example 2:

    \n\n
    Input: prices = [1,2,3,4,5]\nOutput: [1,2,3,4,5]\nExplanation: In this case, for all items, you will not receive any discount at all.\n
    \n\n

    Example 3:

    \n\n
    Input: prices = [10,1,1,6]\nOutput: [9,0,1,6]\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= prices.length <= 500
    • \n\t
    • 1 <= prices[i] <= 10^3
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n vector finalPrices(vector &prices)\n {\n\n int n = prices.size();\n\n for (int i = 0; i < n; i++)\n {\n for (int j = i + 1; j < n; j++)\n {\n if (prices[j] <= prices[i])\n {\n prices[i] -= prices[j];\n break;\n }\n }\n }\n\n return prices;\n }\n};", "number": "1475"}, "1441": {"link": "https://leetcode.com/problems/build-an-array-with-stack-operations", "name": "Build an Array With Stack Operations", "difficulty": "Easy", "statement": "

    Given an array target and an integer n. In each iteration, you will read a number from  list = {1,2,3..., n}.

    \n\n

    Build the target array using the following operations:

    \n\n
      \n\t
    • Push: Read a new element from the beginning list, and push it in the array.
    • \n\t
    • Pop: delete the last element of the array.
    • \n\t
    • If the target array is already built, stop reading more elements.
    • \n
    \n\n

    You are guaranteed that the target array is strictly increasing, only containing numbers between 1 to n inclusive.

    \n\n

    Return the operations to build the target array.

    \n\n

    You are guaranteed that the answer is unique.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: target = [1,3], n = 3\nOutput: [\"Push\",\"Push\",\"Pop\",\"Push\"]\nExplanation: \nRead number 1 and automatically push in the array -> [1]\nRead number 2 and automatically push in the array then Pop it -> [1]\nRead number 3 and automatically push in the array -> [1,3]\n
    \n\n

    Example 2:

    \n\n
    Input: target = [1,2,3], n = 3\nOutput: [\"Push\",\"Push\",\"Push\"]\n
    \n\n

    Example 3:

    \n\n
    Input: target = [1,2], n = 4\nOutput: [\"Push\",\"Push\"]\nExplanation: You only need to read the first 2 numbers and stop.\n
    \n\n

    Example 4:

    \n\n
    Input: target = [2,3,4], n = 4\nOutput: [\"Push\",\"Pop\",\"Push\",\"Push\",\"Push\"]\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= target.length <= 100
    • \n\t
    • 1 <= target[i] <= 100
    • \n\t
    • 1 <= n <= 100
    • \n\t
    • target is strictly increasing.
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n vector buildArray(vector &target, int n)\n {\n\n string push = \"Push\";\n string pop = \"Pop\";\n\n vector res;\n\n int index = 0;\n\n for (int num = 1; index < target.size() && num <= n; ++num)\n {\n res.push_back(push);\n if (num == target[index])\n {\n ++index;\n }\n else\n {\n res.push_back(pop);\n }\n }\n\n return res;\n }\n};", "number": "1441"}, "1221": {"link": "https://leetcode.com/problems/split-a-string-in-balanced-strings", "name": "Split a String in Balanced Strings", "difficulty": "Easy", "statement": "

    Balanced strings are those who have equal quantity of 'L' and 'R' characters.

    \n\n

    Given a balanced string s split it in the maximum amount of balanced strings.

    \n\n

    Return the maximum amount of splitted balanced strings.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: s = \"RLRRLLRLRL\"\nOutput: 4\nExplanation: s can be split into \"RL\", \"RRLL\", \"RL\", \"RL\", each substring contains same number of 'L' and 'R'.\n
    \n\n

    Example 2:

    \n\n
    Input: s = \"RLLLLRRRLR\"\nOutput: 3\nExplanation: s can be split into \"RL\", \"LLLRRR\", \"LR\", each substring contains same number of 'L' and 'R'.\n
    \n\n

    Example 3:

    \n\n
    Input: s = \"LLLLRRRR\"\nOutput: 1\nExplanation: s can be split into \"LLLLRRRR\".\n
    \n\n

    Example 4:

    \n\n
    Input: s = \"RLRRRLLRLL\"\nOutput: 2\nExplanation: s can be split into \"RL\", \"RRRLLRLL\", since each substring contains an equal number of 'L' and 'R'\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= s.length <= 1000
    • \n\t
    • s[i] = 'L' or 'R'
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int balancedStringSplit(string s)\n {\n\n int count = 0;\n int diff = 0;\n int n = s.length();\n\n for(char i: s) {\n if (i == 'L') diff--;\n else diff++;\n\n if (diff == 0){\n count ++;\n }\n }\n\n return count;\n }\n};", "number": "1221"}, "1309": {"link": "https://leetcode.com/problems/decrypt-string-from-alphabet-to-integer-mapping", "name": "Decrypt String from Alphabet to Integer Mapping", "difficulty": "Easy", "statement": "

    Given a string s formed by digits ('0' - '9') and '#' . We want to map s to English lowercase characters as follows:

    \n\n
      \n\t
    • Characters ('a' to 'i') are represented by ('1' to '9') respectively.
    • \n\t
    • Characters ('j' to 'z') are represented by ('10#' to '26#') respectively. 
    • \n
    \n\n

    Return the string formed after mapping.

    \n\n

    It's guaranteed that a unique mapping will always exist.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: s = \"10#11#12\"\nOutput: \"jkab\"\nExplanation: \"j\" -> \"10#\" , \"k\" -> \"11#\" , \"a\" -> \"1\" , \"b\" -> \"2\".\n
    \n\n

    Example 2:

    \n\n
    Input: s = \"1326#\"\nOutput: \"acz\"\n
    \n\n

    Example 3:

    \n\n
    Input: s = \"25#\"\nOutput: \"y\"\n
    \n\n

    Example 4:

    \n\n
    Input: s = \"12345678910#11#12#13#14#15#16#17#18#19#20#21#22#23#24#25#26#\"\nOutput: \"abcdefghijklmnopqrstuvwxyz\"\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= s.length <= 1000
    • \n\t
    • s[i] only contains digits letters ('0'-'9') and '#' letter.
    • \n\t
    • s will be valid string such that mapping is always possible.
    • \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n string freqAlphabets(string s) {\n\n stringstream res;\n\n int n = s.length();\n\n for(int i = 0; i < n; i++) {\n if (i+2 < n && s[i+2] == '#') {\n\n int a = (int)s[i] - 48;\n int b = (int)s[i+1] - 48;\n\n char r = (char)(106 + (a-1)*10 + b);\n res << r;\n i += 2;\n }\n else {\n char r = (char)((int)s[i] + 48);\n res << r;\n }\n }\n\n return res.str();\n \n }\n};", "number": "1309"}, "1351": {"link": "https://leetcode.com/problems/count-negative-numbers-in-a-sorted-matrix", "name": "Count Negative Numbers in a Sorted Matrix", "difficulty": "Easy", "statement": "

    Given a m * n matrix grid which is sorted in non-increasing order both row-wise and column-wise. 

    \n\n

    Return the number of negative numbers in grid.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: grid = [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]]\nOutput: 8\nExplanation: There are 8 negatives number in the matrix.\n
    \n\n

    Example 2:

    \n\n
    Input: grid = [[3,2],[1,0]]\nOutput: 0\n
    \n\n

    Example 3:

    \n\n
    Input: grid = [[1,-1],[-1,-1]]\nOutput: 3\n
    \n\n

    Example 4:

    \n\n
    Input: grid = [[-1]]\nOutput: 1\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • m == grid.length
    • \n\t
    • n == grid[i].length
    • \n\t
    • 1 <= m, n <= 100
    • \n\t
    • -100 <= grid[i][j] <= 100
    • \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n int countNegatives(vector>& grid) {\n\n int count = 0;\n\n for(vector x: grid) {\n for(int a: x) {\n if (a < 0) ++count;\n }\n }\n return count;\n \n }\n};", "number": "1351"}, "1403": {"link": "https://leetcode.com/problems/minimum-subsequence-in-non-increasing-order", "name": "Minimum Subsequence in Non-Increasing Order", "difficulty": "Easy", "statement": "

    Given the array nums, obtain a subsequence of the array whose sum of elements is strictly greater than the sum of the non included elements in such subsequence. 

    \n\n

    If there are multiple solutions, return the subsequence with minimum size and if there still exist multiple solutions, return the subsequence with the maximum total sum of all its elements. A subsequence of an array can be obtained by erasing some (possibly zero) elements from the array. 

    \n\n

    Note that the solution with the given constraints is guaranteed to be unique. Also return the answer sorted in non-increasing order.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: nums = [4,3,10,9,8]\nOutput: [10,9] \nExplanation: The subsequences [10,9] and [10,8] are minimal such that the sum of their elements is strictly greater than the sum of elements not included, however, the subsequence [10,9] has the maximum total sum of its elements. \n
    \n\n

    Example 2:

    \n\n
    Input: nums = [4,4,7,6,7]\nOutput: [7,7,6] \nExplanation: The subsequence [7,7] has the sum of its elements equal to 14 which is not strictly greater than the sum of elements not included (14 = 4 + 4 + 6). Therefore, the subsequence [7,6,7] is the minimal satisfying the conditions. Note the subsequence has to returned in non-decreasing order.  \n
    \n\n

    Example 3:

    \n\n
    Input: nums = [6]\nOutput: [6]\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= nums.length <= 500
    • \n\t
    • 1 <= nums[i] <= 100
    • \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n vector minSubsequence(vector& nums) {\n\n sort(nums.begin(), nums.end());\n reverse(nums.begin(), nums.end());\n int sum = 0;\n int totalsum = 0;\n vector res;\n\n for(int i: nums)\n totalsum += i;\n\n for (int i: nums) {\n sum += i;\n res.push_back(i);\n if (sum > totalsum / 2) {\n break;\n }\n }\n\n return res;\n \n }\n};", "number": "1403"}, "1389": {"link": "https://leetcode.com/problems/create-target-array-in-the-given-order", "name": "Create Target Array in the Given Order", "difficulty": "Easy", "statement": "

    Given two arrays of integers nums and index. Your task is to create target array under the following rules:

    \n\n
      \n\t
    • Initially target array is empty.
    • \n\t
    • From left to right read nums[i] and index[i], insert at index index[i] the value nums[i] in target array.
    • \n\t
    • Repeat the previous step until there are no elements to read in nums and index.
    • \n
    \n\n

    Return the target array.

    \n\n

    It is guaranteed that the insertion operations will be valid.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: nums = [0,1,2,3,4], index = [0,1,2,2,1]\nOutput: [0,4,1,3,2]\nExplanation:\nnums       index     target\n0            0        [0]\n1            1        [0,1]\n2            2        [0,1,2]\n3            2        [0,1,3,2]\n4            1        [0,4,1,3,2]\n
    \n\n

    Example 2:

    \n\n
    Input: nums = [1,2,3,4,0], index = [0,1,2,3,0]\nOutput: [0,1,2,3,4]\nExplanation:\nnums       index     target\n1            0        [1]\n2            1        [1,2]\n3            2        [1,2,3]\n4            3        [1,2,3,4]\n0            0        [0,1,2,3,4]\n
    \n\n

    Example 3:

    \n\n
    Input: nums = [1], index = [0]\nOutput: [1]\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= nums.length, index.length <= 100
    • \n\t
    • nums.length == index.length
    • \n\t
    • 0 <= nums[i] <= 100
    • \n\t
    • 0 <= index[i] <= i
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n vector createTargetArray(vector &nums, vector &index)\n {\n\n int n = nums.size();\n\n vector res;\n\n for (int i = 0; i < n; i++)\n {\n res.insert(res.begin() + index[i], nums[i]);\n }\n\n return res;\n }\n};", "number": "1389"}, "1470": {"link": "https://leetcode.com/problems/shuffle-the-array", "name": "Shuffle the Array", "difficulty": "Easy", "statement": "

    Given the array nums consisting of 2n elements in the form [x1,x2,...,xn,y1,y2,...,yn].

    \n\n

    Return the array in the form [x1,y1,x2,y2,...,xn,yn].

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: nums = [2,5,1,3,4,7], n = 3\nOutput: [2,3,5,4,1,7] \nExplanation: Since x1=2, x2=5, x3=1, y1=3, y2=4, y3=7 then the answer is [2,3,5,4,1,7].\n
    \n\n

    Example 2:

    \n\n
    Input: nums = [1,2,3,4,4,3,2,1], n = 4\nOutput: [1,4,2,3,3,2,4,1]\n
    \n\n

    Example 3:

    \n\n
    Input: nums = [1,1,2,2], n = 2\nOutput: [1,2,1,2]\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= n <= 500
    • \n\t
    • nums.length == 2n
    • \n\t
    • 1 <= nums[i] <= 10^3
    • \n
    ", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n vector shuffle(vector& nums, int n) {\n vector res;\n for(int i = 0; i < n; i++) {\n res.push_back(nums[i]);\n res.push_back(nums[i + n]);\n }\n return res;\n }\n};", "number": "1470"}, "1486": {"link": "https://leetcode.com/problems/xor-operation-in-an-array", "name": "XOR Operation in an Array", "difficulty": "Easy", "statement": "

    Given an integer n and an integer start.

    \n\n

    Define an array nums where nums[i] = start + 2*i (0-indexed) and n == nums.length.

    \n\n

    Return the bitwise XOR of all elements of nums.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: n = 5, start = 0\nOutput: 8\nExplanation: Array nums is equal to [0, 2, 4, 6, 8] where (0 ^ 2 ^ 4 ^ 6 ^ 8) = 8.\nWhere \"^\" corresponds to bitwise XOR operator.\n
    \n\n

    Example 2:

    \n\n
    Input: n = 4, start = 3\nOutput: 8\nExplanation: Array nums is equal to [3, 5, 7, 9] where (3 ^ 5 ^ 7 ^ 9) = 8.
    \n\n

    Example 3:

    \n\n
    Input: n = 1, start = 7\nOutput: 7\n
    \n\n

    Example 4:

    \n\n
    Input: n = 10, start = 5\nOutput: 2\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= n <= 1000
    • \n\t
    • 0 <= start <= 1000
    • \n\t
    • n == nums.length
    • \n
    ", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n int xorOperation(int n, int start) {\n int res = start;\n\n for(int i = 1; i < n; i++) {\n res ^= (start + 2 * i);\n }\n\n return res;\n }\n};", "number": "1486"}, "1450": {"link": "https://leetcode.com/problems/number-of-students-doing-homework-at-a-given-time", "name": "Number of Students Doing Homework at a Given Time", "difficulty": "Easy", "statement": "

    Given two integer arrays startTime and endTime and given an integer queryTime.

    \n\n

    The ith student started doing their homework at the time startTime[i] and finished it at time endTime[i].

    \n\n

    Return the number of students doing their homework at time queryTime. More formally, return the number of students where queryTime lays in the interval [startTime[i], endTime[i]] inclusive.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: startTime = [1,2,3], endTime = [3,2,7], queryTime = 4\nOutput: 1\nExplanation: We have 3 students where:\nThe first student started doing homework at time 1 and finished at time 3 and wasn't doing anything at time 4.\nThe second student started doing homework at time 2 and finished at time 2 and also wasn't doing anything at time 4.\nThe third student started doing homework at time 3 and finished at time 7 and was the only student doing homework at time 4.\n
    \n\n

    Example 2:

    \n\n
    Input: startTime = [4], endTime = [4], queryTime = 4\nOutput: 1\nExplanation: The only student was doing their homework at the queryTime.\n
    \n\n

    Example 3:

    \n\n
    Input: startTime = [4], endTime = [4], queryTime = 5\nOutput: 0\n
    \n\n

    Example 4:

    \n\n
    Input: startTime = [1,1,1,1], endTime = [1,3,2,4], queryTime = 7\nOutput: 0\n
    \n\n

    Example 5:

    \n\n
    Input: startTime = [9,8,7,6,5,4,3,2,1], endTime = [10,10,10,10,10,10,10,10,10], queryTime = 5\nOutput: 5\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • startTime.length == endTime.length
    • \n\t
    • 1 <= startTime.length <= 100
    • \n\t
    • 1 <= startTime[i] <= endTime[i] <= 1000
    • \n\t
    • 1 <= queryTime <= 1000
    • \n
    \n
    ", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n int busyStudent(vector& startTime, vector& endTime, int queryTime) {\n\n int count = 0;\n\n for(int i = 0; i < startTime.size(); i++) {\n if (queryTime >= startTime[i] && queryTime <= endTime[i]) ++count;\n }\n\n return count;\n \n }\n};", "number": "1450"}, "559": {"link": "https://leetcode.com/problems/maximum-depth-of-n-ary-tree", "name": "Maximum Depth of N-ary Tree", "difficulty": "Easy", "statement": "

    Given a n-ary tree, find its maximum depth.

    \n\n

    The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

    \n\n

    Nary-Tree input serialization is represented in their level order traversal, each group of children is separated by the null value (See examples).

    \n\n

     

    \n

    Example 1:

    \n\n

    \n\n
    Input: root = [1,null,3,2,4,null,5,6]\nOutput: 3\n
    \n\n

    Example 2:

    \n\n

    \"\"

    \n\n
    Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]\nOutput: 5\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • The depth of the n-ary tree is less than or equal to 1000.
    • \n\t
    • The total number of nodes is between [0, 10^4].
    • \n
    \n
    ", "language": "c", "solution": "\nstruct Node\n{\n int val;\n int numChildren;\n struct Node **children;\n};\n\nint *maxDepth(struct Node *root)\n{\n return calc_depth(root, 0);\n}\n\nint calc_depth(struct Node *root, int depth)\n{\n if (!root)\n return depth;\n int old_depth = depth;\n depth += 1;\n for (int i = 0; i < root->numChildren; i++)\n {\n int newd = calc_depth(root->children[i], old_depth + 1);\n printf(\"%d\\n\", newd);\n depth = depth > newd ? depth : newd;\n }\n return depth;\n}", "number": "559"}, "905": {"link": "https://leetcode.com/problems/sort-array-by-parity", "name": "Sort Array By Parity", "difficulty": "Easy", "statement": "

    Given an array A of non-negative integers, return an array consisting of all the even elements of A, followed by all the odd elements of A.

    \n\n

    You may return any answer array that satisfies this condition.

    \n\n

     

    \n\n
    \n

    Example 1:

    \n\n
    Input: [3,1,2,4]\nOutput: [2,4,3,1]\nThe outputs [4,2,3,1], [2,4,1,3], and [4,2,1,3] would also be accepted.\n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    1. 1 <= A.length <= 5000
    2. \n\t
    3. 0 <= A[i] <= 5000
    4. \n
    \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n vector sortArrayByParity(vector& A) {\n\n vector even;\n vector odd;\n for(int i: A) if (i%2) odd.push_back(i); else even.push_back(i);\n for(int i: odd) even.push_back(i);\n return even;\n\n }\n};", "number": "905"}, "1237": {"link": "https://leetcode.com/problems/find-positive-integer-solution-for-a-given-equation", "name": "Find Positive Integer Solution for a Given Equation", "difficulty": "Easy", "statement": "

    Given a function  f(x, y) and a value z, return all positive integer pairs x and y where f(x,y) == z.

    \n\n

    The function is constantly increasing, i.e.:

    \n\n
      \n\t
    • f(x, y) < f(x + 1, y)
    • \n\t
    • f(x, y) < f(x, y + 1)
    • \n
    \n\n

    The function interface is defined like this: 

    \n\n
    interface CustomFunction {\npublic:\n  // Returns positive integer f(x, y) for any given positive integer x and y.\n  int f(int x, int y);\n};\n
    \n\n

    For custom testing purposes you're given an integer function_id and a target z as input, where function_id represent one function from an secret internal list, on the examples you'll know only two functions from the list.  

    \n\n

    You may return the solutions in any order.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: function_id = 1, z = 5\nOutput: [[1,4],[2,3],[3,2],[4,1]]\nExplanation: function_id = 1 means that f(x, y) = x + y
    \n\n

    Example 2:

    \n\n
    Input: function_id = 2, z = 5\nOutput: [[1,5],[5,1]]\nExplanation: function_id = 2 means that f(x, y) = x * y\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= function_id <= 9
    • \n\t
    • 1 <= z <= 100
    • \n\t
    • It's guaranteed that the solutions of f(x, y) == z will be on the range 1 <= x, y <= 1000
    • \n\t
    • It's also guaranteed that f(x, y) will fit in 32 bit signed integer if 1 <= x, y <= 1000
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass CustomFunction\n{\npublic:\n // Returns f(x, y) for any given positive integers x and y.\n // Note that f(x, y) is increasing with respect to both x and y.\n // i.e. f(x, y) < f(x + 1, y), f(x, y) < f(x, y + 1)\n int f(int x, int y);\n};\n\nclass Solution\n{\npublic:\n vector> findSolution(CustomFunction &customfunction, int z)\n {\n\n vector> res;\n for (int x = 1; x <= 1000; x++)\n {\n for (int y = 1; y <= 1000; y++)\n {\n int val = customfunction.f(x, y);\n if (val == z)\n {\n vector r = {x, y};\n res.push_back(r);\n break;\n }\n if (val > z)\n {\n break;\n }\n }\n }\n\n return res;\n }\n};", "number": "1237"}, "561": {"link": "https://leetcode.com/problems/array-partition-i", "name": "Array Partition I", "difficulty": "Easy", "statement": "

    \nGiven an array of 2n integers, your task is to group these integers into n pairs of integer, say (a1, b1), (a2, b2), ..., (an, bn) which makes sum of min(ai, bi) for all i from 1 to n as large as possible.\n

    \n\n

    Example 1:
    \n

    Input: [1,4,3,2]\n\nOutput: 4\nExplanation: n is 2, and the maximum sum of pairs is 4 = min(1, 2) + min(3, 4).\n
    \n

    \n\n

    Note:
    \n

      \n
    1. n is a positive integer, which is in the range of [1, 10000].
    2. \n
    3. All the integers in the array will be in the range of [-10000, 10000].
    4. \n
    \n

    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n int arrayPairSum(vector& nums) {\n\n sort(nums.begin(), nums.end());\n\n int n = nums.size();\n int res = 0;\n for(int i = 0; i < n; i += 2)\n res += nums[i];\n \n return res;\n \n }\n};", "number": "561"}, "1374": {"link": "https://leetcode.com/problems/generate-a-string-with-characters-that-have-odd-counts", "name": "Generate a String With Characters That Have Odd Counts", "difficulty": "Easy", "statement": "

    Given an integer n, return a string with n characters such that each character in such string occurs an odd number of times.

    \n\n

    The returned string must contain only lowercase English letters. If there are multiples valid strings, return any of them.  

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: n = 4\nOutput: \"pppz\"\nExplanation: \"pppz\" is a valid string since the character 'p' occurs three times and the character 'z' occurs once. Note that there are many other valid strings such as \"ohhh\" and \"love\".\n
    \n\n

    Example 2:

    \n\n
    Input: n = 2\nOutput: \"xy\"\nExplanation: \"xy\" is a valid string since the characters 'x' and 'y' occur once. Note that there are many other valid strings such as \"ag\" and \"ur\".\n
    \n\n

    Example 3:

    \n\n
    Input: n = 7\nOutput: \"holasss\"\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= n <= 500
    • \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n string generateTheString(int n)\n {\n\n stringstream ss;\n\n if (n % 2)\n {\n for (int i = 0; i < n; i++)\n {\n ss << 'a';\n }\n }\n else\n {\n for (int i = 0; i < n - 1; i++)\n {\n ss << 'a';\n }\n ss << 'b';\n }\n\n return ss.str();\n }\n};", "number": "1374"}, "1323": {"link": "https://leetcode.com/problems/maximum-69-number", "name": "Maximum 69 Number", "difficulty": "Easy", "statement": "

    Given a positive integer num consisting only of digits 6 and 9.

    \n\n

    Return the maximum number you can get by changing at most one digit (6 becomes 9, and 9 becomes 6).

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: num = 9669\nOutput: 9969\nExplanation: \nChanging the first digit results in 6669.\nChanging the second digit results in 9969.\nChanging the third digit results in 9699.\nChanging the fourth digit results in 9666. \nThe maximum number is 9969.\n
    \n\n

    Example 2:

    \n\n
    Input: num = 9996\nOutput: 9999\nExplanation: Changing the last digit 6 to 9 results in the maximum number.
    \n\n

    Example 3:

    \n\n
    Input: num = 9999\nOutput: 9999\nExplanation: It is better not to apply any change.
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= num <= 10^4
    • \n\t
    • num's digits are 6 or 9.
    • \n
    ", "language": "cpp", "solution": "#include\n#include\n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n int maximum69Number (int num) {\n\n int temp = num;\n \n int mult = 1;\n int val = 0;\n\n while(num) {\n int rem = num%10;\n if (rem == 6) {\n val = 3*mult;\n }\n mult *= 10;\n num /= 10;\n }\n\n return temp + val;\n }\n};", "number": "1323"}, "1002": {"link": "https://leetcode.com/problems/find-common-characters", "name": "Find Common Characters", "difficulty": "Easy", "statement": "

    Given an array A of strings made only from lowercase letters, return a list of all characters that show up in all strings within the list (including duplicates).  For example, if a character occurs 3 times in all strings but not 4 times, you need to include that character three times in the final answer.

    \n\n

    You may return the answer in any order.

    \n\n

     

    \n\n
    \n

    Example 1:

    \n\n
    Input: [\"bella\",\"label\",\"roller\"]\nOutput: [\"e\",\"l\",\"l\"]\n
    \n\n
    \n

    Example 2:

    \n\n
    Input: [\"cool\",\"lock\",\"cook\"]\nOutput: [\"c\",\"o\"]\n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    1. 1 <= A.length <= 100
    2. \n\t
    3. 1 <= A[i].length <= 100
    4. \n\t
    5. A[i][j] is a lowercase letter
    6. \n
    \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n vector commonChars(vector &A)\n {\n\n int len = A.size();\n vector> m;\n for (int i = 0; i < 26; i++)\n {\n vector t;\n for (string temp : A)\n t.push_back(0);\n m.push_back(t);\n }\n\n for (int i = 0; i < len; ++i)\n {\n for (char ch : A[i])\n {\n ++m[(int)(ch)-97][i];\n }\n }\n\n vector out;\n\n for (int i = 0; i < 26; i++)\n {\n vector counts = m[i];\n int min_count = *min_element(counts.begin(), counts.end());\n stringstream s;\n s << (char)(i + 97);\n for (int j = 0; j < min_count; ++j)\n {\n out.push_back(s.str());\n }\n }\n\n return out;\n }\n};", "number": "1002"}, "1299": {"link": "https://leetcode.com/problems/replace-elements-with-greatest-element-on-right-side", "name": "Replace Elements with Greatest Element on Right Side", "difficulty": "Easy", "statement": "

    Given an array arr, replace every element in that array with the greatest element among the elements to its right, and replace the last element with -1.

    \n\n

    After doing so, return the array.

    \n\n

     

    \n

    Example 1:

    \n
    Input: arr = [17,18,5,4,6,1]\nOutput: [18,6,6,6,1,-1]\n
    \n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= arr.length <= 10^4
    • \n\t
    • 1 <= arr[i] <= 10^5
    • \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n vector replaceElements(vector& arr) {\n\n vector res;\n int n = arr.size();\n for (int i: arr) {\n res.push_back(-1);\n }\n\n for(int i = 0; i < n; i++) {\n for(int j = i+1; j < n; j++) {\n if (arr[j] > res[i]) {\n res[i] = arr[j];\n }\n }\n }\n\n return res;\n \n }\n};", "number": "1299"}, "1512": {"link": "https://leetcode.com/problems/number-of-good-pairs", "name": "Number of Good Pairs", "difficulty": "Easy", "statement": "

    Given an array of integers nums.

    \n\n

    A pair (i,j) is called good if nums[i] == nums[j] and i < j.

    \n\n

    Return the number of good pairs.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: nums = [1,2,3,1,1,3]\nOutput: 4\nExplanation: There are 4 good pairs (0,3), (0,4), (3,4), (2,5) 0-indexed.\n
    \n\n

    Example 2:

    \n\n
    Input: nums = [1,1,1,1]\nOutput: 6\nExplanation: Each pair in the array are good.\n
    \n\n

    Example 3:

    \n\n
    Input: nums = [1,2,3]\nOutput: 0\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= nums.length <= 100
    • \n\t
    • 1 <= nums[i] <= 100
    • \n
    ", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n int numIdenticalPairs(vector& nums) {\n\n int visited[101];\n fill_n(visited, 101, 0);\n\n int count = 0;\n\n for (int i: nums) {\n visited[i] += 1;\n }\n\n for (int i: visited) {\n count += (i * (i-1)) / 2;\n }\n\n return count;\n }\n};", "number": "1512"}, "1436": {"link": "https://leetcode.com/problems/destination-city", "name": "Destination City", "difficulty": "Easy", "statement": "

    You are given the array paths, where paths[i] = [cityAi, cityBi] means there exists a direct path going from cityAi to cityBi. Return the destination city, that is, the city without any path outgoing to another city.

    \n\n

    It is guaranteed that the graph of paths forms a line without any loop, therefore, there will be exactly one destination city.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: paths = [[\"London\",\"New York\"],[\"New York\",\"Lima\"],[\"Lima\",\"Sao Paulo\"]]\nOutput: \"Sao Paulo\" \nExplanation: Starting at \"London\" city you will reach \"Sao Paulo\" city which is the destination city. Your trip consist of: \"London\" -> \"New York\" -> \"Lima\" -> \"Sao Paulo\".\n
    \n\n

    Example 2:

    \n\n
    Input: paths = [[\"B\",\"C\"],[\"D\",\"B\"],[\"C\",\"A\"]]\nOutput: \"A\"\nExplanation: All possible trips are: \n\"D\" -> \"B\" -> \"C\" -> \"A\". \n\"B\" -> \"C\" -> \"A\". \n\"C\" -> \"A\". \n\"A\". \nClearly the destination city is \"A\".\n
    \n\n

    Example 3:

    \n\n
    Input: paths = [[\"A\",\"Z\"]]\nOutput: \"Z\"\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= paths.length <= 100
    • \n\t
    • paths[i].length == 2
    • \n\t
    • 1 <= cityAi.length, cityBi.length <= 10
    • \n\t
    • cityA!= cityBi
    • \n\t
    • All strings consist of lowercase and uppercase English letters and the space character.
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n string destCity(vector>& paths) {\n \n\n set all;\n for (vector path: paths) {\n all.insert(path[0]);\n all.insert(path[1]);\n }\n\n set outonly;\n for (vector path: paths) {\n outonly.insert(path[0]);\n }\n\n string city;\n\n for(string c: all) {\n if (outonly.find(c) == outonly.end()) {\n city = c;\n break;\n }\n }\n\n return city;\n\n }\n};", "number": "1436"}, "938": {"link": "https://leetcode.com/problems/range-sum-of-bst", "name": "Range Sum of BST", "difficulty": "Easy", "statement": "

    Given the root node of a binary search tree, return the sum of values of all nodes with value between L and R (inclusive).

    \n\n

    The binary search tree is guaranteed to have unique values.

    \n\n

     

    \n\n
    \n

    Example 1:

    \n\n
    Input: root = [10,5,15,3,7,null,18], L = 7, R = 15\nOutput: 32\n
    \n\n
    \n

    Example 2:

    \n\n
    Input: root = [10,5,15,3,7,13,18,1,null,6], L = 6, R = 10\nOutput: 23\n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    1. The number of nodes in the tree is at most 10000.
    2. \n\t
    3. The final answer is guaranteed to be less than 2^31.
    4. \n
    \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\n/**\n * Definition for a binary tree node.\n * struct TreeNode {\n * int val;\n * TreeNode *left;\n * TreeNode *right;\n * TreeNode() : val(0), left(nullptr), right(nullptr) {}\n * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}\n * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}\n * };\n */\nclass Solution\n{\npublic:\n int rangeSumBST(TreeNode *root, int L, int R)\n {\n\n int sum = 0;\n if (root)\n {\n sum = root->val >= L && root->val <= R ? root->val : 0;\n sum += rangeSumBST(root->left, L, R);\n sum += rangeSumBST(root->right, L, R);\n }\n\n return sum;\n }\n};", "number": "938"}, "590": {"link": "https://leetcode.com/problems/n-ary-tree-postorder-traversal", "name": "N-ary Tree Postorder Traversal", "difficulty": "Easy", "statement": "

    Given an n-ary tree, return the postorder traversal of its nodes' values.

    \n\n

    Nary-Tree input serialization is represented in their level order traversal, each group of children is separated by the null value (See examples).

    \n\n

     

    \n\n

    Follow up:

    \n\n

    Recursive solution is trivial, could you do it iteratively?

    \n\n

     

    \n

    Example 1:

    \n\n

    \n\n
    Input: root = [1,null,3,2,4,null,5,6]\nOutput: [5,6,3,2,4,1]\n
    \n\n

    Example 2:

    \n\n

    \"\"

    \n\n
    Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]\nOutput: [2,6,14,11,7,3,12,8,4,13,9,10,5,1]\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • The height of the n-ary tree is less than or equal to 1000
    • \n\t
    • The total number of nodes is between [0, 10^4]
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Node {\npublic:\n int val;\n vector children;\n\n Node() {}\n\n Node(int _val) {\n val = _val;\n }\n\n Node(int _val, vector _children) {\n val = _val;\n children = _children;\n }\n};\n\nclass Solution {\npublic:\n vector postorder(Node* root) {\n\n vector res;\n if (!root) {\n return res;\n }\n\n reverse((root->children).begin(), (root->children).end());\n\n for (Node* node: root->children) {\n vector temp = postorder(node);\n res.insert(res.begin(), temp.begin(), temp.end());\n }\n\n res.push_back(root->val);\n return res;\n }\n};", "number": "590"}, "811": {"link": "https://leetcode.com/problems/subdomain-visit-count", "name": "Subdomain Visit Count", "difficulty": "Easy", "statement": "

    A website domain like \"discuss.leetcode.com\" consists of various subdomains. At the top level, we have \"com\", at the next level, we have \"leetcode.com\", and at the lowest level, \"discuss.leetcode.com\". When we visit a domain like \"discuss.leetcode.com\", we will also visit the parent domains \"leetcode.com\" and \"com\" implicitly.

    \n\n

    Now, call a \"count-paired domain\" to be a count (representing the number of visits this domain received), followed by a space, followed by the address. An example of a count-paired domain might be \"9001 discuss.leetcode.com\".

    \n\n

    We are given a list cpdomains of count-paired domains. We would like a list of count-paired domains, (in the same format as the input, and in any order), that explicitly counts the number of visits to each subdomain.

    \n\n
    Example 1:\nInput: \n[\"9001 discuss.leetcode.com\"]\nOutput: \n[\"9001 discuss.leetcode.com\", \"9001 leetcode.com\", \"9001 com\"]\nExplanation: \nWe only have one website domain: \"discuss.leetcode.com\". As discussed above, the subdomain \"leetcode.com\" and \"com\" will also be visited. So they will all be visited 9001 times.\n\n
    \n\n
    Example 2:\nInput: \n[\"900 google.mail.com\", \"50 yahoo.com\", \"1 intel.mail.com\", \"5 wiki.org\"]\nOutput: \n[\"901 mail.com\",\"50 yahoo.com\",\"900 google.mail.com\",\"5 wiki.org\",\"5 org\",\"1 intel.mail.com\",\"951 com\"]\nExplanation: \nWe will visit \"google.mail.com\" 900 times, \"yahoo.com\" 50 times, \"intel.mail.com\" once and \"wiki.org\" 5 times. For the subdomains, we will visit \"mail.com\" 900 + 1 = 901 times, \"com\" 900 + 50 + 1 = 951 times, and \"org\" 5 times.\n\n
    \n\n

    Notes:

    \n\n
      \n\t
    • The length of cpdomains will not exceed 100
    • \n\t
    • The length of each domain name will not exceed 100.
    • \n\t
    • Each address will have either 1 or 2 \".\" characters.
    • \n\t
    • The input count in any count-paired domain will not exceed 10000.
    • \n\t
    • The answer output can be returned in any order.
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n vector subdomainVisits(vector& cpdomains) {\n\n vector res;\n\n unordered_map count;\n for (string x: cpdomains) {\n\n int space_pos = x.find(' ');\n string num_string = x.substr(0, space_pos);\n int num = stoi(num_string);\n string domain = x.substr(space_pos + 1);\n\n if (count[domain]) count[domain] += num;\n else count[domain] = num;\n\n for (int i = 0; i < domain.length(); i++) {\n if (domain[i] == '.') {\n if (count[domain.substr(i+1)]) count[domain.substr(i+1)] += num;\n else count[domain.substr(i+1)] = num;\n }\n }\n\n }\n for (auto x: count) {\n stringstream r;\n r << x.second << \" \" << x.first;\n res.push_back(r.str());\n }\n return res;\n }\n};", "number": "811"}, "1281": {"link": "https://leetcode.com/problems/subtract-the-product-and-sum-of-digits-of-an-integer", "name": "Subtract the Product and Sum of Digits of an Integer", "difficulty": "Easy", "statement": "
    Given an integer number n, return the difference between the product of its digits and the sum of its digits.\n

     

    \n

    Example 1:

    \n\n
    Input: n = 234\nOutput: 15 \nExplanation: \nProduct of digits = 2 * 3 * 4 = 24 \nSum of digits = 2 + 3 + 4 = 9 \nResult = 24 - 9 = 15\n
    \n\n

    Example 2:

    \n\n
    Input: n = 4421\nOutput: 21\nExplanation: \nProduct of digits = 4 * 4 * 2 * 1 = 32 \nSum of digits = 4 + 4 + 2 + 1 = 11 \nResult = 32 - 11 = 21\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= n <= 10^5
    • \n
    \n
    ", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n int subtractProductAndSum(int n) {\n int sum = 0;\n int prod = 1;\n\n while (n) {\n int rem = n % 10;\n sum += rem;\n prod *= rem;\n n /= 10;\n }\n\n if (sum > prod) {\n return sum - prod;\n }\n return prod - sum;\n }\n};", "number": "1281"}, "852": {"link": "https://leetcode.com/problems/peak-index-in-a-mountain-array", "name": "Peak Index in a Mountain Array", "difficulty": "Easy", "statement": "

    Let's call an array arr a mountain if the following properties hold:

    \n\n
      \n\t
    • arr.length >= 3
    • \n\t
    • There exists some i with 0 < i < arr.length - 1 such that:\n\t
        \n\t\t
      • arr[0] < arr[1] < ... arr[i-1] < arr[i]
      • \n\t\t
      • arr[i] > arr[i+1] > ... > arr[arr.length - 1]
      • \n\t
      \n\t
    • \n
    \n\n

    Given an integer array arr that is guaranteed to be a mountain, return any i such that arr[0] < arr[1] < ... arr[i - 1] < arr[i] > arr[i + 1] > ... > arr[arr.length - 1].

    \n\n

     

    \n

    Example 1:

    \n
    Input: arr = [0,1,0]\nOutput: 1\n

    Example 2:

    \n
    Input: arr = [0,2,1,0]\nOutput: 1\n

    Example 3:

    \n
    Input: arr = [0,10,5,2]\nOutput: 1\n

    Example 4:

    \n
    Input: arr = [3,4,5,1]\nOutput: 2\n

    Example 5:

    \n
    Input: arr = [24,69,100,99,79,78,67,36,26,19]\nOutput: 2\n
    \n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 3 <= arr.length <= 104
    • \n\t
    • 0 <= arr[i] <= 106
    • \n\t
    • arr is guaranteed to be a mountain array.
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n int peakIndexInMountainArray(vector& A) {\n\n int n = A.size();\n for (int i = 1; i < n-1; i++) {\n if (A[i] > A[i-1] && A[i] > A[i+1]) return i;\n }\n return -1;\n }\n};", "number": "852"}, "617": {"link": "https://leetcode.com/problems/merge-two-binary-trees", "name": "Merge Two Binary Trees", "difficulty": "Easy", "statement": "

    Given two binary trees and imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not.

    \n\n

    You need to merge them into a new binary tree. The merge rule is that if two nodes overlap, then sum node values up as the new value of the merged node. Otherwise, the NOT null node will be used as the node of new tree.

    \n\n

    Example 1:

    \n\n
    Input: \n\tTree 1                     Tree 2                  \n          1                         2                             \n         / \\                       / \\                            \n        3   2                     1   3                        \n       /                           \\   \\                      \n      5                             4   7                  \nOutput: \nMerged tree:\n\t     3\n\t    / \\\n\t   4   5\n\t  / \\   \\ \n\t 5   4   7\n
    \n\n

     

    \n\n

    Note: The merging process must start from the root nodes of both trees.

    \n
    ", "language": "c", "solution": "#include\n#include \n\nstruct TreeNode\n{\n int val;\n struct TreeNode *left;\n struct TreeNode *right;\n};\n\nstruct TreeNode *mergeTrees(struct TreeNode *t1, struct TreeNode *t2)\n{\n\n if (!t1) return t2;\n if (!t2) return t1;\n\n t1->val = t1->val + t2->val;\n\n if (t1->left && t2->left)\n t1->left = mergeTrees(t1->left, t2->left);\n else if (t1->left)\n t1->left = t1->left;\n else if (t2->left)\n t1->left = t2->left;\n\n if (t1->right && t2->right)\n t1->right = mergeTrees(t1->right, t2->right);\n else if (t1->right)\n t1->right = t1->right;\n else if (t2->right)\n t1->right = t2->right;\n\n return t1;\n}", "number": "617"}, "1491": {"link": "https://leetcode.com/problems/average-salary-excluding-the-minimum-and-maximum-salary", "name": "Average Salary Excluding the Minimum and Maximum Salary", "difficulty": "Easy", "statement": "

    Given an array of unique integers salary where salary[i] is the salary of the employee i.

    \n\n

    Return the average salary of employees excluding the minimum and maximum salary.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: salary = [4000,3000,1000,2000]\nOutput: 2500.00000\nExplanation: Minimum salary and maximum salary are 1000 and 4000 respectively.\nAverage salary excluding minimum and maximum salary is (2000+3000)/2= 2500\n
    \n\n

    Example 2:

    \n\n
    Input: salary = [1000,2000,3000]\nOutput: 2000.00000\nExplanation: Minimum salary and maximum salary are 1000 and 3000 respectively.\nAverage salary excluding minimum and maximum salary is (2000)/1= 2000\n
    \n\n

    Example 3:

    \n\n
    Input: salary = [6000,5000,4000,3000,2000,1000]\nOutput: 3500.00000\n
    \n\n

    Example 4:

    \n\n
    Input: salary = [8000,9000,2000,3000,6000,1000]\nOutput: 4750.00000\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 3 <= salary.length <= 100
    • \n\t
    • 10^3 <= salary[i] <= 10^6
    • \n\t
    • salary[i] is unique.
    • \n\t
    • Answers within 10^-5 of the actual value will be accepted as correct.
    • \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n double average(vector &salary)\n {\n sort(salary.begin(), salary.end());\n int n = salary.size();\n int sum = 0;\n for (double i : salary)\n sum += i;\n sum -= salary[0];\n sum -= salary[n - 1];\n\n return (double)(sum / (double)(n - 2));\n }\n};", "number": "1491"}, "1304": {"link": "https://leetcode.com/problems/find-n-unique-integers-sum-up-to-zero", "name": "Find N Unique Integers Sum up to Zero", "difficulty": "Easy", "statement": "

    Given an integer n, return any array containing n unique integers such that they add up to 0.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: n = 5\nOutput: [-7,-1,1,3,4]\nExplanation: These arrays also are accepted [-5,-1,1,2,3] , [-3,-1,2,-2,4].\n
    \n\n

    Example 2:

    \n\n
    Input: n = 3\nOutput: [-1,0,1]\n
    \n\n

    Example 3:

    \n\n
    Input: n = 1\nOutput: [0]\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= n <= 1000
    • \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n vector sumZero(int n) {\n\n vector res;\n\n for (int i = 1; i <= (n/2); i++) {\n res.push_back(i);\n res.push_back(i*-1);\n }\n\n if (n%2)\n res.push_back(0);\n\n return res;\n \n }\n};", "number": "1304"}, "876": {"link": "https://leetcode.com/problems/middle-of-the-linked-list", "name": "Middle of the Linked List", "difficulty": "Easy", "statement": "

    Given a non-empty, singly linked list with head node head, return a middle node of linked list.

    \n\n

    If there are two middle nodes, return the second middle node.

    \n\n

     

    \n\n
    \n

    Example 1:

    \n\n
    Input: [1,2,3,4,5]\nOutput: Node 3 from this list (Serialization: [3,4,5])\nThe returned node has value 3.  (The judge's serialization of this node is [3,4,5]).\nNote that we returned a ListNode object ans, such that:\nans.val = 3, ans.next.val = 4, ans.next.next.val = 5, and ans.next.next.next = NULL.\n
    \n\n
    \n

    Example 2:

    \n\n
    Input: [1,2,3,4,5,6]\nOutput: Node 4 from this list (Serialization: [4,5,6])\nSince the list has two middle nodes with values 3 and 4, we return the second one.\n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    • The number of nodes in the given list will be between 1 and 100.
    • \n
    \n
    \n
    \n
    ", "language": "C", "solution": "\nstruct ListNode\n{\n int val;\n struct ListNode *next;\n};\n\nstruct ListNode *middleNode(struct ListNode *head)\n{\n int n = 0;\n struct ListNode* curr = head;\n\n while(curr) {\n curr = curr->next;\n ++n;\n }\n curr = head;\n for(int i = 0; i < n/2; ++i)\n curr = curr->next;\n return curr;\n}", "number": "876"}, "1534": {"link": "https://leetcode.com/problems/count-good-triplets", "name": "Count Good Triplets", "difficulty": "Easy", "statement": "

    Given an array of integers arr, and three integers ab and c. You need to find the number of good triplets.

    \n\n

    A triplet (arr[i], arr[j], arr[k]) is good if the following conditions are true:

    \n\n
      \n\t
    • 0 <= i < j < k < arr.length
    • \n\t
    • |arr[i] - arr[j]| <= a
    • \n\t
    • |arr[j] - arr[k]| <= b
    • \n\t
    • |arr[i] - arr[k]| <= c
    • \n
    \n\n

    Where |x| denotes the absolute value of x.

    \n\n

    Return the number of good triplets.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: arr = [3,0,1,1,9,7], a = 7, b = 2, c = 3\nOutput: 4\nExplanation: There are 4 good triplets: [(3,0,1), (3,0,1), (3,1,1), (0,1,1)].\n
    \n\n

    Example 2:

    \n\n
    Input: arr = [1,1,2,2,3], a = 0, b = 0, c = 1\nOutput: 0\nExplanation: No triplet satisfies all conditions.\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 3 <= arr.length <= 100
    • \n\t
    • 0 <= arr[i] <= 1000
    • \n\t
    • 0 <= a, b, c <= 1000
    • \n
    ", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n int countGoodTriplets(vector& arr, int a, int b, int c) {\n int n = arr.size();\n\n int count = 0;\n\n for(int i= 0; i < n; i++) {\n for (int j = i+1; j < n; j++) {\n for (int k = j+1; k < n; k++) {\n if ( abs(arr[i] - arr[j]) <= a && abs(arr[j]-arr[k]) <= b && abs(arr[i] - arr[k])<=c ) count++;\n }\n }\n }\n \n return count;\n }\n};", "number": "1534"}, "1356": {"link": "https://leetcode.com/problems/sort-integers-by-the-number-of-1-bits", "name": "Sort Integers by The Number of 1 Bits", "difficulty": "Easy", "statement": "

    Given an integer array arr. You have to sort the integers in the array in ascending order by the number of 1's in their binary representation and in case of two or more integers have the same number of 1's you have to sort them in ascending order.

    \n\n

    Return the sorted array.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: arr = [0,1,2,3,4,5,6,7,8]\nOutput: [0,1,2,4,8,3,5,6,7]\nExplantion: [0] is the only integer with 0 bits.\n[1,2,4,8] all have 1 bit.\n[3,5,6] have 2 bits.\n[7] has 3 bits.\nThe sorted array by bits is [0,1,2,4,8,3,5,6,7]\n
    \n\n

    Example 2:

    \n\n
    Input: arr = [1024,512,256,128,64,32,16,8,4,2,1]\nOutput: [1,2,4,8,16,32,64,128,256,512,1024]\nExplantion: All integers have 1 bit in the binary representation, you should just sort them in ascending order.\n
    \n\n

    Example 3:

    \n\n
    Input: arr = [10000,10000]\nOutput: [10000,10000]\n
    \n\n

    Example 4:

    \n\n
    Input: arr = [2,3,5,7,11,13,17,19]\nOutput: [2,3,5,17,7,11,13,19]\n
    \n\n

    Example 5:

    \n\n
    Input: arr = [10,100,1000,10000]\nOutput: [10,100,10000,1000]\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= arr.length <= 500
    • \n\t
    • 0 <= arr[i] <= 10^4
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nint one_count(int a) {\n if (a == 0) return 0;\n return a % 2 + one_count(a / 2);\n}\n\nbool comp(int a, int b)\n{\n int c = one_count(a);\n int d = one_count(b);\n if (c == d) {\n return a < b;\n }\n return c < d;\n}\n\nclass Solution\n{\npublic:\n vector sortByBits(vector &arr)\n {\n sort(arr.begin(), arr.end());\n sort(arr.begin(), arr.end(), comp);\n return arr;\n }\n};", "number": "1356"}, "883": {"link": "https://leetcode.com/problems/projection-area-of-3d-shapes", "name": "Projection Area of 3D Shapes", "difficulty": "Easy", "statement": "

    On a N * N grid, we place some 1 * 1 * 1 cubes that are axis-aligned with the x, y, and z axes.

    \n\n

    Each value v = grid[i][j] represents a tower of v cubes placed on top of grid cell (i, j).

    \n\n

    Now we view the projection of these cubes onto the xy, yz, and zx planes.

    \n\n

    A projection is like a shadow, that maps our 3 dimensional figure to a 2 dimensional plane. 

    \n\n

    Here, we are viewing the \"shadow\" when looking at the cubes from the top, the front, and the side.

    \n\n

    Return the total area of all three projections.

    \n\n

     

    \n\n
    \n
      \n
    \n
    \n\n
    \n
    \n
      \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
      \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
      \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n

    Example 1:

    \n\n
    Input: [[2]]\nOutput: 5\n
    \n\n
    \n

    Example 2:

    \n\n
    Input: [[1,2],[3,4]]\nOutput: 17\nExplanation: \nHere are the three projections (\"shadows\") of the shape made with each axis-aligned plane.\n\"\"\n
    \n\n
    \n

    Example 3:

    \n\n
    Input: [[1,0],[0,2]]\nOutput: 8\n
    \n\n
    \n

    Example 4:

    \n\n
    Input: [[1,1,1],[1,0,1],[1,1,1]]\nOutput: 14\n
    \n\n
    \n

    Example 5:

    \n\n
    Input: [[2,2,2],[2,1,2],[2,2,2]]\nOutput: 21\n
    \n\n

     

    \n\n
    \n
    \n
    \n

    Note:

    \n\n
      \n\t
    • 1 <= grid.length = grid[0].length <= 50
    • \n\t
    • 0 <= grid[i][j] <= 50
    • \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int projectionArea(vector> &grid)\n {\n int n = grid.size();\n\n int top = 0;\n for (vector temp : grid)\n {\n for (int i : temp)\n {\n if (i)\n ++top;\n }\n }\n\n vector front;\n vector right;\n for (int i = 0; i < n; i++)\n {\n front.push_back(0);\n right.push_back(0);\n for (int j = 0; j < n; j++)\n {\n front[i] = max(front[i], grid[i][j]);\n right[i] = max(right[i], grid[j][i]);\n }\n }\n\n return top + accumulate(front.begin(), front.end(), 0) + accumulate(right.begin(), right.end(), 0);\n }\n};", "number": "883"}, "1207": {"link": "https://leetcode.com/problems/unique-number-of-occurrences", "name": "Unique Number of Occurrences", "difficulty": "Easy", "statement": "

    Given an array of integers arr, write a function that returns true if and only if the number of occurrences of each value in the array is unique.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: arr = [1,2,2,1,1,3]\nOutput: true\nExplanation: The value 1 has 3 occurrences, 2 has 2 and 3 has 1. No two values have the same number of occurrences.
    \n\n

    Example 2:

    \n\n
    Input: arr = [1,2]\nOutput: false\n
    \n\n

    Example 3:

    \n\n
    Input: arr = [-3,0,1,-3,1,1,1,-3,10,0]\nOutput: true\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= arr.length <= 1000
    • \n\t
    • -1000 <= arr[i] <= 1000
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n bool uniqueOccurrences(vector& arr) {\n\n vector count;\n for(int i = 0; i < 2001; i++) {\n count.push_back(0);\n }\n\n for (int i: arr)\n ++count[i+1000];\n\n sort(count.begin(), count.end());\n int n = count.size();\n \n for(int i = 0; i < n - 1; i++) {\n if (count[i] > 0 && count[i] == count[i+1]) return false;\n }\n return true;\n \n }\n};", "number": "1207"}, "929": {"link": "https://leetcode.com/problems/unique-email-addresses", "name": "Unique Email Addresses", "difficulty": "Easy", "statement": "

    Every email consists of a local name and a domain name, separated by the @ sign.

    \n\n

    For example, in alice@leetcode.comalice is the local name, and leetcode.com is the domain name.

    \n\n

    Besides lowercase letters, these emails may contain '.'s or '+'s.

    \n\n

    If you add periods ('.') between some characters in the local name part of an email address, mail sent there will be forwarded to the same address without dots in the local name.  For example, \"alice.z@leetcode.com\" and \"alicez@leetcode.com\" forward to the same email address.  (Note that this rule does not apply for domain names.)

    \n\n

    If you add a plus ('+') in the local name, everything after the first plus sign will be ignored. This allows certain emails to be filtered, for example m.y+name@email.com will be forwarded to my@email.com.  (Again, this rule does not apply for domain names.)

    \n\n

    It is possible to use both of these rules at the same time.

    \n\n

    Given a list of emails, we send one email to each address in the list.  How many different addresses actually receive mails? 

    \n\n

     

    \n\n
    \n

    Example 1:

    \n\n
    Input: [\"test.email+alex@leetcode.com\",\"test.e.mail+bob.cathy@leetcode.com\",\"testemail+david@lee.tcode.com\"]\nOutput: 2\nExplanation: \"testemail@leetcode.com\" and \"testemail@lee.tcode.com\" actually receive mails\n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    • 1 <= emails[i].length <= 100
    • \n\t
    • 1 <= emails.length <= 100
    • \n\t
    • Each emails[i] contains exactly one '@' character.
    • \n\t
    • All local and domain names are non-empty.
    • \n\t
    • Local names do not start with a '+' character.
    • \n
    \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int numUniqueEmails(vector &emails)\n {\n\n set track;\n for (string email : emails)\n {\n stringstream processed;\n int plusenc = 0;\n int atenc = 0;\n for(char ch: email) {\n if (ch == '.' && !atenc) continue;\n if (ch == '+') plusenc = 1;\n if (ch == '@') atenc = 1;\n if (plusenc && !atenc) continue;\n processed << ch;\n }\n\n track.insert(processed.str());\n }\n\n return track.size();\n }\n};", "number": "929"}, "1313": {"link": "https://leetcode.com/problems/decompress-run-length-encoded-list", "name": "Decompress Run-Length Encoded List", "difficulty": "Easy", "statement": "

    We are given a list nums of integers representing a list compressed with run-length encoding.

    \n\n

    Consider each adjacent pair of elements [freq, val] = [nums[2*i], nums[2*i+1]] (with i >= 0).  For each such pair, there are freq elements with value val concatenated in a sublist. Concatenate all the sublists from left to right to generate the decompressed list.

    \n\n

    Return the decompressed list.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: nums = [1,2,3,4]\nOutput: [2,4,4,4]\nExplanation: The first pair [1,2] means we have freq = 1 and val = 2 so we generate the array [2].\nThe second pair [3,4] means we have freq = 3 and val = 4 so we generate [4,4,4].\nAt the end the concatenation [2] + [4,4,4] is [2,4,4,4].\n
    \n\n

    Example 2:

    \n\n
    Input: nums = [1,1,2,3]\nOutput: [1,3,3]\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 2 <= nums.length <= 100
    • \n\t
    • nums.length % 2 == 0
    • \n\t
    • 1 <= nums[i] <= 100
    • \n
    \n
    ", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n vector decompressRLElist(vector& nums) {\n\n int n = nums.size();\n\n vector res;\n\n for (int i = 0; i < n / 2; i ++) {\n for(int j = 0; j < nums[2*i]; j ++) {\n res.push_back(nums[2*i + 1]);\n }\n }\n\n return res;\n \n }\n};", "number": "1313"}, "589": {"link": "https://leetcode.com/problems/n-ary-tree-preorder-traversal", "name": "N-ary Tree Preorder Traversal", "difficulty": "Easy", "statement": "

    Given an n-ary tree, return the preorder traversal of its nodes' values.

    \n\n

    Nary-Tree input serialization is represented in their level order traversal, each group of children is separated by the null value (See examples).

    \n\n

     

    \n\n

    Follow up:

    \n\n

    Recursive solution is trivial, could you do it iteratively?

    \n\n

     

    \n

    Example 1:

    \n\n

    \n\n
    Input: root = [1,null,3,2,4,null,5,6]\nOutput: [1,3,5,6,2,4]\n
    \n\n

    Example 2:

    \n\n

    \"\"

    \n\n
    Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]\nOutput: [1,2,3,6,7,11,14,4,8,12,5,9,13,10]\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • The height of the n-ary tree is less than or equal to 1000
    • \n\t
    • The total number of nodes is between [0, 10^4]
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Node {\npublic:\n int val;\n vector children;\n\n Node() {}\n\n Node(int _val) {\n val = _val;\n }\n\n Node(int _val, vector _children) {\n val = _val;\n children = _children;\n }\n};\n\nclass Solution {\npublic:\n vector preorder(Node* root) {\n\n vector res;\n if (!root) {\n return res;\n }\n\n reverse((root->children).begin(), (root->children).end());\n\n res.push_back(root->val);\n\n for (Node* node: root->children) {\n vector temp = preorder(node);\n res.insert(res.begin() + 1, temp.begin(), temp.end());\n }\n return res;\n }\n};", "number": "589"}, "942": {"link": "https://leetcode.com/problems/di-string-match", "name": "DI String Match", "difficulty": "Easy", "statement": "

    Given a string S that only contains \"I\" (increase) or \"D\" (decrease), let N = S.length.

    \n\n

    Return any permutation A of [0, 1, ..., N] such that for all i = 0, ..., N-1:

    \n\n
      \n\t
    • If S[i] == \"I\", then A[i] < A[i+1]
    • \n\t
    • If S[i] == \"D\", then A[i] > A[i+1]
    • \n
    \n\n

     

    \n\n

    Example 1:

    \n\n
    Input: \"IDID\"\nOutput: [0,4,1,3,2]\n
    \n\n
    \n

    Example 2:

    \n\n
    Input: \"III\"\nOutput: [0,1,2,3]\n
    \n\n
    \n

    Example 3:

    \n\n
    Input: \"DDI\"\nOutput: [3,2,0,1]
    \n
    \n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    1. 1 <= S.length <= 10000
    2. \n\t
    3. S only contains characters \"I\" or \"D\".
    4. \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n vector diStringMatch(string S) {\n\n vector res;\n\n int n = S.length();\n\n if (S[0] == 'I') res.push_back(0);\n else res.push_back(n);\n\n int ICount = count(S.begin(), S.end(), 'I');\n int DCount = n - ICount;\n\n int I, D;\n if (S[0] == 'I') {\n D = DCount;\n I = D+1;\n }\n else {\n D = DCount - 1;\n I = D+1;\n }\n\n for(char i: S) {\n if (i == 'I') res.push_back(I++);\n else res.push_back(D--);\n }\n\n return res;\n\n }\n};", "number": "942"}, "657": {"link": "https://leetcode.com/problems/robot-return-to-origin", "name": "Robot Return to Origin", "difficulty": "Easy", "statement": "

    There is a robot starting at position (0, 0), the origin, on a 2D plane. Given a sequence of its moves, judge if this robot ends up at (0, 0) after it completes its moves.

    \n\n

    The move sequence is represented by a string, and the character moves[i] represents its ith move. Valid moves are R (right), L (left), U (up), and D (down). If the robot returns to the origin after it finishes all of its moves, return true. Otherwise, return false.

    \n\n

    Note: The way that the robot is \"facing\" is irrelevant. \"R\" will always make the robot move to the right once, \"L\" will always make it move left, etc. Also, assume that the magnitude of the robot's movement is the same for each move.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: moves = \"UD\"\nOutput: true\nExplanation: The robot moves up once, and then down once. All moves have the same magnitude, so it ended up at the origin where it started. Therefore, we return true.\n
    \n\n

    Example 2:

    \n\n
    Input: moves = \"LL\"\nOutput: false\nExplanation: The robot moves left twice. It ends up two \"moves\" to the left of the origin. We return false because it is not at the origin at the end of its moves.\n
    \n\n

    Example 3:

    \n\n
    Input: moves = \"RRDD\"\nOutput: false\n
    \n\n

    Example 4:

    \n\n
    Input: moves = \"LDRRLRUULR\"\nOutput: false\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= moves.length <= 2 * 104
    • \n\t
    • moves only contains the characters 'U', 'D', 'L' and 'R'.
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n bool judgeCircle(string moves)\n {\n\n return count(moves.begin(), moves.end(), 'U') == count(moves.begin(), moves.end(), 'D') && count(moves.begin(), moves.end(), 'L') == count(moves.begin(), moves.end(), 'R');\n }\n};", "number": "657"}, "1431": {"link": "https://leetcode.com/problems/kids-with-the-greatest-number-of-candies", "name": "Kids With the Greatest Number of Candies", "difficulty": "Easy", "statement": "

    Given the array candies and the integer extraCandies, where candies[i] represents the number of candies that the ith kid has.

    \n\n

    For each kid check if there is a way to distribute extraCandies among the kids such that he or she can have the greatest number of candies among them. Notice that multiple kids can have the greatest number of candies.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: candies = [2,3,5,1,3], extraCandies = 3\nOutput: [true,true,true,false,true] \nExplanation: \nKid 1 has 2 candies and if he or she receives all extra candies (3) will have 5 candies --- the greatest number of candies among the kids. \nKid 2 has 3 candies and if he or she receives at least 2 extra candies will have the greatest number of candies among the kids. \nKid 3 has 5 candies and this is already the greatest number of candies among the kids. \nKid 4 has 1 candy and even if he or she receives all extra candies will only have 4 candies. \nKid 5 has 3 candies and if he or she receives at least 2 extra candies will have the greatest number of candies among the kids. \n
    \n\n

    Example 2:

    \n\n
    Input: candies = [4,2,1,1,2], extraCandies = 1\nOutput: [true,false,false,false,false] \nExplanation: There is only 1 extra candy, therefore only kid 1 will have the greatest number of candies among the kids regardless of who takes the extra candy.\n
    \n\n

    Example 3:

    \n\n
    Input: candies = [12,1,12], extraCandies = 10\nOutput: [true,false,true]\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 2 <= candies.length <= 100
    • \n\t
    • 1 <= candies[i] <= 100
    • \n\t
    • 1 <= extraCandies <= 50
    • \n
    ", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n vector kidsWithCandies(vector& candies, int extraCandies) {\n vector res;\n long int max = 0;\n for(int i = 0; i < candies.size(); i++) {\n max = max > candies[i] ? max : candies[i];\n }\n for(int i: candies) {\n res.push_back(i + extraCandies >= max);\n }\n \n return res;\n }\n};", "number": "1431"}, "1252": {"link": "https://leetcode.com/problems/cells-with-odd-values-in-a-matrix", "name": "Cells with Odd Values in a Matrix", "difficulty": "Easy", "statement": "

    Given n and m which are the dimensions of a matrix initialized by zeros and given an array indices where indices[i] = [ri, ci]. For each pair of [ri, ci] you have to increment all cells in row ri and column ci by 1.

    \n\n

    Return the number of cells with odd values in the matrix after applying the increment to all indices.

    \n\n

     

    \n

    Example 1:

    \n\"\"\n
    Input: n = 2, m = 3, indices = [[0,1],[1,1]]\nOutput: 6\nExplanation: Initial matrix = [[0,0,0],[0,0,0]].\nAfter applying first increment it becomes [[1,2,1],[0,1,0]].\nThe final matrix will be [[1,3,1],[1,3,1]] which contains 6 odd numbers.\n
    \n\n

    Example 2:

    \n\"\"\n
    Input: n = 2, m = 2, indices = [[1,1],[0,0]]\nOutput: 0\nExplanation: Final matrix = [[2,2],[2,2]]. There is no odd number in the final matrix.\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= n <= 50
    • \n\t
    • 1 <= m <= 50
    • \n\t
    • 1 <= indices.length <= 100
    • \n\t
    • 0 <= indices[i][0] < n
    • \n\t
    • 0 <= indices[i][1] < m
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int oddCells(int n, int m, vector> &indices)\n {\n\n int arr[n][m];\n\n for (int i = 0; i < n; i++)\n {\n fill_n(arr[i], m, 0);\n }\n\n for (vector i : indices)\n {\n int r = i[0];\n int c = i[1];\n\n for (int k = 0; k < m; k++)\n {\n ++arr[r][k];\n }\n\n for (int k = 0; k < n; k++)\n {\n ++arr[k][c];\n }\n }\n\n int count = 0;\n\n for(int i = 0; i < n; i++) {\n for(int j: arr[i]) {\n count += j%2;\n }\n }\n\n return count;\n }\n};", "number": "1252"}, "1588": {"link": "https://leetcode.com/problems/sum-of-all-odd-length-subarrays", "name": "Sum of All Odd Length Subarrays", "difficulty": "Easy", "statement": "

    Given an array of positive integers arr, calculate the sum of all possible odd-length subarrays.

    \n\n

    A subarray is a contiguous subsequence of the array.

    \n\n

    Return the sum of all odd-length subarrays of arr.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: arr = [1,4,2,5,3]\nOutput: 58\nExplanation: The odd-length subarrays of arr and their sums are:\n[1] = 1\n[4] = 4\n[2] = 2\n[5] = 5\n[3] = 3\n[1,4,2] = 7\n[4,2,5] = 11\n[2,5,3] = 10\n[1,4,2,5,3] = 15\nIf we add all these together we get 1 + 4 + 2 + 5 + 3 + 7 + 11 + 10 + 15 = 58
    \n\n

    Example 2:

    \n\n
    Input: arr = [1,2]\nOutput: 3\nExplanation: There are only 2 subarrays of odd length, [1] and [2]. Their sum is 3.
    \n\n

    Example 3:

    \n\n
    Input: arr = [10,11,12]\nOutput: 66\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= arr.length <= 100
    • \n\t
    • 1 <= arr[i] <= 1000
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int sumOddLengthSubarrays(vector &arr)\n {\n\n int n = arr.size();\n\n int sum = 0;\n\n for (int i = 0; i < n; i++)\n {\n for (int j = i; j < n; j += 2)\n {\n for(int k = i; k <= j; k++) {\n sum += arr[k];\n }\n }\n }\n\n return sum;\n }\n};", "number": "1588"}, "965": {"link": "https://leetcode.com/problems/univalued-binary-tree", "name": "Univalued Binary Tree", "difficulty": "Easy", "statement": "

    A binary tree is univalued if every node in the tree has the same value.

    \n\n

    Return true if and only if the given tree is univalued.

    \n\n

     

    \n\n

    Example 1:

    \n\"\"\n
    Input: [1,1,1,1,1,null,1]\nOutput: true\n
    \n\n
    \n

    Example 2:

    \n\"\"\n
    Input: [2,2,2,5,2]\nOutput: false\n
    \n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    1. The number of nodes in the given tree will be in the range [1, 100].
    2. \n\t
    3. Each node's value will be an integer in the range [0, 99].
    4. \n
    \n
    ", "language": "c", "solution": "\nstruct TreeNode\n{\n int val;\n struct TreeNode *left;\n struct TreeNode *right;\n};\n\nbool isUnivalTree(struct TreeNode *root)\n{\n if(!root) return true;\n if(root->left) {\n if (root->left->val != root->val) return false;\n if (!isUnivalTree(root->left)) return false;\n }\n if(root->right) {\n if (root->right->val != root->val) return false;\n if (!isUnivalTree(root->right)) return false;\n }\n\n return true;\n\n}", "number": "965"}, "1342": {"link": "https://leetcode.com/problems/number-of-steps-to-reduce-a-number-to-zero", "name": "Number of Steps to Reduce a Number to Zero", "difficulty": "Easy", "statement": "

    Given a non-negative integer num, return the number of steps to reduce it to zero. If the current number is even, you have to divide it by 2, otherwise, you have to subtract 1 from it.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: num = 14\nOutput: 6\nExplanation: \nStep 1) 14 is even; divide by 2 and obtain 7. \nStep 2) 7 is odd; subtract 1 and obtain 6.\nStep 3) 6 is even; divide by 2 and obtain 3. \nStep 4) 3 is odd; subtract 1 and obtain 2. \nStep 5) 2 is even; divide by 2 and obtain 1. \nStep 6) 1 is odd; subtract 1 and obtain 0.\n
    \n\n

    Example 2:

    \n\n
    Input: num = 8\nOutput: 4\nExplanation: \nStep 1) 8 is even; divide by 2 and obtain 4. \nStep 2) 4 is even; divide by 2 and obtain 2. \nStep 3) 2 is even; divide by 2 and obtain 1. \nStep 4) 1 is odd; subtract 1 and obtain 0.\n
    \n\n

    Example 3:

    \n\n
    Input: num = 123\nOutput: 12\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 0 <= num <= 10^6
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int numberOfSteps(int num)\n {\n int count = 0;\n\n while (num != 0)\n {\n count++;\n if (num % 2 == 0)\n {\n num /= 2;\n }\n else {\n num -= 1;\n }\n }\n\n return count;\n }\n};", "number": "1342"}, "1108": {"link": "https://leetcode.com/problems/defanging-an-ip-address", "name": "Defanging an IP Address", "difficulty": "Easy", "statement": "

    Given a valid (IPv4) IP address, return a defanged version of that IP address.

    \n\n

    A defanged IP address replaces every period \".\" with \"[.]\".

    \n\n

     

    \n

    Example 1:

    \n
    Input: address = \"1.1.1.1\"\nOutput: \"1[.]1[.]1[.]1\"\n

    Example 2:

    \n
    Input: address = \"255.100.50.0\"\nOutput: \"255[.]100[.]50[.]0\"\n
    \n

     

    \n

    Constraints:

    \n\n
      \n\t
    • The given address is a valid IPv4 address.
    • \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n string defangIPaddr(string address)\n {\n\n int a, b, c, d;\n\n char arr[address.length() + 1];\n\n strcpy(arr, address.c_str());\n\n sscanf(arr, \"%d.%d.%d.%d\", &a, &b, &c, &d);\n\n char res_arr[address.length() + 1 + 10];\n\n sprintf(res_arr, \"%d[.]%d[.]%d[.]%d\", a, b, c, d);\n\n string res(res_arr);\n\n return res;\n }\n};", "number": "1108"}, "700": {"link": "https://leetcode.com/problems/search-in-a-binary-search-tree", "name": "Search in a Binary Search Tree", "difficulty": "Easy", "statement": "

    Given the root node of a binary search tree (BST) and a value. You need to find the node in the BST that the node's value equals the given value. Return the subtree rooted with that node. If such node doesn't exist, you should return NULL.

    \n\n

    For example, 

    \n\n
    Given the tree:\n        4\n       / \\\n      2   7\n     / \\\n    1   3\n\nAnd the value to search: 2\n
    \n\n

    You should return this subtree:

    \n\n
          2     \n     / \\   \n    1   3\n
    \n\n

    In the example above, if we want to search the value 5, since there is no node with value 5, we should return NULL.

    \n\n

    Note that an empty tree is represented by NULL, therefore you would see the expected output (serialized tree format) as [], not null.

    \n
    ", "language": "c", "solution": "#include \n#include \n\nstruct TreeNode\n{\n int val;\n struct TreeNode *left;\n struct TreeNode *right;\n};\n\nstruct TreeNode *searchBST(struct TreeNode *root, int val)\n{\n if (!root)\n return NULL;\n\n if (root->val == val)\n return root;\n\n struct TreeNode *left = searchBST(root->left, val);\n if (left)\n return left;\n\n struct TreeNode *right = searchBST(root->right, val);\n if (right)\n return right;\n\n return NULL;\n}", "number": "700"}, "1290": {"link": "https://leetcode.com/problems/convert-binary-number-in-a-linked-list-to-integer", "name": "Convert Binary Number in a Linked List to Integer", "difficulty": "Easy", "statement": "

    Given head which is a reference node to a singly-linked list. The value of each node in the linked list is either 0 or 1. The linked list holds the binary representation of a number.

    \n\n

    Return the decimal value of the number in the linked list.

    \n\n

     

    \n

    Example 1:

    \n\"\"\n
    Input: head = [1,0,1]\nOutput: 5\nExplanation: (101) in base 2 = (5) in base 10\n
    \n\n

    Example 2:

    \n\n
    Input: head = [0]\nOutput: 0\n
    \n\n

    Example 3:

    \n\n
    Input: head = [1]\nOutput: 1\n
    \n\n

    Example 4:

    \n\n
    Input: head = [1,0,0,1,0,0,1,1,1,0,0,0,0,0,0]\nOutput: 18880\n
    \n\n

    Example 5:

    \n\n
    Input: head = [0,0]\nOutput: 0\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • The Linked List is not empty.
    • \n\t
    • Number of nodes will not exceed 30.
    • \n\t
    • Each node's value is either 0 or 1.
    • \n
    ", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n int getDecimalValue(ListNode* head) {\n\n int res = 0;\n\n while(head) {\n res = res*2 + head->val;\n head = head->next;\n }\n\n return res;\n \n }\n};", "number": "1290"}, "977": {"link": "https://leetcode.com/problems/squares-of-a-sorted-array", "name": "Squares of a Sorted Array", "difficulty": "Easy", "statement": "

    Given an array of integers A sorted in non-decreasing order, return an array of the squares of each number, also in sorted non-decreasing order.

    \n\n

     

    \n\n
    \n

    Example 1:

    \n\n
    Input: [-4,-1,0,3,10]\nOutput: [0,1,9,16,100]\n
    \n\n
    \n

    Example 2:

    \n\n
    Input: [-7,-3,2,3,11]\nOutput: [4,9,9,49,121]\n
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    1. 1 <= A.length <= 10000
    2. \n\t
    3. -10000 <= A[i] <= 10000
    4. \n\t
    5. A is sorted in non-decreasing order.
    6. \n
    \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n vector sortedSquares(vector& A) {\n\n vector res;\n\n for(int i: A) res.push_back(i*i);\n\n sort(res.begin(), res.end());\n\n return res;\n \n }\n};", "number": "977"}, "509": {"link": "https://leetcode.com/problems/fibonacci-number", "name": "Fibonacci Number", "difficulty": "Easy", "statement": "

    The Fibonacci numbers, commonly denoted F(n) form a sequence, called the Fibonacci sequence, such that each number is the sum of the two preceding ones, starting from 0 and 1. That is,

    \n\n
    F(0) = 0,   F(1) = 1\nF(N) = F(N - 1) + F(N - 2), for N > 1.\n
    \n\n

    Given N, calculate F(N).

    \n\n

     

    \n\n

    Example 1:

    \n\n
    Input: 2\nOutput: 1\nExplanation: F(2) = F(1) + F(0) = 1 + 0 = 1.\n
    \n\n

    Example 2:

    \n\n
    Input: 3\nOutput: 2\nExplanation: F(3) = F(2) + F(1) = 1 + 1 = 2.\n
    \n\n

    Example 3:

    \n\n
    Input: 4\nOutput: 3\nExplanation: F(4) = F(3) + F(2) = 2 + 1 = 3.\n
    \n\n

     

    \n\n

    Note:

    \n\n

    0 \u2264 N \u2264 30.

    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int fib(int N)\n {\n int *arr = (int *)malloc(sizeof(int) * N + 1);\n\n int n = N;\n if (n == 0) return 0;\n if (n == 1) return 1;\n\n arr[0] = 0;\n arr[1] = 1;\n\n for(int i = 2; i <= N; i++)\n arr[i] = arr[i-1] + arr[i-2];\n\n return arr[N];\n\n }\n};", "number": "509"}, "1337": {"link": "https://leetcode.com/problems/the-k-weakest-rows-in-a-matrix", "name": "The K Weakest Rows in a Matrix", "difficulty": "Easy", "statement": "

    Given a m * n matrix mat of ones (representing soldiers) and zeros (representing civilians), return the indexes of the k weakest rows in the matrix ordered from the weakest to the strongest.

    \n\n

    A row i is weaker than row j, if the number of soldiers in row i is less than the number of soldiers in row j, or they have the same number of soldiers but i is less than j. Soldiers are always stand in the frontier of a row, that is, always ones may appear first and then zeros.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: mat = \n[[1,1,0,0,0],\n [1,1,1,1,0],\n [1,0,0,0,0],\n [1,1,0,0,0],\n [1,1,1,1,1]], \nk = 3\nOutput: [2,0,3]\nExplanation: \nThe number of soldiers for each row is: \nrow 0 -> 2 \nrow 1 -> 4 \nrow 2 -> 1 \nrow 3 -> 2 \nrow 4 -> 5 \nRows ordered from the weakest to the strongest are [2,0,3,1,4]\n
    \n\n

    Example 2:

    \n\n
    Input: mat = \n[[1,0,0,0],\n [1,1,1,1],\n [1,0,0,0],\n [1,0,0,0]], \nk = 2\nOutput: [0,2]\nExplanation: \nThe number of soldiers for each row is: \nrow 0 -> 1 \nrow 1 -> 4 \nrow 2 -> 1 \nrow 3 -> 1 \nRows ordered from the weakest to the strongest are [0,2,3,1]\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • m == mat.length
    • \n\t
    • n == mat[i].length
    • \n\t
    • 2 <= n, m <= 100
    • \n\t
    • 1 <= k <= m
    • \n\t
    • matrix[i][j] is either 0 or 1.
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n vector kWeakestRows(vector> &mat, int k)\n {\n\n int m = mat.size();\n int n = mat[0].size();\n\n int *arr = (int *)malloc(sizeof(int) * m);\n fill_n(arr, m, 0);\n\n vector output;\n output.reserve(k);\n\n int done = 0;\n\n for (int i = 0; i < n && done < k; i++)\n {\n for (int j = 0; j < m && done < k; j++)\n {\n if (!(mat[j][i] || arr[j]))\n {\n output.push_back(j);\n arr[j] = 1;\n ++done;\n }\n }\n }\n\n if (done != k) {\n for(int i = 0; i < m && done < k; i++) {\n if (!arr[i]) {\n ++done;\n output.push_back(i);\n }\n }\n }\n\n\n return output;\n }\n};", "number": "1337"}, "1603": {"link": "https://leetcode.com/problems/design-parking-system", "name": "Design Parking System", "difficulty": "Easy", "statement": "

    Design a parking system for a parking lot. The parking lot has three kinds of parking spaces: big, medium, and small, with a fixed number of slots for each size.

    \n\n

    Implement the ParkingSystem class:

    \n\n
      \n\t
    • ParkingSystem(int big, int medium, int small) Initializes object of the ParkingSystem class. The number of slots for each parking space are given as part of the constructor.
    • \n\t
    • bool addCar(int carType) Checks whether there is a parking space of carType for the car that wants to get into the parking lot. carType can be of three kinds: big, medium, or small, which are represented by 1, 2, and 3 respectively. A car can only park in a parking space of its carType. If there is no space available, return false, else park the car in that size space and return true.
    • \n
    \n\n

     

    \n

    Example 1:

    \n\n
    Input\n[\"ParkingSystem\", \"addCar\", \"addCar\", \"addCar\", \"addCar\"]\n[[1, 1, 0], [1], [2], [3], [1]]\nOutput\n[null, true, true, false, false]\n\nExplanation\nParkingSystem parkingSystem = new ParkingSystem(1, 1, 0);\nparkingSystem.addCar(1); // return true because there is 1 available slot for a big car\nparkingSystem.addCar(2); // return true because there is 1 available slot for a medium car\nparkingSystem.addCar(3); // return false because there is no available slot for a small car\nparkingSystem.addCar(1); // return false because there is no available slot for a big car. It is already occupied.\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 0 <= big, medium, small <= 1000
    • \n\t
    • carType is 1, 2, or 3
    • \n\t
    • At most 1000 calls will be made to addCar
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass ParkingSystem\n{\npublic:\n int b, s, m;\n int c_big, c_small, c_medium;\n\n ParkingSystem(int big, int medium, int small)\n {\n b = 0;\n s = 0;\n m = 0;\n c_big = big;\n c_medium = medium;\n c_small = small;\n }\n\n bool addCar(int carType)\n {\n switch (carType)\n {\n case 3:\n if (s < c_small)\n {\n ++s;\n cout << s;\n return true;\n }\n return false;\n break;\n case 2:\n if (m < c_medium)\n {\n ++m;\n cout << m;\n return true;\n }\n return false;\n break;\n case 1:\n if (b < c_big)\n {\n cout << b;\n ++b;\n return true;\n }\n return false;\n break;\n default:\n break;\n }\n return false;\n }\n};", "number": "1603"}, "1572": {"link": "https://leetcode.com/problems/matrix-diagonal-sum", "name": "Matrix Diagonal Sum", "difficulty": "Easy", "statement": "

    Given a square matrix mat, return the sum of the matrix diagonals.

    \n\n

    Only include the sum of all the elements on the primary diagonal and all the elements on the secondary diagonal that are not part of the primary diagonal.

    \n\n

     

    \n

    Example 1:

    \n\"\"\n
    Input: mat = [[1,2,3],\n              [4,5,6],\n              [7,8,9]]\nOutput: 25\nExplanation: Diagonals sum: 1 + 5 + 9 + 3 + 7 = 25\nNotice that element mat[1][1] = 5 is counted only once.\n
    \n\n

    Example 2:

    \n\n
    Input: mat = [[1,1,1,1],\n              [1,1,1,1],\n              [1,1,1,1],\n              [1,1,1,1]]\nOutput: 8\n
    \n\n

    Example 3:

    \n\n
    Input: mat = [[5]]\nOutput: 5\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • n == mat.length == mat[i].length
    • \n\t
    • 1 <= n <= 100
    • \n\t
    • 1 <= mat[i][j] <= 100
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int diagonalSum(vector> &mat)\n {\n\n int n = mat.size();\n int sum = 0;\n for (int i = 0; i < n; i++)\n {\n sum += mat[i][i];\n if (i != n-i-1) sum += mat[i][n-i-1];\n }\n return sum;\n }\n};", "number": "1572"}, "933": {"link": "https://leetcode.com/problems/number-of-recent-calls", "name": "Number of Recent Calls", "difficulty": "Easy", "statement": "

    Write a class RecentCounter to count recent requests.

    \n\n

    It has only one method: ping(int t), where t represents some time in milliseconds.

    \n\n

    Return the number of pings that have been made from 3000 milliseconds ago until now.

    \n\n

    Any ping with time in [t - 3000, t] will count, including the current ping.

    \n\n

    It is guaranteed that every call to ping uses a strictly larger value of t than before.

    \n\n

     

    \n\n

    Example 1:

    \n\n
    Input: inputs = [\"RecentCounter\",\"ping\",\"ping\",\"ping\",\"ping\"], inputs = [[],[1],[100],[3001],[3002]]\nOutput: [null,1,2,3,3]
    \n\n

     

    \n\n

    Note:

    \n\n
      \n\t
    1. Each test case will have at most 10000 calls to ping.
    2. \n\t
    3. Each test case will call ping with strictly increasing values of t.
    4. \n\t
    5. Each call to ping will have 1 <= t <= 10^9.
    6. \n
    \n\n
    \n

     

    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass RecentCounter\n{\n\npublic:\n vector pings;\n int size;\n int lastIndex;\n\n RecentCounter()\n {\n this->lastIndex = 0;\n this->size = 0;\n }\n\n int ping(int t)\n {\n this->pings.push_back(t);\n ++this->size;\n for (; this->lastIndex < this->size && this->pings[this->lastIndex] < t - 3000; ++this->lastIndex)\n ;\n return this->size - this->lastIndex;\n }\n};", "number": "933"}, "1266": {"link": "https://leetcode.com/problems/minimum-time-visiting-all-points", "name": "Minimum Time Visiting All Points", "difficulty": "Easy", "statement": "

    On a plane there are n points with integer coordinates points[i] = [xi, yi]. Your task is to find the minimum time in seconds to visit all points.

    \n\n

    You can move according to the next rules:

    \n\n
      \n\t
    • In one second always you can either move vertically, horizontally by one unit or diagonally (it means to move one unit vertically and one unit horizontally in one second).
    • \n\t
    • You have to visit the points in the same order as they appear in the array.
    • \n
    \n\n

     

    \n

    Example 1:

    \n\"\"\n
    Input: points = [[1,1],[3,4],[-1,0]]\nOutput: 7\nExplanation: One optimal path is [1,1] -> [2,2] -> [3,3] -> [3,4] -> [2,3] -> [1,2] -> [0,1] -> [-1,0]   \nTime from [1,1] to [3,4] = 3 seconds \nTime from [3,4] to [-1,0] = 4 seconds\nTotal time = 7 seconds
    \n\n

    Example 2:

    \n\n
    Input: points = [[3,2],[-2,2]]\nOutput: 5\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • points.length == n
    • \n\t
    • 1 <= n <= 100
    • \n\t
    • points[i].length == 2
    • \n\t
    • -1000 <= points[i][0], points[i][1] <= 1000
    • \n
    \n
    ", "language": "cpp", "solution": "#include\n#include\n\nusing namespace std;\n\nclass Solution {\npublic:\n int minTimeToVisitAllPoints(vector>& points) {\n\n int cost = 0;\n int n = points.size();\n\n for(int i = 0; i < n - 1; i++) {\n\n vector a = points[i];\n vector b = points[i+1];\n\n cost += max(abs(a[0]-b[0]), abs(a[1]-b[1]));\n\n cout << cost << endl;\n\n }\n return cost;\n \n }\n};", "number": "1266"}, "1051": {"link": "https://leetcode.com/problems/height-checker", "name": "Height Checker", "difficulty": "Easy", "statement": "

    Students are asked to stand in non-decreasing order of heights for an annual photo.

    \n\n

    Return the minimum number of students that must move in order for all students to be standing in non-decreasing order of height.

    \n\n

    Notice that when a group of students is selected they can reorder in any possible way between themselves and the non selected students remain on their seats.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: heights = [1,1,4,2,1,3]\nOutput: 3\nExplanation: \nCurrent array : [1,1,4,2,1,3]\nTarget array  : [1,1,1,2,3,4]\nOn index 2 (0-based) we have 4 vs 1 so we have to move this student.\nOn index 4 (0-based) we have 1 vs 3 so we have to move this student.\nOn index 5 (0-based) we have 3 vs 4 so we have to move this student.\n
    \n\n

    Example 2:

    \n\n
    Input: heights = [5,1,2,3,4]\nOutput: 5\n
    \n\n

    Example 3:

    \n\n
    Input: heights = [1,2,3,4,5]\nOutput: 0\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= heights.length <= 100
    • \n\t
    • 1 <= heights[i] <= 100
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int heightChecker(vector &heights)\n {\n\n vector dup = heights;\n sort(dup.begin(), dup.end());\n int count = 0;\n int n = heights.size();\n for (int i = 0; i < n; i++)\n {\n if (dup[i] != heights[i])\n ++count;\n }\n\n return count;\n }\n};", "number": "1051"}, "344": {"link": "https://leetcode.com/problems/reverse-string", "name": "Reverse String", "difficulty": "Easy", "statement": "

    Write a function that reverses a string. The input string is given as an array of characters char[].

    \n\n

    Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.

    \n\n

    You may assume all the characters consist of printable ascii characters.

    \n\n

     

    \n\n
    \n

    Example 1:

    \n\n
    Input: [\"h\",\"e\",\"l\",\"l\",\"o\"]\nOutput: [\"o\",\"l\",\"l\",\"e\",\"h\"]\n
    \n\n
    \n

    Example 2:

    \n\n
    Input: [\"H\",\"a\",\"n\",\"n\",\"a\",\"h\"]\nOutput: [\"h\",\"a\",\"n\",\"n\",\"a\",\"H\"]\n
    \n
    \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n void reverseString(vector &s)\n {\n int n = s.size();\n for(int i = 0; i < n / 2; i++) {\n int temp = s[i];\n s[i] = s[n - i - 1];\n s[n - i - 1] = temp;\n }\n }\n};", "number": "344"}, "1480": {"link": "https://leetcode.com/problems/running-sum-of-1d-array", "name": "Running Sum of 1d Array", "difficulty": "Easy", "statement": "

    Given an array nums. We define a running sum of an array as runningSum[i] = sum(nums[0]\u2026nums[i]).

    \n\n

    Return the running sum of nums.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: nums = [1,2,3,4]\nOutput: [1,3,6,10]\nExplanation: Running sum is obtained as follows: [1, 1+2, 1+2+3, 1+2+3+4].
    \n\n

    Example 2:

    \n\n
    Input: nums = [1,1,1,1,1]\nOutput: [1,2,3,4,5]\nExplanation: Running sum is obtained as follows: [1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1].
    \n\n

    Example 3:

    \n\n
    Input: nums = [3,1,2,10,1]\nOutput: [3,4,6,16,17]\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= nums.length <= 1000
    • \n\t
    • -10^6 <= nums[i] <= 10^6
    • \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n vector runningSum(vector &nums)\n {\n\n vector res;\n\n res.push_back(nums[0]);\n\n int sum = res[0];\n\n for (int i = 1; i < nums.size(); i++)\n {\n sum += nums[i];\n res.push_back(sum);\n }\n\n return res;\n }\n};", "number": "1480"}, "1021": {"link": "https://leetcode.com/problems/remove-outermost-parentheses", "name": "Remove Outermost Parentheses", "difficulty": "Easy", "statement": "

    A valid parentheses string is either empty (\"\"), \"(\" + A + \")\", or A + B, where A and B are valid parentheses strings, and + represents string concatenation.  For example, \"\", \"()\", \"(())()\", and \"(()(()))\" are all valid parentheses strings.

    \n\n

    A valid parentheses string S is primitive if it is nonempty, and there does not exist a way to split it into S = A+B, with A and B nonempty valid parentheses strings.

    \n\n

    Given a valid parentheses string S, consider its primitive decomposition: S = P_1 + P_2 + ... + P_k, where P_i are primitive valid parentheses strings.

    \n\n

    Return S after removing the outermost parentheses of every primitive string in the primitive decomposition of S.

    \n\n

     

    \n\n

    Example 1:

    \n\n
    Input: \"(()())(())\"\nOutput: \"()()()\"\nExplanation: \nThe input string is \"(()())(())\", with primitive decomposition \"(()())\" + \"(())\".\nAfter removing outer parentheses of each part, this is \"()()\" + \"()\" = \"()()()\".\n
    \n\n
    \n

    Example 2:

    \n\n
    Input: \"(()())(())(()(()))\"\nOutput: \"()()()()(())\"\nExplanation: \nThe input string is \"(()())(())(()(()))\", with primitive decomposition \"(()())\" + \"(())\" + \"(()(()))\".\nAfter removing outer parentheses of each part, this is \"()()\" + \"()\" + \"()(())\" = \"()()()()(())\".\n
    \n\n
    \n

    Example 3:

    \n\n
    Input: \"()()\"\nOutput: \"\"\nExplanation: \nThe input string is \"()()\", with primitive decomposition \"()\" + \"()\".\nAfter removing outer parentheses of each part, this is \"\" + \"\" = \"\".\n
    \n\n

     

    \n
    \n
    \n\n

    Note:

    \n\n
      \n\t
    1. S.length <= 10000
    2. \n\t
    3. S[i] is \"(\" or \")\"
    4. \n\t
    5. S is a valid parentheses string
    6. \n
    \n\n
    \n
    \n
     
    \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n string removeOuterParentheses(string S)\n {\n\n int n = S.length();\n char res[n];\n\n fill_n(res, n, '\\0');\n\n int pos = 0;\n int diff = 0;\n for (char i : S)\n {\n\n if (i == '(')\n {\n if (diff)\n {\n res[pos] = '(';\n ++pos;\n }\n ++diff;\n }\n else\n {\n --diff;\n if (diff)\n {\n res[pos] = ')';\n ++pos;\n }\n }\n }\n\n string r(res);\n\n return r;\n }\n};", "number": "1021"}, "1022": {"link": "https://leetcode.com/problems/sum-of-root-to-leaf-binary-numbers", "name": "Sum of Root To Leaf Binary Numbers", "difficulty": "Easy", "statement": "

    You are given the root of a binary tree where each node has a value 0 or 1.  Each root-to-leaf path represents a binary number starting with the most significant bit.  For example, if the path is 0 -> 1 -> 1 -> 0 -> 1, then this could represent 01101 in binary, which is 13.

    \n\n

    For all leaves in the tree, consider the numbers represented by the path from the root to that leaf.

    \n\n

    Return the sum of these numbers. The answer is guaranteed to fit in a 32-bits integer.

    \n\n

     

    \n

    Example 1:

    \n\"\"\n
    Input: root = [1,0,1,0,1,0,1]\nOutput: 22\nExplanation: (100) + (101) + (110) + (111) = 4 + 5 + 6 + 7 = 22\n
    \n\n

    Example 2:

    \n\n
    Input: root = [0]\nOutput: 0\n
    \n\n

    Example 3:

    \n\n
    Input: root = [1]\nOutput: 1\n
    \n\n

    Example 4:

    \n\n
    Input: root = [1,1]\nOutput: 3\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • The number of nodes in the tree is in the range [1, 1000].
    • \n\t
    • Node.val is 0 or 1.
    • \n
    \n
    ", "language": "c", "solution": "#include \n\nstruct TreeNode\n{\n int val;\n struct TreeNode *left;\n struct TreeNode *right;\n};\n\nint sumRootToLeaf(struct TreeNode *root)\n{\n return findSum(root, 0);\n}\n\nint findSum(struct TreeNode *root, int prevSum) {\n\n int sum = 0;\n\n if (root->left)\n sum += findSum(root->left, 2*prevSum + root->val);\n if (root->right)\n sum += findSum(root->right, 2*prevSum + root->val);\n\n if (!root->left && !root->right)\n return prevSum*2 + root->val;\n return sum;\n\n}", "number": "1022"}, "1295": {"link": "https://leetcode.com/problems/find-numbers-with-even-number-of-digits", "name": "Find Numbers with Even Number of Digits", "difficulty": "Easy", "statement": "
    Given an array nums of integers, return how many of them contain an even number of digits.\n

     

    \n

    Example 1:

    \n\n
    Input: nums = [12,345,2,6,7896]\nOutput: 2\nExplanation: \n12 contains 2 digits (even number of digits). \n345 contains 3 digits (odd number of digits). \n2 contains 1 digit (odd number of digits). \n6 contains 1 digit (odd number of digits). \n7896 contains 4 digits (even number of digits). \nTherefore only 12 and 7896 contain an even number of digits.\n
    \n\n

    Example 2:

    \n\n
    Input: nums = [555,901,482,1771]\nOutput: 1 \nExplanation: \nOnly 1771 contains an even number of digits.\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= nums.length <= 500
    • \n\t
    • 1 <= nums[i] <= 10^5
    • \n
    \n
    ", "language": "cpp", "solution": "#include\n#include\n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n int findNumbers(vector& nums) {\n\n int count = 0;\n for (int i: nums) {\n if ((int)ceil(log10(i+1)) % 2 == 0)\n count ++;\n }\n\n return count;\n \n }\n};", "number": "1295"}, "1380": {"link": "https://leetcode.com/problems/lucky-numbers-in-a-matrix", "name": "Lucky Numbers in a Matrix", "difficulty": "Easy", "statement": "

    Given a m * n matrix of distinct numbers, return all lucky numbers in the matrix in any order.

    \n\n

    A lucky number is an element of the matrix such that it is the minimum element in its row and maximum in its column.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: matrix = [[3,7,8],[9,11,13],[15,16,17]]\nOutput: [15]\nExplanation: 15 is the only lucky number since it is the minimum in its row and the maximum in its column\n
    \n\n

    Example 2:

    \n\n
    Input: matrix = [[1,10,4,2],[9,3,8,7],[15,16,17,12]]\nOutput: [12]\nExplanation: 12 is the only lucky number since it is the minimum in its row and the maximum in its column.\n
    \n\n

    Example 3:

    \n\n
    Input: matrix = [[7,8],[1,2]]\nOutput: [7]\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • m == mat.length
    • \n\t
    • n == mat[i].length
    • \n\t
    • 1 <= n, m <= 50
    • \n\t
    • 1 <= matrix[i][j] <= 10^5.
    • \n\t
    • All elements in the matrix are distinct.
    • \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n vector luckyNumbers(vector> &matrix)\n {\n\n int m = matrix.size();\n int n = matrix[0].size();\n\n int min_row[m];\n int max_col[n];\n\n fill_n(min_row, m, 1000000);\n fill_n(max_col, n, 0);\n\n for (int i = 0; i < m; i++)\n for (int j = 0; j < n; j++)\n {\n min_row[i] = min_row[i] < matrix[i][j] ? min_row[i] : matrix[i][j];\n max_col[j] = max_col[j] > matrix[i][j] ? max_col[j] : matrix[i][j];\n }\n\n vector res;\n\n for (int i = 0; i < m; i++)\n for (int j = 0; j < n; j++)\n if (min_row[i] == matrix[i][j] && max_col[j] == matrix[i][j])\n res.push_back(matrix[i][j]);\n \n return res;\n }\n};", "number": "1380"}, "461": {"link": "https://leetcode.com/problems/hamming-distance", "name": "Hamming Distance", "difficulty": "Easy", "statement": "

    The Hamming distance between two integers is the number of positions at which the corresponding bits are different.

    \n\n

    Given two integers x and y, calculate the Hamming distance.

    \n\n

    Note:
    \n0 \u2264 x, y < 231.\n

    \n\n

    Example:\n

    Input: x = 1, y = 4\n\nOutput: 2\n\nExplanation:\n1   (0 0 0 1)\n4   (0 1 0 0)\n       \u2191   \u2191\n\nThe above arrows point to positions where the corresponding bits are different.\n
    \n

    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n int hammingDistance(int x, int y) {\n\n int count = 0;\n while (x || y) {\n if (x % 2 != y % 2) count ++;\n x /= 2; y/= 2;\n }\n\n return count;\n \n }\n};", "number": "461"}, "728": {"link": "https://leetcode.com/problems/self-dividing-numbers", "name": "Self Dividing Numbers", "difficulty": "Easy", "statement": "

    \nA self-dividing number is a number that is divisible by every digit it contains.\n

    \nFor example, 128 is a self-dividing number because 128 % 1 == 0, 128 % 2 == 0, and 128 % 8 == 0.\n

    \nAlso, a self-dividing number is not allowed to contain the digit zero.\n

    \nGiven a lower and upper number bound, output a list of every possible self dividing number, including the bounds if possible.\n

    \n

    Example 1:
    \n

    Input: \nleft = 1, right = 22\nOutput: [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]\n
    \n

    \n\n

    Note:\n

  • The boundaries of each input argument are 1 <= left <= right <= 10000.
  • \n

    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution {\npublic:\n vector selfDividingNumbers(int left, int right) {\n\n vector res;\n for(int i = left; i <= right; i++) {\n\n int isValid = 1;\n int num = i;\n while (num) {\n int rem = num % 10;\n if (rem == 0 || i % rem != 0) isValid = 0;\n num /= 10;\n }\n\n if (isValid) res.push_back(i);\n\n }\n\n return res;\n \n }\n};", "number": "728"}, "804": {"link": "https://leetcode.com/problems/unique-morse-code-words", "name": "Unique Morse Code Words", "difficulty": "Easy", "statement": "

    International Morse Code defines a standard encoding where each letter is mapped to a series of dots and dashes, as follows: \"a\" maps to \".-\", \"b\" maps to \"-...\", \"c\" maps to \"-.-.\", and so on.

    \n\n

    For convenience, the full table for the 26 letters of the English alphabet is given below:

    \n\n
    [\".-\",\"-...\",\"-.-.\",\"-..\",\".\",\"..-.\",\"--.\",\"....\",\"..\",\".---\",\"-.-\",\".-..\",\"--\",\"-.\",\"---\",\".--.\",\"--.-\",\".-.\",\"...\",\"-\",\"..-\",\"...-\",\".--\",\"-..-\",\"-.--\",\"--..\"]
    \n\n

    Now, given a list of words, each word can be written as a concatenation of the Morse code of each letter. For example, \"cab\" can be written as \"-.-..--...\", (which is the concatenation \"-.-.\" + \".-\" + \"-...\"). We'll call such a concatenation, the transformation of a word.

    \n\n

    Return the number of different transformations among all words we have.

    \n\n
    Example:\nInput: words = [\"gin\", \"zen\", \"gig\", \"msg\"]\nOutput: 2\nExplanation: \nThe transformation of each word is:\n\"gin\" -> \"--...-.\"\n\"zen\" -> \"--...-.\"\n\"gig\" -> \"--...--.\"\n\"msg\" -> \"--...--.\"\n\nThere are 2 different transformations, \"--...-.\" and \"--...--.\".\n
    \n\n

    Note:

    \n\n
      \n\t
    • The length of words will be at most 100.
    • \n\t
    • Each words[i] will have length in range [1, 12].
    • \n\t
    • words[i] will only consist of lowercase letters.
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int uniqueMorseRepresentations(vector &words)\n {\n\n vector codes;\n int n = words.size();\n\n string mapping[26] = {\".-\", \"-...\", \"-.-.\", \"-..\", \".\", \"..-.\", \"--.\", \"....\", \"..\", \".---\", \"-.-\", \".-..\", \"--\", \"-.\", \"---\", \".--.\", \"--.-\", \".-.\", \"...\", \"-\", \"..-\", \"...-\", \".--\", \"-..-\", \"-.--\", \"--..\"};\n\n for (string word : words)\n {\n\n stringstream r;\n\n for (char c : word)\n {\n r << mapping[(int)(c)-97];\n }\n\n string res = r.str();\n codes.push_back(res);\n }\n\n sort(codes.begin(), codes.end());\n\n int count = n > 0 ? 1 : 0;\n\n for (int i = 1; i < n; i++)\n {\n if (codes[i].compare(codes[i - 1]))\n ++count;\n }\n\n return count;\n }\n};", "number": "804"}, "1614": {"link": "https://leetcode.com/problems/maximum-nesting-depth-of-the-parentheses", "name": "Maximum Nesting Depth of the Parentheses", "difficulty": "Easy", "statement": "

    A string is a valid parentheses string (denoted VPS) if it meets one of the following:

    \n\n
      \n\t
    • It is an empty string \"\", or a single character not equal to \"(\" or \")\",
    • \n\t
    • It can be written as AB (A concatenated with B), where A and B are VPS's, or
    • \n\t
    • It can be written as (A), where A is a VPS.
    • \n
    \n\n

    We can similarly define the nesting depth depth(S) of any VPS S as follows:

    \n\n
      \n\t
    • depth(\"\") = 0
    • \n\t
    • depth(A + B) = max(depth(A), depth(B)), where A and B are VPS's
    • \n\t
    • depth(\"(\" + A + \")\") = 1 + depth(A), where A is a VPS.
    • \n
    \n\n

    For example, \"\", \"()()\", and \"()(()())\" are VPS's (with nesting depths 0, 1, and 2), and \")(\" and \"(()\" are not VPS's.

    \n\n

    Given a VPS represented as string s, return the nesting depth of s.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: s = \"(1+(2*3)+((8)/4))+1\"\nOutput: 3\nExplanation: Digit 8 is inside of 3 nested parentheses in the string.\n
    \n\n

    Example 2:

    \n\n
    Input: s = \"(1)+((2))+(((3)))\"\nOutput: 3\n
    \n\n

    Example 3:

    \n\n
    Input: s = \"1+(2*3)/(2-1)\"\nOutput: 1\n
    \n\n

    Example 4:

    \n\n
    Input: s = \"1\"\nOutput: 0\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= s.length <= 100
    • \n\t
    • s consists of digits 0-9 and characters '+', '-', '*', '/', '(', and ')'.
    • \n\t
    • It is guaranteed that parentheses expression s is a VPS.
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int maxDepth(string s)\n {\n\n int max_depth = 0;\n int current_depth = 0;\n\n for (char ch : s)\n {\n if (ch == '(')\n ++current_depth;\n else if (ch == ')')\n --current_depth;\n max_depth = max_depth > current_depth ? max_depth : current_depth;\n }\n\n return max_depth;\n }\n};", "number": "1614"}, "944": {"link": "https://leetcode.com/problems/delete-columns-to-make-sorted", "name": "Delete Columns to Make Sorted", "difficulty": "Easy", "statement": "

    We are given an array A of N lowercase letter strings, all of the same length.

    \n\n

    Now, we may choose any set of deletion indices, and for each string, we delete all the characters in those indices.

    \n\n

    For example, if we have an array A = [\"abcdef\",\"uvwxyz\"] and deletion indices {0, 2, 3}, then the final array after deletions is [\"bef\", \"vyz\"], and the remaining columns of A are [\"b\",\"v\"], [\"e\",\"y\"], and [\"f\",\"z\"].  (Formally, the c-th column is [A[0][c], A[1][c], ..., A[A.length-1][c]]).

    \n\n

    Suppose we chose a set of deletion indices D such that after deletions, each remaining column in A is in non-decreasing sorted order.

    \n\n

    Return the minimum possible value of D.length.

    \n\n

     

    \n

    Example 1:

    \n\n
    Input: A = [\"cba\",\"daf\",\"ghi\"]\nOutput: 1\nExplanation: \nAfter choosing D = {1}, each column [\"c\",\"d\",\"g\"] and [\"a\",\"f\",\"i\"] are in non-decreasing sorted order.\nIf we chose D = {}, then a column [\"b\",\"a\",\"h\"] would not be in non-decreasing sorted order.\n
    \n\n

    Example 2:

    \n\n
    Input: A = [\"a\",\"b\"]\nOutput: 0\nExplanation: D = {}\n
    \n\n

    Example 3:

    \n\n
    Input: A = [\"zyx\",\"wvu\",\"tsr\"]\nOutput: 3\nExplanation: D = {0, 1, 2}\n
    \n\n

     

    \n

    Constraints:

    \n\n
      \n\t
    • 1 <= A.length <= 100
    • \n\t
    • 1 <= A[i].length <= 1000
    • \n
    \n
    ", "language": "cpp", "solution": "#include \n#include \n\nusing namespace std;\n\nclass Solution\n{\npublic:\n int minDeletionSize(vector &A)\n {\n\n int len = A[0].length();\n int n = A.size();\n\n int del[len];\n fill_n(del, len, 0);\n\n for(int i = 0; i < n-1; i++) {\n for(int j = 0; j < len; j++) {\n if (A[i][j] > A[i+1][j]) {\n del[j] = 1;\n \n }\n }\n }\n\n int count = 0;\n for(int i: del)\n count += i;\n\n return count;\n\n }\n};", "number": "944"}} \ No newline at end of file diff --git a/static/css/2.d9ad5f5c.chunk.css b/static/css/2.d9ad5f5c.chunk.css new file mode 100644 index 0000000..c2487d3 --- /dev/null +++ b/static/css/2.d9ad5f5c.chunk.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.5.2 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors + * Copyright 2011-2020 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:"\2014\00A0"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3}.btn-link.focus,.btn-link:focus,.btn-link:hover{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:""}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;grid-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb,.breadcrumb-item{display:flex}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1 1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{flex-basis:350px;max-width:350px;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.857143%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{-webkit-user-select:all!important;-ms-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:transparent}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} +/*# sourceMappingURL=2.d9ad5f5c.chunk.css.map */ \ No newline at end of file diff --git a/static/css/2.d9ad5f5c.chunk.css.map b/static/css/2.d9ad5f5c.chunk.css.map new file mode 100644 index 0000000..d1697f2 --- /dev/null +++ b/static/css/2.d9ad5f5c.chunk.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","dist/css/bootstrap.css","../../scss/_reboot.scss","../../scss/vendor/_rfs.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/utilities/_interactions.scss","../../scss/utilities/_overflow.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_stretched-link.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"AAAA;;;;;ECCA,CAAA,MAGI,cAAA,CAAA,gBAAA,CAAA,gBAAA,CAAA,cAAA,CAAA,aAAA,CAAA,gBAAA,CAAA,gBAAA,CAAA,eAAA,CAAA,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,cAAA,CAAA,mBAIA,CAAA,iBAAA,CAAA,mBAAA,CAAA,iBAAA,CAAA,cAAA,CAAA,iBAAA,CAAA,gBAAA,CAAA,eAAA,CAAA,cAIA,CAAA,iBAAA,CAAA,qBAAA,CAAA,qBAAA,CAAA,qBAAA,CAAA,sBAKF,CAAA,mMACA,CAAA,sGCqBF,CAAA,iBClBE,qBAGF,CAAA,KACE,sBACA,CAAA,gBACA,CAAA,6BACA,CAAA,uCAMF,CAAA,sEACE,aAUF,CAAA,KACE,QACA,CAAA,sLCgFI,CAAA,cD9EJ,CAAA,eACA,CAAA,eACA,CAAA,aACA,CAAA,eACA,CAAA,qBEYF,CAAA,0CFCE,mBASF,CACE,GAAA,sBACA,CAAA,QACA,CAAA,gBAaF,CAAA,kBACE,YACA,CAAA,mBAQA,CAAA,EAAA,YACA,CAAA,kBDhBF,CAAA,sCC6BE,yBACA,CAAA,wCAAA,CAAA,gCACA,CAAA,WACA,CAAA,eACA,CAAA,qCAAA,CAAA,6BAGF,CAAA,QAEE,iBACA,CAAA,mBDrBF,CCwBA,iBALE,kBAYF,CAPA,SAGE,YAIF,CAAA,wBAIE,eAGF,CACE,GAAA,eAGF,CACE,GAAA,mBACA,CAAA,aAGF,CAAA,WACE,eDtBF,CAAA,SC2BE,kBAGF,CAAA,MCxFI,aDiGJ,CAAA,QAEE,iBCnGE,CAAA,aDqGF,CAAA,aACA,CAAA,uBAGF,CAAA,IAAM,aACN,CAAA,IAAM,SAQJ,CAAA,EAAA,aACA,CAAA,oBACA,CAAA,4BGhLA,CAAA,QHmLE,aACA,CAAA,yBASJ,CG7LE,4DHkME,aACA,CAAA,oBD/BJ,CAAA,kBC4CE,0FCpJE,CAAA,aDwJJ,CAAA,IAEE,YAEA,CAAA,kBAEA,CAAA,aAGA,CAAA,4BAQF,CAAA,OAEE,eAQF,CAAA,IAEE,iBAGF,CAAA,QAJE,qBAgBF,CAZA,IAGE,eASF,CAAA,MACE,wBAGF,CAAA,QACE,kBACA,CAAA,qBACA,CAAA,aACA,CAAA,eACA,CAAA,mBAGF,CAGE,GAAA,kBAQF,CAAA,MAEE,oBACA,CAAA,mBAMF,CAAA,OAEE,eAOF,CAAA,aACE,kBACA,CAAA,yCD5EF,CAAA,sCCoFE,QACA,CAAA,mBCxPE,CAAA,iBD0PF,CAAA,mBAGF,CAAA,aAEE,gBAGF,CAAA,cAEE,mBE/EF,CAAA,cFsFE,cAMF,CAAA,OACE,gBDlFF,CAAA,gDC6FE,yBDtFF,CAAA,4GCgGM,cDzFN,CAAA,wHCmGE,SACA,CAAA,iBD5FF,CAAA,uCCiGE,qBACA,CAAA,SAIF,CAAA,SACE,aAEA,CAAA,eAGF,CAAA,SAME,WAEA,CAAA,SACA,CAAA,QACA,CAAA,QAKF,CAAA,OACE,aACA,CAAA,UACA,CAAA,cACA,CAAA,SACA,CAAA,mBC/RI,CAAA,gBDiSJ,CAAA,mBACA,CAAA,aACA,CAAA,kBAGF,CAAA,SACE,uBEzGF,CAAA,kFF+GE,WE1GF,CAAA,cFkHE,mBACA,CAAA,uBE9GF,CAAA,yCFsHE,uBAQF,CAAA,6BACE,YACA,CAAA,yBAOF,CAAA,OACE,oBAGF,CAAA,QACE,iBACA,CAAA,cAGF,CAAA,SACE,YE3HF,CAAA,SFiIE,sBD1HF,CAAA,0CK5VE,mBAEA,CAAA,eACA,CAAA,eAIF,CAAA,OHgHM,gBG/GN,CAAA,OH+GM,cG9GN,CAAA,OH8GM,iBG7GN,CAAA,OH6GM,gBG5GN,CAAA,OH4GM,iBG3GN,CAAA,OH2GM,cGzGN,CAAA,MHyGM,iBGvGJ,CAAA,eAIF,CAAA,WHmGM,cG9FN,CAAA,sBAHE,eACA,CAAA,eAOF,CALA,WH8FM,gBGzFN,CAAA,WHyFM,gBGpFN,CAAA,sBAHE,eACA,CAAA,eJkCF,CIhCA,WHoFM,gBDpDN,CIpBE,GAAA,eACA,CAAA,kBACA,CAAA,QACA,CAAA,mCL6WF,CAAA,aE/VI,aGHF,CAAA,eLwWF,CAAA,WKnWE,YACA,CAAA,wBAQF,CAKA,4BCpFE,cACA,CAAA,eDsFF,CAAA,kBACE,oBADF,CAAA,mCAII,kBAUJ,CAAA,YHjCI,aGmCF,CAAA,wBAIF,CAAA,YACE,kBHeI,CAAA,iBGXN,CAAA,mBACE,aH7CE,CAAA,aG+CF,CAAA,aAHF,CAAA,0BAMI,oBEnHJ,CAMA,0BCFE,cAGA,CAAA,WDcF,CAfA,eACE,cACA,CAAA,qBACA,CAAA,wBEEE,CAAA,oBFUJ,CAAA,QAEE,oBAGF,CAAA,YACE,mBACA,CAAA,aAGF,CAAA,gBLkCI,aKhCF,CAAA,aGvCF,CAAA,KRuEI,eQrEF,CAAA,aACA,CAAA,oBAGA,CAAA,OACE,aAKJ,CAAA,IACE,mBR0DE,CAAA,eQxDF,CAAA,UACA,CAAA,wBDCE,CAAA,mBCLJ,CAAA,QASI,SRkDA,CAAA,cQhDA,CAAA,eTwMJ,CAAA,ISjME,aRyCE,CAAA,eQvCF,CAAA,aAHF,CAAA,SR0CI,iBQlCA,CAAA,aACA,CAAA,iBAKJ,CAAA,gBACE,gBACA,CAAA,iBCxCA,CAAA,oFCDA,UACA,CAAA,kBACA,CAAA,iBACA,CAAA,iBACA,CAAA,gBCmDE,CAAA,yBFzCE,yBACE,eEwCJ,CAAA,CAAA,yBFzCE,uCACE,eEwCJ,CAAA,CAAA,yBFzCE,qDACE,eEwCJ,CAAA,CAAA,0BFzCE,mEACE,gBA4BN,CAAA,CAAA,KCnCA,YACA,CAAA,cACA,CAAA,kBACA,CAAA,iBDsCA,CAAA,YACE,cACA,CAAA,aAFF,CAAA,2CAMI,eACA,CAAA,cGtDJ,CAAA,sqBACE,iBACA,CAAA,UACA,CAAA,kBACA,CAAA,iBAsBE,CAAA,KACE,YACA,CAAA,WACA,CAAA,cAKE,CAAA,cFwBN,aACA,CAAA,cEzBM,CAAA,cFwBN,YACA,CAAA,aEzBM,CAAA,cFwBN,mBACA,CAAA,oBEzBM,CAAA,cFwBN,YACA,CAAA,aEzBM,CAAA,cFwBN,YACA,CAAA,aEzBM,CAAA,cFwBN,mBACA,CAAA,oBEnBE,CAAA,UFCJ,aACA,CAAA,UACA,CAAA,cEGQ,CAAA,OFbR,kBAIA,CAAA,mBESQ,CAAA,OFbR,mBAIA,CAAA,oBESQ,CAAA,OFbR,YAIA,CAAA,aESQ,CAAA,OFbR,mBAIA,CAAA,oBESQ,CAAA,OFbR,mBAIA,CAAA,oBESQ,CAAA,OFbR,YAIA,CAAA,aESQ,CAAA,OFbR,mBAIA,CAAA,oBESQ,CAAA,OFbR,mBAIA,CAAA,oBESQ,CAAA,OFbR,YAIA,CAAA,aESQ,CAAA,QFbR,mBAIA,CAAA,oBESQ,CAAA,QFbR,mBAIA,CAAA,oBESQ,CAAA,QFbR,aAIA,CAAA,cEeI,CAAA,aAAwB,QAExB,CAAA,YAAuB,QAGrB,CAAA,SAAwB,OAAxB,CAAA,SAAwB,OAAxB,CAAA,SAAwB,OAAxB,CAAA,SAAwB,OAAxB,CAAA,SAAwB,OAAxB,CAAA,SAAwB,OAAxB,CAAA,SAAwB,OAAxB,CAAA,SAAwB,OAAxB,CAAA,SAAwB,OAAxB,CAAA,SAAwB,OAAxB,CAAA,UAAwB,QAAxB,CAAA,UAAwB,QAAxB,CAAA,UAAwB,QAOpB,CAAA,UFhBV,qBEgBU,CAAA,UFhBV,sBEgBU,CAAA,UFhBV,eEgBU,CAAA,UFhBV,sBEgBU,CAAA,UFhBV,sBEgBU,CAAA,UFhBV,eEgBU,CAAA,UFhBV,sBEgBU,CAAA,UFhBV,sBEgBU,CAAA,UFhBV,eEgBU,CAAA,WFhBV,sBEgBU,CAAA,WFhBV,sBCKE,CAAA,yBC3BE,QACE,YACA,CAAA,WACA,CAAA,cAKE,CAAA,iBFwBN,aACA,CAAA,cEzBM,CAAA,iBFwBN,YACA,CAAA,aEzBM,CAAA,iBFwBN,mBACA,CAAA,oBEzBM,CAAA,iBFwBN,YACA,CAAA,aEzBM,CAAA,iBFwBN,YACA,CAAA,aEzBM,CAAA,iBFwBN,mBACA,CAAA,oBEnBE,CAAA,aFCJ,aACA,CAAA,UACA,CAAA,cEGQ,CAAA,UFbR,kBAIA,CAAA,mBESQ,CAAA,UFbR,mBAIA,CAAA,oBESQ,CAAA,UFbR,YAIA,CAAA,aESQ,CAAA,UFbR,mBAIA,CAAA,oBESQ,CAAA,UFbR,mBAIA,CAAA,oBESQ,CAAA,UFbR,YAIA,CAAA,aESQ,CAAA,UFbR,mBAIA,CAAA,oBESQ,CAAA,UFbR,mBAIA,CAAA,oBESQ,CAAA,UFbR,YAIA,CAAA,aESQ,CAAA,WFbR,mBAIA,CAAA,oBESQ,CAAA,WFbR,mBAIA,CAAA,oBESQ,CAAA,WFbR,aAIA,CAAA,cEeI,CAAA,gBAAwB,QAExB,CAAA,eAAuB,QAGrB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,aAAwB,QAAxB,CAAA,aAAwB,QAAxB,CAAA,aAAwB,QAOpB,CAAA,aFhBV,aEgBU,CAAA,aFhBV,qBEgBU,CAAA,aFhBV,sBEgBU,CAAA,aFhBV,eEgBU,CAAA,aFhBV,sBEgBU,CAAA,aFhBV,sBEgBU,CAAA,aFhBV,eEgBU,CAAA,aFhBV,sBEgBU,CAAA,aFhBV,sBEgBU,CAAA,aFhBV,eEgBU,CAAA,cFhBV,sBEgBU,CAAA,cFhBV,sBCKE,CAAA,CAAA,yBC3BE,QACE,YACA,CAAA,WACA,CAAA,cAKE,CAAA,iBFwBN,aACA,CAAA,cEzBM,CAAA,iBFwBN,YACA,CAAA,aEzBM,CAAA,iBFwBN,mBACA,CAAA,oBEzBM,CAAA,iBFwBN,YACA,CAAA,aEzBM,CAAA,iBFwBN,YACA,CAAA,aEzBM,CAAA,iBFwBN,mBACA,CAAA,oBEnBE,CAAA,aFCJ,aACA,CAAA,UACA,CAAA,cEGQ,CAAA,UFbR,kBAIA,CAAA,mBESQ,CAAA,UFbR,mBAIA,CAAA,oBESQ,CAAA,UFbR,YAIA,CAAA,aESQ,CAAA,UFbR,mBAIA,CAAA,oBESQ,CAAA,UFbR,mBAIA,CAAA,oBESQ,CAAA,UFbR,YAIA,CAAA,aESQ,CAAA,UFbR,mBAIA,CAAA,oBESQ,CAAA,UFbR,mBAIA,CAAA,oBESQ,CAAA,UFbR,YAIA,CAAA,aESQ,CAAA,WFbR,mBAIA,CAAA,oBESQ,CAAA,WFbR,mBAIA,CAAA,oBESQ,CAAA,WFbR,aAIA,CAAA,cEeI,CAAA,gBAAwB,QAExB,CAAA,eAAuB,QAGrB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,aAAwB,QAAxB,CAAA,aAAwB,QAAxB,CAAA,aAAwB,QAOpB,CAAA,aFhBV,aEgBU,CAAA,aFhBV,qBEgBU,CAAA,aFhBV,sBEgBU,CAAA,aFhBV,eEgBU,CAAA,aFhBV,sBEgBU,CAAA,aFhBV,sBEgBU,CAAA,aFhBV,eEgBU,CAAA,aFhBV,sBEgBU,CAAA,aFhBV,sBEgBU,CAAA,aFhBV,eEgBU,CAAA,cFhBV,sBEgBU,CAAA,cFhBV,sBCKE,CAAA,CAAA,yBC3BE,QACE,YACA,CAAA,WACA,CAAA,cAKE,CAAA,iBFwBN,aACA,CAAA,cEzBM,CAAA,iBFwBN,YACA,CAAA,aEzBM,CAAA,iBFwBN,mBACA,CAAA,oBEzBM,CAAA,iBFwBN,YACA,CAAA,aEzBM,CAAA,iBFwBN,YACA,CAAA,aEzBM,CAAA,iBFwBN,mBACA,CAAA,oBEnBE,CAAA,aFCJ,aACA,CAAA,UACA,CAAA,cEGQ,CAAA,UFbR,kBAIA,CAAA,mBESQ,CAAA,UFbR,mBAIA,CAAA,oBESQ,CAAA,UFbR,YAIA,CAAA,aESQ,CAAA,UFbR,mBAIA,CAAA,oBESQ,CAAA,UFbR,mBAIA,CAAA,oBESQ,CAAA,UFbR,YAIA,CAAA,aESQ,CAAA,UFbR,mBAIA,CAAA,oBESQ,CAAA,UFbR,mBAIA,CAAA,oBESQ,CAAA,UFbR,YAIA,CAAA,aESQ,CAAA,WFbR,mBAIA,CAAA,oBESQ,CAAA,WFbR,mBAIA,CAAA,oBESQ,CAAA,WFbR,aAIA,CAAA,cEeI,CAAA,gBAAwB,QAExB,CAAA,eAAuB,QAGrB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,aAAwB,QAAxB,CAAA,aAAwB,QAAxB,CAAA,aAAwB,QAOpB,CAAA,aFhBV,aEgBU,CAAA,aFhBV,qBEgBU,CAAA,aFhBV,sBEgBU,CAAA,aFhBV,eEgBU,CAAA,aFhBV,sBEgBU,CAAA,aFhBV,sBEgBU,CAAA,aFhBV,eEgBU,CAAA,aFhBV,sBEgBU,CAAA,aFhBV,sBEgBU,CAAA,aFhBV,eEgBU,CAAA,cFhBV,sBEgBU,CAAA,cFhBV,sBCKE,CAAA,CAAA,0BC3BE,QACE,YACA,CAAA,WACA,CAAA,cAKE,CAAA,iBFwBN,aACA,CAAA,cEzBM,CAAA,iBFwBN,YACA,CAAA,aEzBM,CAAA,iBFwBN,mBACA,CAAA,oBEzBM,CAAA,iBFwBN,YACA,CAAA,aEzBM,CAAA,iBFwBN,YACA,CAAA,aEzBM,CAAA,iBFwBN,mBACA,CAAA,oBEnBE,CAAA,aFCJ,aACA,CAAA,UACA,CAAA,cEGQ,CAAA,UFbR,kBAIA,CAAA,mBESQ,CAAA,UFbR,mBAIA,CAAA,oBESQ,CAAA,UFbR,YAIA,CAAA,aESQ,CAAA,UFbR,mBAIA,CAAA,oBESQ,CAAA,UFbR,mBAIA,CAAA,oBESQ,CAAA,UFbR,YAIA,CAAA,aESQ,CAAA,UFbR,mBAIA,CAAA,oBESQ,CAAA,UFbR,mBAIA,CAAA,oBESQ,CAAA,UFbR,YAIA,CAAA,aESQ,CAAA,WFbR,mBAIA,CAAA,oBESQ,CAAA,WFbR,mBAIA,CAAA,oBESQ,CAAA,WFbR,aAIA,CAAA,cEeI,CAAA,gBAAwB,QAExB,CAAA,eAAuB,QAGrB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,YAAwB,OAAxB,CAAA,aAAwB,QAAxB,CAAA,aAAwB,QAAxB,CAAA,aAAwB,QAOpB,CAAA,aFhBV,aEgBU,CAAA,aFhBV,qBEgBU,CAAA,aFhBV,sBEgBU,CAAA,aFhBV,eEgBU,CAAA,aFhBV,sBEgBU,CAAA,aFhBV,sBEgBU,CAAA,aFhBV,eEgBU,CAAA,aFhBV,sBEgBU,CAAA,aFhBV,sBEgBU,CAAA,aFhBV,eEgBU,CAAA,cFhBV,sBEgBU,CAAA,cFhBV,sBGnDF,CAAA,CAAA,OACE,UACA,CAAA,kBACA,CAAA,af4nDF,CAAA,oBevnDI,cACA,CAAA,kBACA,CAAA,4BAVJ,CAAA,gBAcI,qBACA,CAAA,+BAfJ,CAAA,mBAmBI,4Bf4nDJ,CAAA,0BehnDI,aASJ,CfgnDA,sDe3mDI,wBfgnDJ,CAAA,kDe1mDM,uBfinDN,CAAA,mGevmDI,QAQJ,CAAA,yCAEI,gCX/DF,CAAA,4BW2EI,aACA,CAAA,iCCnFJ,CAAA,mDAII,wBhBqrDN,CAAA,uFgB7qDQ,oBZLN,CYYA,4GASQ,wBA5BR,CAAA,yDAII,wBhB2sDN,CAAA,+FgBnsDQ,oBZLN,CYYA,kHASQ,wBA5BR,CAAA,mDAII,wBhBiuDN,CAAA,uFgBztDQ,oBZLN,CYYA,4GASQ,wBA5BR,CAAA,0CAII,wBhBuvDN,CAAA,2EgB/uDQ,oBZLN,CYYA,mGASQ,wBA5BR,CAAA,mDAII,wBhB6wDN,CAAA,uFgBrwDQ,oBZLN,CYYA,4GASQ,wBA5BR,CAAA,gDAII,wBhBmyDN,CAAA,mFgB3xDQ,oBZLN,CYYA,yGASQ,wBA5BR,CAAA,6CAII,wBhByzDN,CAAA,+EgBjzDQ,oBZLN,CYYA,sGASQ,wBA5BR,CAAA,0CAII,wBhB+0DN,CAAA,2EgBv0DQ,oBZLN,CYYA,mGASQ,wBA5BR,CAmBA,yJASQ,iCD8EV,CAAA,sBAGM,UACA,CAAA,wBACA,CAAA,oBALN,CAAA,uBAWM,aACA,CAAA,wBACA,CAAA,oBAKN,CAAA,YACE,UACA,CAAA,wBfmwDF,CAAA,mDe9vDI,oBAPJ,CAAA,2BAWI,QAXJ,CAAA,oDAgBM,oCXrIJ,CAAA,uCW4IM,UACA,CAAA,qCFhFJ,CAAA,4BEiGA,qBAEI,aACA,CAAA,UACA,CAAA,eACA,CAAA,gCALH,CAAA,qCASK,QF1GN,CAAA,CAAA,4BEiGA,qBAEI,aACA,CAAA,UACA,CAAA,eACA,CAAA,gCALH,CAAA,qCASK,QF1GN,CAAA,CAAA,4BEiGA,qBAEI,aACA,CAAA,UACA,CAAA,eACA,CAAA,gCALH,CAAA,qCASK,QF1GN,CAAA,CAAA,6BEiGA,qBAEI,aACA,CAAA,UACA,CAAA,eACA,CAAA,gCALH,CAAA,qCASK,QAdV,CAAA,CAAA,kBAOQ,aACA,CAAA,UACA,CAAA,eACA,CAAA,gCAVR,CAAA,kCAcU,QE7KV,CAAA,cACE,aACA,CAAA,UACA,CAAA,iCACA,CAAA,sBfqHI,CAAA,celHJ,CAAA,eACA,CAAA,eACA,CAAA,aACA,CAAA,qBACA,CAAA,2BACA,CAAA,wBRAE,CAAA,oBSFE,CAAA,oEAIA,CAAA,uCDdN,cCeQ,eDfR,CAAA,CAAA,0BAsBI,4BACA,CAAA,QAvBJ,CAAA,6BA4BI,iBACA,CAAA,yBEtBF,CAAA,oBACE,aACA,CAAA,qBACA,CAAA,oBACA,CAAA,SAKE,CAAA,0CFhBN,CAAA,yCAqCI,aAEA,CAAA,SAvCJ,CAAA,oCAqCI,aAEA,CAAA,SAvCJ,CAAA,qCAqCI,aAEA,CAAA,SAvCJ,CAAA,2BAqCI,aAEA,CAAA,SAvCJ,CAAA,+CAiDI,wBAEA,CAAA,SAIJ,CAAA,mIAKI,uBAAA,CAAA,oBAAA,CAAA,eAIJ,CAAA,qCAOI,aACA,CAAA,qBAKJ,CAAA,uCAEE,aACA,CAAA,UAUF,CAAA,gBACE,+BACA,CAAA,kCACA,CAAA,ef3BE,CAAA,iBe6BF,CAAA,eAGF,CAAA,mBACE,6BACA,CAAA,gCfqBI,CAAA,iBenBJ,CAAA,eAGF,CAAA,mBACE,8BACA,CAAA,iCfcI,CAAA,iBeZJ,CAAA,eASF,CAAA,wBACE,aACA,CAAA,UACA,CAAA,iBACA,CAAA,efDI,CAAA,ceGJ,CAAA,eACA,CAAA,aACA,CAAA,4BACA,CACA,wBAAA,CAAA,kBAVF,CAAA,gFAcI,eACA,CAAA,cAYJ,CAAA,iBACE,gCACA,CAAA,oBf1BI,CAAA,iBe4BJ,CAAA,eRzIE,CAAA,mBQ6IJ,CAAA,iBACE,+BACA,CAAA,kBflCI,CAAA,iBeoCJ,CAAA,eRjJE,CAAA,mBQsJJ,CAOA,8EACE,WAQF,CAAA,YACE,kBAGF,CAAA,WACE,aACA,CAAA,iBAQF,CAAA,UACE,YACA,CAAA,cACA,CAAA,iBACA,CAAA,gBAJF,CAAA,uCAQI,iBACA,CAAA,gBASJ,CAAA,YACE,iBACA,CAAA,aACA,CAAA,oBAGF,CAAA,kBACE,iBACA,CAAA,gBACA,CAAA,oBjBi7DF,CAAA,2FiB56DI,aAIJ,CAAA,kBACE,eAGF,CAAA,mBACE,mBACA,CAAA,kBACA,CAAA,cACA,CAAA,mBAJF,CAAA,qCAQI,eACA,CAAA,YACA,CAAA,qBACA,CAAA,aE7MF,CAAA,gBACE,YACA,CAAA,UACA,CAAA,iBjByBA,CAAA,aiBvBA,CAAA,aAGF,CAAA,eACE,iBACA,CAAA,QACA,CAAA,MACA,CAAA,SACA,CAAA,YACA,CAAA,cACA,CAAA,oBACA,CAAA,gBjBmEE,CAAA,iBiBjEF,CAAA,eACA,CAAA,UACA,CAAA,mCV9CA,CAAA,oBTkrEJ,CAAA,8HmB7nEM,aAvCF,CAAA,0DA6CE,oBAGE,CAAA,kCACA,CAAA,4QACA,CAAA,2BACA,CAAA,wDACA,CAAA,2DApDJ,CAAA,sEAwDI,oBACA,CAAA,0CAzDJ,CAAA,0EAkEI,kCACA,CAAA,6EAnEJ,CAAA,4DA0EE,oBAGE,CAAA,qCACA,CAAA,wiBA9EJ,CAAA,wEAkFI,oBACA,CAAA,0CAnFJ,CAAA,sGA2FI,anBinEiD,CAAA,kMmB5mEjD,aAhGJ,CAAA,sHAwGI,aAxGJ,CAAA,oIA2GM,oBA3GN,CAAA,oJAiHM,oBC3IN,CAAA,wBD0BA,CAAA,gJAwHM,0CAxHN,CAAA,sRAsII,oBAtIJ,CAAA,sHA2IM,oBACA,CAAA,0CAhIR,CAAA,kBACE,YACA,CAAA,UACA,CAAA,iBjByBA,CAAA,aiBvBA,CAAA,aAGF,CAAA,iBACE,iBACA,CAAA,QACA,CAAA,MACA,CAAA,SACA,CAAA,YACA,CAAA,cACA,CAAA,oBACA,CAAA,gBjBmEE,CAAA,iBiBjEF,CAAA,eACA,CAAA,UACA,CAAA,mCV9CA,CAAA,oBTuxEJ,CAAA,8ImBluEM,aAvCF,CAAA,8DA6CE,oBAGE,CAAA,kCACA,CAAA,qUACA,CAAA,2BACA,CAAA,wDACA,CAAA,2DApDJ,CAAA,0EAwDI,oBACA,CAAA,0CAzDJ,CAAA,8EAkEI,kCACA,CAAA,6EAnEJ,CAAA,gEA0EE,oBAGE,CAAA,qCACA,CAAA,imBA9EJ,CAAA,4EAkFI,oBACA,CAAA,0CAnFJ,CAAA,0GA2FI,anBstEqD,CAAA,kNmBjtErD,aAhGJ,CAAA,0HAwGI,aAxGJ,CAAA,wIA2GM,oBA3GN,CAAA,wJAiHM,oBC3IN,CAAA,wBD0BA,CAAA,oJAwHM,0CAxHN,CAAA,8RAsII,oBAtIJ,CAAA,0HA2IM,oBACA,CAAA,0CFsGV,CAAA,aACE,YACA,CAAA,kBACA,CAAA,kBAHF,CAAA,yBASI,UJ/NA,CAAA,yBIsNJ,mBAiBM,sBAjBN,CAAA,4CAeM,YACA,CAAA,kBACA,CACA,eAlBN,CAAA,yBAwBM,aACA,CAAA,kBAzBN,CAAA,2BAgCM,oBACA,CAAA,UACA,CAAA,qBAlCN,CAAA,qCAuCM,oBjBsmEJ,CAAA,sDiBjmEI,UA5CN,CAAA,yBAkDM,YACA,CAAA,kBACA,CAAA,sBACA,CAAA,UACA,CAAA,cAtDN,CAAA,+BAyDM,iBACA,CAAA,aACA,CAAA,YACA,CAAA,mBACA,CAAA,aA7DN,CAAA,6BAiEM,kBACA,CAAA,sBAlEN,CAAA,mCAqEM,eIjVN,CAAA,CAAA,KACE,oBAEA,CAAA,eACA,CAAA,aACA,CAAA,iBAGA,CAAA,qBACA,CAAA,wBAAA,CAAA,oBAAA,CAAA,gBACA,CAAA,4BACA,CAAA,4BCuFA,CAAA,sBpBuBI,CAAA,coBrBJ,CAAA,ebxFE,CAAA,oBSFE,CAAA,6HAIA,CAAA,uCGdN,KHeQ,edTN,CAAA,CAAA,WiBUE,aACA,CAAA,oBAjBJ,CAAA,sBAsBI,SACA,CAAA,0CAvBJ,CAAA,4BA6BI,WA7BJ,CAAA,mCAkCI,cAcJ,CAAA,uCAEE,mBASA,CAAA,aC3DA,UFAE,CAAA,wBEEF,CAAA,oBlBIA,CkBKA,yDALE,UFNA,CAAA,wBEQA,CAAA,oBAiBF,CAdA,sCASI,0CAKJ,CAAA,4CAEE,UACA,CAAA,wBACA,CAAA,oBAOF,CAAA,uIAGE,UACA,CAAA,wBAIA,CAAA,oBAEA,CAAA,yJAKI,0CDQN,CAAA,eC3DA,UFAE,CAAA,wBEEF,CAAA,oBlBIA,CkBKA,+DALE,UFNA,CAAA,wBEQA,CAAA,oBAiBF,CAdA,0CASI,2CAKJ,CAAA,gDAEE,UACA,CAAA,wBACA,CAAA,oBAOF,CAAA,6IAGE,UACA,CAAA,wBAIA,CAAA,oBAEA,CAAA,+JAKI,2CDQN,CAAA,aC3DA,UFAE,CAAA,wBEEF,CAAA,oBlBIA,CkBKA,yDALE,UFNA,CAAA,wBEQA,CAAA,oBAiBF,CAdA,sCASI,yCAKJ,CAAA,4CAEE,UACA,CAAA,wBACA,CAAA,oBAOF,CAAA,uIAGE,UACA,CAAA,wBAIA,CAAA,oBAEA,CAAA,yJAKI,yCDQN,CAAA,UC3DA,UFAE,CAAA,wBEEF,CAAA,oBlBIA,CkBKA,gDALE,UFNA,CAAA,wBEQA,CAAA,oBAiBF,CAdA,gCASI,0CAKJ,CAAA,sCAEE,UACA,CAAA,wBACA,CAAA,oBAOF,CAAA,8HAGE,UACA,CAAA,wBAIA,CAAA,oBAEA,CAAA,gJAKI,0CDQN,CAAA,aC3DA,aFAE,CAAA,wBEEF,CAAA,oBlBIA,CkBKA,yDALE,aFNA,CAAA,wBEQA,CAAA,oBAiBF,CAdA,sCASI,0CAKJ,CAAA,4CAEE,aACA,CAAA,wBACA,CAAA,oBAOF,CAAA,uIAGE,aACA,CAAA,wBAIA,CAAA,oBAEA,CAAA,yJAKI,0CDQN,CAAA,YC3DA,UFAE,CAAA,wBEEF,CAAA,oBlBIA,CkBKA,sDALE,UFNA,CAAA,wBEQA,CAAA,oBAiBF,CAdA,oCASI,yCAKJ,CAAA,0CAEE,UACA,CAAA,wBACA,CAAA,oBAOF,CAAA,oIAGE,UACA,CAAA,wBAIA,CAAA,oBAEA,CAAA,sJAKI,yCDQN,CAAA,WC3DA,aFAE,CAAA,wBEEF,CAAA,oBlBIA,CkBKA,mDALE,aFNA,CAAA,wBEQA,CAAA,oBAiBF,CAdA,kCASI,2CAKJ,CAAA,wCAEE,aACA,CAAA,wBACA,CAAA,oBAOF,CAAA,iIAGE,aACA,CAAA,wBAIA,CAAA,oBAEA,CAAA,mJAKI,2CDQN,CAAA,UC3DA,UFAE,CAAA,wBEEF,CAAA,oBlBIA,CkBKA,gDALE,UFNA,CAAA,wBEQA,CAAA,oBAiBF,CAdA,gCASI,wCAKJ,CAAA,sCAEE,UACA,CAAA,wBACA,CAAA,oBAOF,CAAA,8HAGE,UACA,CAAA,wBAIA,CAAA,oBAEA,CAAA,gJAKI,wCDcN,CAAA,qBCPA,aACA,CAAA,oBlBrDA,CAAA,2BkBwDE,UACA,CAAA,wBACA,CAAA,oBAGF,CAAA,sDAEE,yCAGF,CAAA,4DAEE,aACA,CAAA,4BAGF,CAAA,+JAGE,UACA,CAAA,wBACA,CAAA,oBAEA,CAAA,iLAKI,yCDzBN,CAAA,uBCPA,aACA,CAAA,oBlBrDA,CAAA,6BkBwDE,UACA,CAAA,wBACA,CAAA,oBAGF,CAAA,0DAEE,2CAGF,CAAA,gEAEE,aACA,CAAA,4BAGF,CAAA,qKAGE,UACA,CAAA,wBACA,CAAA,oBAEA,CAAA,uLAKI,2CDzBN,CAAA,qBCPA,aACA,CAAA,oBlBrDA,CAAA,2BkBwDE,UACA,CAAA,wBACA,CAAA,oBAGF,CAAA,sDAEE,yCAGF,CAAA,4DAEE,aACA,CAAA,4BAGF,CAAA,+JAGE,UACA,CAAA,wBACA,CAAA,oBAEA,CAAA,iLAKI,yCDzBN,CAAA,kBCPA,aACA,CAAA,oBlBrDA,CAAA,wBkBwDE,UACA,CAAA,wBACA,CAAA,oBAGF,CAAA,gDAEE,0CAGF,CAAA,sDAEE,aACA,CAAA,4BAGF,CAAA,sJAGE,UACA,CAAA,wBACA,CAAA,oBAEA,CAAA,wKAKI,0CDzBN,CAAA,qBCPA,aACA,CAAA,oBlBrDA,CAAA,2BkBwDE,aACA,CAAA,wBACA,CAAA,oBAGF,CAAA,sDAEE,yCAGF,CAAA,4DAEE,aACA,CAAA,4BAGF,CAAA,+JAGE,aACA,CAAA,wBACA,CAAA,oBAEA,CAAA,iLAKI,yCDzBN,CAAA,oBCPA,aACA,CAAA,oBlBrDA,CAAA,0BkBwDE,UACA,CAAA,wBACA,CAAA,oBAGF,CAAA,oDAEE,yCAGF,CAAA,0DAEE,aACA,CAAA,4BAGF,CAAA,4JAGE,UACA,CAAA,wBACA,CAAA,oBAEA,CAAA,8KAKI,yCDzBN,CAAA,mBCPA,aACA,CAAA,oBlBrDA,CAAA,yBkBwDE,aACA,CAAA,wBACA,CAAA,oBAGF,CAAA,kDAEE,2CAGF,CAAA,wDAEE,aACA,CAAA,4BAGF,CAAA,yJAGE,aACA,CAAA,wBACA,CAAA,oBAEA,CAAA,2KAKI,2CDzBN,CAAA,kBCPA,aACA,CAAA,oBlBrDA,CAAA,wBkBwDE,UACA,CAAA,wBACA,CAAA,oBAGF,CAAA,gDAEE,wCAGF,CAAA,sDAEE,aACA,CAAA,4BAGF,CAAA,sJAGE,UACA,CAAA,wBACA,CAAA,oBAEA,CAAA,wKAKI,wCDdR,CAAA,UACE,eACA,CAAA,aACA,CAAA,oBjBzEA,CAAA,gBiB4EE,aANJ,CAAA,gDAOI,yBAPJ,CAAA,sCAiBI,aACA,CAAA,mBAWJ,CAAA,2BCPE,kBpBuBI,CAAA,iBoBrBJ,CAAA,ebxFE,CAAA,mBYiGJ,CAAA,2BCXE,oBpBuBI,CAAA,iBoBrBJ,CAAA,ebxFE,CAAA,mBY0GJ,CAAA,WACE,aACA,CAAA,UAFF,CAAA,sBAMI,gBrBk8FJ,CAAA,sFqBz7FI,UE3IJ,CAAA,MLgBM,8BAIA,CAAA,uCKpBN,MLqBQ,eKrBR,CAAA,CAAA,iBAII,SAIJ,CAAA,qBAEI,YAIJ,CAAA,YACE,iBACA,CAAA,QACA,CAAA,eLDI,CAAA,2BAIA,CAAA,uCKNN,YLOQ,elBolGR,CAAA,CAAA,uCwBpmGE,iBAGF,CAAA,iBACE,kBCoBE,CAAA,uBACE,oBACA,CAAA,kBACA,CAAA,qBACA,CAAA,UAhCJ,CAAA,qBACA,CAAA,mCACA,CAAA,eACA,CAAA,kCAqDE,CAAA,6BACE,aD1CN,CAAA,eACE,iBACA,CAAA,QACA,CAAA,MACA,CAAA,YACA,CAAA,YACA,CAAA,UACA,CAAA,eACA,CAAA,eACA,CAAA,kBtBsGI,CAAA,csBpGJ,CAAA,aACA,CAAA,eACA,CAAA,eACA,CAAA,qBACA,CAAA,2BACA,CAAA,gCfdE,CAAA,oBeuBA,CAAA,oBACE,UACA,CAAA,MAGF,CAAA,qBACE,OACA,CAAA,SXYF,CAAA,yBWnBA,uBACE,UACA,CAAA,MAGF,CAAA,wBACE,OACA,CAAA,SXYF,CAAA,CAAA,yBWnBA,uBACE,UACA,CAAA,MAGF,CAAA,wBACE,OACA,CAAA,SXYF,CAAA,CAAA,yBWnBA,uBACE,UACA,CAAA,MAGF,CAAA,wBACE,OACA,CAAA,SXYF,CAAA,CAAA,0BWnBA,uBACE,UACA,CAAA,MAGF,CAAA,wBACE,OACA,CAAA,SAON,CAAA,CAAA,uBAEI,QACA,CAAA,WACA,CAAA,YACA,CAAA,qBC/BA,CAAA,+BACE,oBACA,CAAA,kBACA,CAAA,qBACA,CAAA,UAzBJ,CAAA,YACA,CAAA,mCACA,CAAA,wBACA,CAAA,kCA8CE,CAAA,qCACE,aDUN,CAAA,0BAEI,KACA,CAAA,UACA,CAAA,SACA,CAAA,YACA,CAAA,mBC7CA,CAAA,kCACE,oBACA,CAAA,kBACA,CAAA,qBACA,CAAA,UAlBJ,CAAA,iCACA,CAAA,cACA,CAAA,oCACA,CAAA,sBAuCE,CAAA,wCACE,aA7BF,CAAA,kCDmDE,gBAKN,CAAA,yBAEI,KACA,CAAA,UACA,CAAA,SACA,CAAA,YACA,CAAA,oBC9DA,CAAA,iCACE,oBACA,CAAA,kBACA,CAAA,qBACA,CAAA,UAAA,CAYE,YAhBJ,CAmBE,kCACE,oBACA,CAAA,mBACA,CAAA,qBACA,CAAA,UA9BN,CAAA,iCACA,CAAA,uBACA,CAAA,oCAiCE,CAAA,uCACE,aAVA,CAAA,kCDiDA,gBAON,CAAA,0IAKI,UACA,CAAA,WAKJ,CAAA,kBE9GE,QACA,CAAA,cACA,CAAA,eACA,CAAA,4BFkHF,CAAA,eACE,aACA,CAAA,UACA,CAAA,qBACA,CAAA,UACA,CAAA,eACA,CAAA,aACA,CAAA,kBAEA,CAAA,kBACA,CAAA,4BACA,CAAA,QpBrHA,CAAA,0CoBoIE,aACA,CAAA,oBJ/IA,CAAA,wBIoHJ,CAAA,4CAiCI,UACA,CAAA,oBJtJA,CAAA,wBIoHJ,CAAA,gDAwCI,aACA,CAAA,mBACA,CAAA,4BAQJ,CAAA,oBACE,aAIF,CAAA,iBACE,aACA,CAAA,oBACA,CAAA,etBrDI,CAAA,iBsBuDJ,CAAA,aACA,CAAA,kBAIF,CAAA,oBACE,aACA,CAAA,qBACA,CAAA,aG3LF,CAAA,+BAEE,iBACA,CAAA,mBACA,CAAA,qB3Bi2GF,CAAA,yC2B91GI,iBACA,CAAA,a3Bo2GJ,CAOA,wN2Bj2GM,SAMN,CAAA,aACE,YACA,CAAA,cACA,CAAA,0BAHF,CAAA,0BAMI,U3Bu2GJ,CAAA,0E2B/1GI,gB3Bo2GJ,CAAA,mGS32GI,yBACA,CAAA,4BTg3GJ,CAAA,+ESn2GI,wBACA,CAAA,2BkBmBJ,CAAA,uBACE,sBACA,CAAA,qBAFF,CAAA,0GAOI,aAGF,CAAA,wCACE,cAIJ,CAAA,yEACE,qBACA,CAAA,oBAGF,CAAA,yEACE,oBACA,CAAA,mBAoBF,CAAA,oBACE,qBACA,CAAA,sBACA,CAAA,sBAHF,CAAA,wDAOI,U3B20GJ,CAAA,4F2Bt0GI,e3B20GJ,CAAA,qHS55GI,4BACA,CAAA,2BTi6GJ,CAAA,iGSh7GI,wBACA,CAAA,yBkB0HJ,CAAA,yDAGI,e3B6zGJ,CAAA,gM2BzzGM,iBACA,CAAA,kBACA,CAAA,mBCzJN,CAAA,aACE,iBACA,CAAA,YACA,CAAA,cACA,CAAA,mBACA,CAAA,U5Bi+GF,CAAA,sH4B39GI,iBACA,CAAA,aACA,CAAA,QACA,CAAA,WACA,CAAA,e5B2+GJ,CAAA,0gB4Bt+GM,gB5B4+GN,CAAA,yI4Bp+GI,SA5BJ,CAAA,mDAiCI,S5Bw+GJ,CAAA,yFS7+GI,yBACA,CAAA,4BTk/GJ,CAAA,2FSr+GI,wBACA,CAAA,2BmB3CJ,CAAA,0BA6CI,YACA,CAAA,kBA9CJ,CAAA,kInB4BI,yBACA,CAAA,4BmB7BJ,CAAA,+DnB0CI,wBACA,CAAA,2BT4/GJ,CAAA,yC4Bx+GE,Y5B8+GF,CAAA,mD4Bx+GI,iBACA,CAAA,S5B6+GJ,CAAA,+D4B1+GM,S5Bk/GN,CAAA,4V4B1+GI,gBAIJ,CAAA,qBAAuB,iBACvB,CAAA,oBAAsB,gBAQtB,CAAA,kBACE,YACA,CAAA,kBACA,CAAA,sBACA,CAAA,e1BuBI,CAAA,c0BrBJ,CAAA,eACA,CAAA,eACA,CAAA,aACA,CAAA,iBACA,CAAA,kBACA,CAAA,wBACA,CAAA,wBnB9FE,CAAA,oBTilHJ,CAAA,2E4B7+GI,Y5Bk/GJ,CAAA,2E4Bt+GE,+B5B2+GF,CAAA,6P4Bl+GE,kB1BZI,CAAA,iB0BcJ,CAAA,enB3HE,CAAA,mBTumHJ,CAAA,2E4Bt+GE,gC5B2+GF,CAAA,6P4Bl+GE,oB1B7BI,CAAA,iB0B+BJ,CAAA,enB5IE,CAAA,mBmBgJJ,CAAA,8DAEE,qB5B8+GF,CAAA,6XShnHI,yBACA,CAAA,4BmBqJJ,CAAA,+WnBxII,wBACA,CAAA,2BoBxCJ,CAAA,gBACE,iBACA,CAAA,SACA,CAAA,aACA,CAAA,iBACA,CAAA,mBAGF,CAAA,uBACE,mBACA,CAAA,iBAGF,CAAA,sBACE,iBACA,CAAA,MACA,CAAA,UACA,CAAA,UACA,CAAA,cACA,CAAA,SANF,CAAA,2DASI,UACA,CAAA,oBT1BA,CAAA,wBSgBJ,CAAA,yDAoBM,0CApBN,CAAA,uEAyBI,oBAzBJ,CAAA,yEA6BI,UACA,CAAA,wBACA,CAAA,oBA/BJ,CAAA,2GAuCM,aAvCN,CAAA,yHA0CQ,wBAUR,CAAA,sBACE,iBACA,CAAA,eAEA,CAAA,kBAJF,CAAA,6BAeI,mBACA,CACA,qBACA,CAAA,wBAlBJ,CAAA,yDASI,iBACA,CAAA,UACA,CAAA,YACA,CAAA,aACA,CAAA,UACA,CAAA,WACA,CACA,UAwBJ,CAxCA,4BA+BI,gCASJ,CAAA,8CpBhGI,oBoBgGJ,CAAA,2EAOM,6NAPN,CAAA,kFAaM,oBTzHF,CAAA,wBS4GJ,CAAA,iFAkBM,0KAlBN,CAAA,qFT5GI,mCS4GJ,CAAA,2FT5GI,mCSgJJ,CAAA,2CAGI,iBAHJ,CAAA,wEAQM,2LARN,CAAA,kFThJI,mCSwKJ,CAAA,eACE,oBADF,CAAA,4CAKM,aACA,CAAA,aACA,CAAA,kBAEA,CAAA,mBATN,CAAA,2CAaM,sBACA,CAAA,yBACA,CAAA,sBACA,CAAA,uBACA,CAAA,wBAEA,CAAA,mBXjLA,CAAA,iIAIA,CAAA,uCW0JN,2CXzJQ,eWyJR,CAAA,CAAA,yEA0BM,qBACA,CAAA,4BA3BN,CAAA,mFTxKI,mCSqNJ,CAAA,eACE,oBACA,CAAA,UACA,CAAA,iCACA,CAAA,sC3BhGI,CAAA,c2BmGJ,CAAA,eACA,CAAA,eACA,CAAA,aACA,CAAA,qBACA,CAAA,iOACA,CAAA,wBpBrNE,CAAA,oBoBwNF,CAAA,uBAAA,CAAA,oBAAA,CAAA,eAfF,CAAA,qBAkBI,oBACA,CAAA,SAKE,CAAA,0CAxBN,CAAA,gCAiCM,aACA,CAAA,qBAlCN,CAAA,8DAwCI,WACA,CAAA,oBACA,CAAA,qBA1CJ,CAAA,wBA8CI,aACA,CAAA,wBA/CJ,CAAA,2BAoDI,YApDJ,CAAA,8BAyDI,iBACA,CAAA,yBAIJ,CAAA,kBACE,gCACA,CAAA,kBACA,CAAA,qBACA,CAAA,kB3B9JI,CAAA,iB2BkKN,CAAA,kBACE,+BACA,CAAA,iBACA,CAAA,oBACA,CAAA,iB3BtKI,CAAA,iB2B+KN,CAAA,aAEE,oBACA,CAEA,eAGF,CAAA,gCAPE,iBACA,CACA,UACA,CAAA,iCAIF,CAAA,mBAEE,SACA,CAEA,QACA,CAAA,SANF,CAAA,4CASI,oBACA,CAAA,0C7BulHJ,CAAA,+F6BjlHI,wBAhBJ,CAAA,qDAqBM,gBArBN,CAAA,yDA0BI,yBAIJ,CAAA,mBAIE,MACA,CAAA,SACA,CAAA,iCACA,CAEA,eACA,CAEA,qBACA,CAAA,wBpB/UE,CAAA,oBoBkUJ,CAAA,4CACE,iBACA,CAAA,KACA,CAAA,OACA,CAGA,sBAEA,CACA,eACA,CAAA,aA8BF,CAzCA,yBAqBI,QACA,CAAA,SACA,CAAA,aACA,CAAA,2BACA,CAGA,gBT1WA,CAAA,wBS4WA,CAAA,mBpBhWA,CAAA,+BoB2WJ,CAAA,cACE,UACA,CAAA,aACA,CAAA,SACA,CAAA,4BACA,CAAA,uBAAA,CAAA,oBAAA,CAAA,eALF,CAAA,oBAQI,SARJ,CAAA,0CAY8B,yDAZ9B,CAAA,sCAa8B,yDAb9B,CAAA,+BAc8B,yDAd9B,CAAA,gCAkBI,QAlBJ,CAAA,oCAsBI,UACA,CAAA,WACA,CAAA,kBT/YA,CAAA,wBSiZA,CAAA,QpBrYA,CAAA,kBSFE,CAAA,8GW2YF,CX3YE,sGW2YF,CAAA,uBAAA,CAAA,eXvYE,CAAA,uCWyWN,oCXxWQ,uBWwWR,CXxWQ,eWwWR,CAAA,CAAA,2CTvXI,wBSuXJ,CAAA,6CAsCI,UACA,CAAA,YACA,CAAA,iBACA,CAAA,cACA,CAAA,wBACA,CAAA,wBpBtZA,CAAA,kBoB2WJ,CAAA,gCAiDI,UACA,CAAA,WTzaA,CAAA,wBS2aA,CAAA,QpB/ZA,CAAA,kBSFE,CAAA,2GWqaF,CXraE,sGWqaF,CAAA,oBAAA,CAAA,eXjaE,CAAA,uCWyWN,gCXxWQ,oBWwWR,CXxWQ,eWwWR,CAAA,CAAA,uCTvXI,wBSuXJ,CAAA,gCAgEI,UACA,CAAA,YACA,CAAA,iBACA,CAAA,cACA,CAAA,wBACA,CAAA,wBpBhbA,CAAA,kBoB2WJ,CAAA,yBA2EI,UACA,CAAA,WACA,CAAA,YACA,CAAA,kBACA,CAAA,iBTtcA,CAAA,wBSwcA,CAAA,QpB5bA,CAAA,kBSFE,CAAA,0GWkcF,CXlcE,sGWkcF,CAAA,eX9bE,CAAA,uCWyWN,yBXxWQ,mBWwWR,CXxWQ,eWwWR,CAAA,CAAA,gCTvXI,wBSuXJ,CAAA,yBA6FI,UACA,CAAA,YACA,CAAA,iBACA,CAAA,cACA,CAAA,4BACA,CAAA,wBACA,CAAA,kBAnGJ,CAAA,4DAwGI,wBpBndA,CAAA,kBoB2WJ,CAAA,8BA6GI,iBA7GJ,CAAA,6CAoHM,wBApHN,CAAA,sDAwHM,cAxHN,CAAA,yCA4HM,wBA5HN,CAAA,yCAgIM,cAhIN,CAAA,kCAoIM,wBAKN,CAAA,+DXtfM,sGAIA,CAAA,uCWkfN,+DXjfQ,eYhBR,CAAA,CAAA,KACE,YACA,CAAA,cACA,CAAA,cACA,CAAA,eACA,CAAA,eAGF,CAAA,UACE,aACA,CAAA,kB1BCA,CAAA,gC0BGE,oBANJ,CAAA,mBAWI,aACA,CAAA,mBACA,CAAA,cAQJ,CAAA,UACE,+BADF,CAAA,oBAII,kBAJJ,CAAA,oBAQI,4BrBfA,CAAA,6BACA,CAAA,8BLZF,CAAA,oD0B8BI,oCAZN,CAAA,6BAgBM,aACA,CAAA,4BACA,CAAA,wB9BmnIN,CAAA,8D8B7mII,aACA,CAAA,qBACA,CAAA,iCA1BJ,CAAA,yBA+BI,erBtCA,CAAA,wBACA,CAAA,yBqBgDJ,CAAA,qBrB1DI,oBqB0DJ,CAAA,uDAOI,UACA,CAAA,wB9B0mIJ,CAAA,wC8B9lII,aACA,CAAA,iB9BomIJ,CAAA,kD8B7lII,YACA,CAAA,WACA,CAAA,iBASJ,CAAA,uBAEI,YAFJ,CAAA,qBAKI,aCvGJ,CAAA,QACE,iBACA,CAIA,kBANF,CAAA,4IAEE,YACA,CAAA,cACA,CAAA,kBACA,CAAA,6BA6BF,CAAA,cACE,oBACA,CAAA,oBACA,CAAA,uBACA,CAAA,iB7BwEI,CAAA,iB6BtEJ,CAAA,mBACA,CAAA,kB3B1CA,CAAA,wC2B6CE,oBASJ,CAAA,YACE,YACA,CAAA,qBACA,CAAA,cACA,CAAA,eACA,CAAA,eALF,CAAA,sBAQI,eACA,CAAA,cATJ,CAAA,2BAaI,eACA,CAAA,UASJ,CAAA,aACE,oBACA,CAAA,iBACA,CAAA,oBAYF,CAAA,iBACE,eACA,CAAA,WAGA,CAAA,kBAIF,CAAA,gBACE,qB7BSI,CAAA,iB6BPJ,CAAA,aACA,CAAA,4BACA,CAAA,4BtBxGE,CAAA,oBLFF,CAAA,4C2B8GE,oBAMJ,CAAA,qBACE,oBACA,CAAA,WACA,CAAA,YACA,CAAA,qBACA,CAAA,UACA,CAAA,wBACA,CAAA,yBlBlEE,CAAA,4BkB4EC,gMAGK,eACA,CAAA,clB7FN,CAAA,CAAA,yBkByFA,kBAoBI,oBACA,CAAA,0BArBH,CAAA,8BAwBK,kBAxBL,CAAA,6CA2BO,iBA3BP,CAAA,wCA+BO,mBACA,CAAA,kBAhCP,CAAA,gMAsCK,gBAtCL,CAAA,mCAqDK,sBAGA,CAAA,eAxDL,CAAA,kCA4DK,YlBxIN,CAAA,CAAA,4BkB4EC,gMAGK,eACA,CAAA,clB7FN,CAAA,CAAA,yBkByFA,kBAoBI,oBACA,CAAA,0BArBH,CAAA,8BAwBK,kBAxBL,CAAA,6CA2BO,iBA3BP,CAAA,wCA+BO,mBACA,CAAA,kBAhCP,CAAA,gMAsCK,gBAtCL,CAAA,mCAqDK,sBAGA,CAAA,eAxDL,CAAA,kCA4DK,YlBxIN,CAAA,CAAA,4BkB4EC,gMAGK,eACA,CAAA,clB7FN,CAAA,CAAA,yBkByFA,kBAoBI,oBACA,CAAA,0BArBH,CAAA,8BAwBK,kBAxBL,CAAA,6CA2BO,iBA3BP,CAAA,wCA+BO,mBACA,CAAA,kBAhCP,CAAA,gMAsCK,gBAtCL,CAAA,mCAqDK,sBAGA,CAAA,eAxDL,CAAA,kCA4DK,YlBxIN,CAAA,CAAA,6BkB4EC,gMAGK,eACA,CAAA,clB7FN,CAAA,CAAA,0BkByFA,kBAoBI,oBACA,CAAA,0BArBH,CAAA,8BAwBK,kBAxBL,CAAA,6CA2BO,iBA3BP,CAAA,wCA+BO,mBACA,CAAA,kBAhCP,CAAA,gMAsCK,gBAtCL,CAAA,mCAqDK,sBAGA,CAAA,eAxDL,CAAA,kCA4DK,YAjEV,CAAA,CAAA,eAyBQ,oBACA,CAAA,0BA1BR,CAAA,8KAQU,eACA,CAAA,cATV,CAAA,2BA6BU,kBA7BV,CAAA,0CAgCY,iBAhCZ,CAAA,qCAoCY,mBACA,CAAA,kBArCZ,CAAA,8KA2CU,gBA3CV,CAAA,gCA0DU,sBAGA,CAAA,eA7DV,CAAA,+BAiEU,YAaV,C3B9ME,gG2BmNI,oBALN,CAAA,oCAWM,oB3BzNJ,CAAA,oF2B4NM,oBAdR,CAAA,6CAkBQ,oB/B+yIR,CAAA,0K+BvyIM,oBA1BN,CAAA,8BA+BI,oBACA,CAAA,2BAhCJ,CAAA,mCAoCI,wQApCJ,CAAA,2BAwCI,oBAxCJ,C3B9ME,mG2B2PM,oBAOR,C3BlQE,6F2BuQI,UALN,CAAA,mCAWM,wB3B7QJ,CAAA,kF2BgRM,yBAdR,CAAA,4CAkBQ,yB/B2yIR,CAAA,sK+BnyIM,UA1BN,CAAA,6BA+BI,wBACA,CAAA,+BAhCJ,CAAA,kCAoCI,8QApCJ,CAAA,0BAwCI,wBAxCJ,C3BlQE,gG2B+SM,UC3TR,CAAA,MACE,iBACA,CAAA,YACA,CAAA,qBACA,CAAA,WAEA,CAAA,oBACA,CAAA,qBACA,CAAA,0BACA,CAAA,iCvBKE,CAAA,oBuBdJ,CAAA,SAaI,cACA,CAAA,aAdJ,CAAA,kBAkBI,kBACA,CAAA,qBAnBJ,CAAA,8BAsBM,kBvBCF,CAAA,yCACA,CAAA,0CuBxBJ,CAAA,6BA2BM,qBvBUF,CAAA,6CACA,CAAA,4CuBtCJ,CAAA,8DAoCI,YAIJ,CAAA,WAGE,aAGA,CAAA,cACA,CAAA,eAIF,CAAA,YACE,oBAGF,CAAA,eACE,mBAIF,CAAA,qCAHE,e5BjDA,CAAA,iB4B0DE,oBAFJ,CAAA,sBAMI,mBAQJ,CAAA,aACE,sBACA,CAAA,eAEA,CAAA,gCACA,CAAA,wCALF,CAAA,yBvBhEI,uDuB4EJ,CAAA,aACE,sBAEA,CAAA,gCACA,CAAA,qCAJF,CAAA,wBvB5EI,uDuB4FJ,CAAA,kBAEE,qBACA,CACA,eAGF,CAAA,qCANE,qBACA,CACA,oBAUF,CAAA,kBACE,iBACA,CAAA,KACA,CAAA,OACA,CAAA,QACA,CAAA,MACA,CAAA,evB/GE,CAAA,gCuBmHJ,CAAA,yCAGE,aACA,CAAA,UAGF,CAAA,wBvBjHI,yCACA,CAAA,0CuBqHJ,CAAA,2BvBxGI,6CACA,CAAA,4CuB+GJ,CAAA,iBAEI,kBnB/FA,CAAA,yBmB6FJ,WAMI,YACA,CAAA,kBACA,CAAA,kBACA,CAAA,iBATJ,CAAA,iBAaM,QACA,CAAA,iBACA,CAAA,eACA,CAAA,gBAUN,CAAA,CAAA,kBAII,kBnB3HA,CAAA,yBmBuHJ,YAQI,YACA,CAAA,kBATJ,CAAA,kBAcM,QACA,CAAA,eAfN,CAAA,wBAkBQ,aACA,CAAA,aAnBR,CAAA,mCvBjJI,yBACA,CAAA,4BT0vJF,CAAA,iGgC5kJU,yBhCglJV,CAAA,oGgC3kJU,4BAnCZ,CAAA,oCvBnII,wBACA,CAAA,2BTwvJF,CAAA,mGgCzkJU,wBhC6kJV,CAAA,sGgCxkJU,2BAaZ,CAAA,CAAA,oBAEI,oBnBxLA,CAAA,yBmBsLJ,cAMI,sBAAA,CAAA,cACA,CAAA,0BAAA,CAAA,uBAAA,CAAA,uBACA,CADA,kBACA,CAAA,SACA,CAAA,QATJ,CAAA,oBAYM,oBACA,CAAA,UAUN,CAAA,CAAA,WACE,oBADF,CAAA,iBAII,eAJJ,CAAA,oCAOM,evBvOF,CAAA,4BACA,CAAA,2BuB+NJ,CAAA,qCvB9OI,wBACA,CAAA,yBuB6OJ,CAAA,8BvBvPI,euBwQE,CAAA,kBC1RN,CAAA,YAEE,cACA,CAAA,mBACA,CAAA,kBAEA,CAAA,eACA,CAAA,wBxBWE,CAAA,oBwBPJ,CAAA,6BAVE,YAUF,CAAA,kCAKI,kBALJ,CAAA,yCAQM,oBACA,CAAA,mBACA,CAAA,aACA,CAAA,WAXN,CAAA,+CAsBI,yBAAA,CAIA,oBA1BJ,CAAA,wBA8BI,aCzCJ,CAAA,YACE,Y5BGA,CAAA,cACA,CAAA,eGaE,CAAA,oByBZJ,CAAA,WACE,iBACA,CAAA,aACA,CAAA,oBACA,CAAA,gBACA,CAAA,gBACA,CAAA,aAEA,CAAA,qBACA,CAAA,wBATF,CAAA,iBAYI,SACA,CAAA,aACA,CAAA,oBACA,CAAA,wBACA,CAAA,oBAhBJ,CAAA,iBAoBI,SACA,CAAA,SACA,CAAA,0CAIJ,CAAA,kCAGM,azBaF,CAAA,6BACA,CAAA,gCyBjBJ,CAAA,iCzBEI,8BACA,CAAA,iCyBHJ,CAAA,6BAcI,SACA,CAAA,UACA,CAAA,wBACA,CAAA,oBAjBJ,CAAA,+BAqBI,aACA,CAAA,mBAEA,CAAA,WACA,CAAA,qBACA,CAAA,oBCvDF,CAAA,0BACE,qBjC2HE,CAAA,iBiCzHF,CAAA,eAKE,CAAA,iD1BqCF,4BACA,CAAA,+B0BjCE,CAAA,gD1BkBF,6BACA,CAAA,gC0BhCF,CAAA,0BACE,oBjC2HE,CAAA,iBiCzHF,CAAA,eAKE,CAAA,iD1BqCF,4BACA,CAAA,+B0BjCE,CAAA,gD1BkBF,6BACA,CAAA,gC2B9BJ,CAAA,OACE,oBACA,CAAA,kBlCiEE,CAAA,akC/DF,CAAA,eACA,CAAA,aACA,CAAA,iBACA,CAAA,kBACA,CAAA,uB3BKE,CAAA,oBSFE,CAAA,6HAIA,CAAA,uCkBfN,OlBgBQ,edLN,CAAA,CAAA,4BgCGI,oBAdN,CAAA,aAoBI,YAKJ,CAAA,YACE,iBACA,CAAA,QAOF,CAAA,YACE,kBACA,CAAA,iB3BvBE,CAAA,mB2BgCF,CAAA,eCjDA,UACA,CAAA,wBjCcA,CAAA,4CiCVI,UACA,CAAA,wBAHI,CAAA,4CAQJ,SACA,CAAA,yCDqCJ,CAAA,iBCjDA,UACA,CAAA,wBjCcA,CAAA,gDiCVI,UACA,CAAA,wBAHI,CAAA,gDAQJ,SACA,CAAA,2CDqCJ,CAAA,eCjDA,UACA,CAAA,wBjCcA,CAAA,4CiCVI,UACA,CAAA,wBAHI,CAAA,4CAQJ,SACA,CAAA,yCDqCJ,CAAA,YCjDA,UACA,CAAA,wBjCcA,CAAA,sCiCVI,UACA,CAAA,wBAHI,CAAA,sCAQJ,SACA,CAAA,0CDqCJ,CAAA,eCjDA,aACA,CAAA,wBjCcA,CAAA,4CiCVI,aACA,CAAA,wBAHI,CAAA,4CAQJ,SACA,CAAA,yCDqCJ,CAAA,cCjDA,UACA,CAAA,wBjCcA,CAAA,0CiCVI,UACA,CAAA,wBAHI,CAAA,0CAQJ,SACA,CAAA,yCDqCJ,CAAA,aCjDA,aACA,CAAA,wBjCcA,CAAA,wCiCVI,aACA,CAAA,wBAHI,CAAA,wCAQJ,SACA,CAAA,2CDqCJ,CAAA,YCjDA,UACA,CAAA,wBjCcA,CAAA,sCiCVI,UACA,CAAA,wBAHI,CAAA,sCAQJ,SACA,CAAA,wCCbN,CAAA,WACE,iBACA,CAAA,kBAEA,CAAA,wB7BcE,CAAA,mBI0CA,CAAA,yByB5DJ,WAQI,iBAIJ,CAAA,CAAA,iBACE,eACA,CAAA,c7BIE,CAAA,e8BdJ,CAAA,OACE,iBACA,CAAA,sBACA,CAAA,kBACA,CAAA,4B9BUE,CAAA,oB8BLJ,CAAA,eAEE,aAIF,CAAA,YACE,eAQF,CAAA,mBACE,kBADF,CAAA,0BAKI,iBACA,CAAA,KACA,CAAA,OACA,CAAA,sBACA,CAAA,aAUF,CAAA,eC9CA,apBKE,CAAA,wBoBHF,CAAA,oBAEA,CAAA,kBACE,wBAGF,CAAA,2BACE,aDqCF,CAAA,iBC9CA,apBKE,CAAA,wBoBHF,CAAA,oBAEA,CAAA,oBACE,wBAGF,CAAA,6BACE,aDqCF,CAAA,eC9CA,apBKE,CAAA,wBoBHF,CAAA,oBAEA,CAAA,kBACE,wBAGF,CAAA,2BACE,aDqCF,CAAA,YC9CA,apBKE,CAAA,wBoBHF,CAAA,oBAEA,CAAA,eACE,wBAGF,CAAA,wBACE,aDqCF,CAAA,eC9CA,apBKE,CAAA,wBoBHF,CAAA,oBAEA,CAAA,kBACE,wBAGF,CAAA,2BACE,aDqCF,CAAA,cC9CA,apBKE,CAAA,wBoBHF,CAAA,oBAEA,CAAA,iBACE,wBAGF,CAAA,0BACE,aDqCF,CAAA,aC9CA,apBKE,CAAA,wBoBHF,CAAA,oBAEA,CAAA,gBACE,wBAGF,CAAA,yBACE,aDqCF,CAAA,YC9CA,apBKE,CAAA,wBoBHF,CAAA,oBAEA,CAAA,eACE,wBAGF,CAAA,wBACE,aCRF,CAAA,wCACE,GAAO,0BACP,CAAK,GAAA,uBAFP,CAAA,CAAA,gCACE,GAAO,0BACP,CAAK,GAAA,uBAIT,CAAA,CAAA,UAEE,WACA,CACA,avCmHI,CAAA,gBuCjHJ,CAAA,wBhCIE,CAAA,oBgCCJ,CAAA,wBAVE,YACA,CACA,evBSI,CuBDN,cAEE,qBACA,CAAA,sBACA,CACA,UACA,CAAA,iBACA,CAAA,kBACA,CAAA,wBvBXI,CAAA,yBAIA,CAAA,uCuBDN,cvBEQ,euBUR,CAAA,CAAA,sBrBYE,qKqBVA,CAAA,yBAIA,CAAA,uBACE,yDAAA,CAAA,iDAGE,CAAA,uCAJJ,uBAKM,sBAAA,CAAA,cC1CR,CAAA,CAAA,OACE,YACA,CAAA,sBAGF,CAAA,YACE,QCFF,CAAA,YACE,YACA,CAAA,qBAGA,CAAA,cACA,CAAA,elCQE,CAAA,oBkCEJ,CAAA,wBACE,UACA,CAAA,aACA,CAAA,kBvCPA,CAAA,4DuCWE,SACA,CAAA,aACA,CAAA,oBACA,CAAA,wBAVJ,CAAA,+BAcI,aACA,CAAA,wBASJ,CAAA,iBACE,iBACA,CAAA,aACA,CAAA,sBAGA,CAAA,qBACA,CAAA,iCAPF,CAAA,6BlCjBI,8BACA,CAAA,+BkCgBJ,CAAA,4BlCHI,kCACA,CAAA,iCkCEJ,CAAA,oDAmBI,aACA,CAAA,mBACA,CAAA,qBArBJ,CAAA,wBA0BI,SACA,CAAA,UACA,CAAA,wBACA,CAAA,oBA7BJ,CAAA,kCAiCI,kBAjCJ,CAAA,yCAoCM,eACA,CAAA,oBAcF,CAAA,uBACE,kBADF,CAAA,oDlCtBA,gCAZA,CAAA,yBkCkCA,CAAA,mDlClCA,8BAYA,CAAA,2BkCsBA,CAAA,+CAeM,YAfN,CAAA,yDAmBM,oBACA,CAAA,mBApBN,CAAA,gEAuBQ,gBACA,CAAA,qB9B3DR,CAAA,yB8BmCA,0BACE,kBADF,CAAA,uDlCtBA,gCAZA,CAAA,yBkCkCA,CAAA,sDlClCA,8BAYA,CAAA,2BkCsBA,CAAA,kDAeM,YAfN,CAAA,4DAmBM,oBACA,CAAA,mBApBN,CAAA,mEAuBQ,gBACA,CAAA,qB9B3DR,CAAA,CAAA,yB8BmCA,0BACE,kBADF,CAAA,uDlCtBA,gCAZA,CAAA,yBkCkCA,CAAA,sDlClCA,8BAYA,CAAA,2BkCsBA,CAAA,kDAeM,YAfN,CAAA,4DAmBM,oBACA,CAAA,mBApBN,CAAA,mEAuBQ,gBACA,CAAA,qB9B3DR,CAAA,CAAA,yB8BmCA,0BACE,kBADF,CAAA,uDlCtBA,gCAZA,CAAA,yBkCkCA,CAAA,sDlClCA,8BAYA,CAAA,2BkCsBA,CAAA,kDAeM,YAfN,CAAA,4DAmBM,oBACA,CAAA,mBApBN,CAAA,mEAuBQ,gBACA,CAAA,qB9B3DR,CAAA,CAAA,0B8BmCA,0BACE,kBADF,CAAA,uDlCtBA,gCAZA,CAAA,yBkCkCA,CAAA,sDlClCA,8BAYA,CAAA,2BkCsBA,CAAA,kDAeM,YAfN,CAAA,4DAmBM,oBACA,CAAA,mBApBN,CAAA,mEAuBQ,gBACA,CAAA,qBAcZ,CAAA,CAAA,kBlCnHI,ekCmHJ,CAAA,mCAII,oBAJJ,CAAA,8CAOM,qBCzIJ,CAAA,yBACE,aACA,CAAA,wBxCWF,CAAA,4GwCPM,aACA,CAAA,wBAPN,CAAA,uDAWM,UACA,CAAA,wBACA,CAAA,oBAbN,CAAA,2BACE,aACA,CAAA,wBxCWF,CAAA,gHwCPM,aACA,CAAA,wBAPN,CAAA,yDAWM,UACA,CAAA,wBACA,CAAA,oBAbN,CAAA,yBACE,aACA,CAAA,wBxCWF,CAAA,4GwCPM,aACA,CAAA,wBAPN,CAAA,uDAWM,UACA,CAAA,wBACA,CAAA,oBAbN,CAAA,sBACE,aACA,CAAA,wBxCWF,CAAA,sGwCPM,aACA,CAAA,wBAPN,CAAA,oDAWM,UACA,CAAA,wBACA,CAAA,oBAbN,CAAA,yBACE,aACA,CAAA,wBxCWF,CAAA,4GwCPM,aACA,CAAA,wBAPN,CAAA,uDAWM,UACA,CAAA,wBACA,CAAA,oBAbN,CAAA,wBACE,aACA,CAAA,wBxCWF,CAAA,0GwCPM,aACA,CAAA,wBAPN,CAAA,sDAWM,UACA,CAAA,wBACA,CAAA,oBAbN,CAAA,uBACE,aACA,CAAA,wBxCWF,CAAA,wGwCPM,aACA,CAAA,wBAPN,CAAA,qDAWM,UACA,CAAA,wBACA,CAAA,oBAbN,CAAA,sBACE,aACA,CAAA,wBxCWF,CAAA,sGwCPM,aACA,CAAA,wBAPN,CAAA,oDAWM,UACA,CAAA,wBACA,CAAA,oBChBR,CAAA,OACE,W3C8HI,CAAA,gB2C5HJ,CAAA,eACA,CAAA,aACA,CAAA,UACA,CAAA,wBACA,CAAA,UzCKA,CAAA,ayCDE,UACA,CAAA,oBzCIF,CAAA,sFyCCI,WAWN,CAAA,aACE,SACA,CAAA,4BACA,CAAA,QAMF,CAAA,iBACE,mBCtCF,CAAA,OAGE,gBACA,CAAA,e5C2HI,CAAA,iB4CxHJ,CAAA,oCACA,CAAA,2BACA,CAAA,+BACA,CAAA,yCACA,CAAA,SrCOE,CAAA,oBqClBJ,CAAA,wBAeI,oBAfJ,CAAA,eAmBI,SAnBJ,CAAA,YAuBI,aACA,CAAA,SAxBJ,CAAA,YA4BI,YAIJ,CAAA,cACE,YACA,CAAA,kBACA,CAAA,qBACA,CAAA,aACA,CAAA,oCACA,CAAA,2BACA,CAAA,uCrCZE,CAAA,yCACA,CAAA,0CqCeJ,CAAA,YACE,cCtCF,CAAA,YAEE,eAFF,CAAA,mBAKI,iBACA,CAAA,eAKJ,CAAA,OACE,cACA,CAAA,KACA,CAAA,MACA,CAAA,YACA,CAAA,YACA,CAAA,UACA,CAAA,WACA,CAAA,eAGA,CAAA,SAOF,CAAA,cACE,iBACA,CAAA,UACA,CAAA,YAEA,CAAA,mBAGA,CAAA,0B7B3BI,iCAAA,C6B6BF,2B7BzBE,CAAA,uC6BuBJ,0B7BtBM,e6B0BN,CAAA,CAAA,0BACE,cAIF,CAAA,kCACE,qBAIJ,CAAA,yBACE,YACA,CAAA,4BAFF,CAAA,wCAKI,6BACA,CAAA,e/CixLJ,CAAA,8E+C5wLI,aAXJ,CAAA,qCAeI,eAIJ,CAAA,uBACE,YACA,CAAA,kBACA,CAAA,4BAHF,CAAA,8BAOI,aACA,CAAA,yBACA,CAAA,0BAAA,CAAA,uBAAA,CAAA,kBACA,CAAA,UAVJ,CAAA,+CAeI,qBACA,CAAA,sBACA,CAAA,WAjBJ,CAAA,8DAoBM,eApBN,CAAA,sDAwBM,YAMN,CAAA,eACE,iBACA,CAAA,YACA,CAAA,qBACA,CAAA,UAGA,CAAA,mBACA,CAAA,qBACA,CAAA,2BACA,CAAA,+BtClGE,CAAA,mBsCsGF,CAAA,SAIF,CAAA,gBACE,cACA,CAAA,KACA,CAAA,MACA,CAAA,YACA,CAAA,WACA,CAAA,YACA,CAAA,qBAPF,CAAA,qBAUW,SAVX,CAAA,qBAWW,UAKX,CAAA,cACE,YACA,CAAA,sBACA,CAAA,6BACA,CAAA,YACA,CAAA,+BtCtHE,CAAA,wCACA,CAAA,yCsCgHJ,CAAA,qBASI,YAEA,CAAA,6BAKJ,CAAA,aACE,eACA,CAAA,eAKF,CAAA,YACE,iBAGA,CAAA,aACA,CAAA,YAIF,CAAA,cACE,YACA,CAAA,cACA,CAAA,kBACA,CAAA,wBACA,CAAA,cACA,CAAA,4BtCzIE,CAAA,4CACA,CAAA,2CsCkIJ,CAAA,gBAaI,aAKJ,CAAA,yBACE,iBACA,CAAA,WACA,CAAA,UACA,CAAA,WACA,CAAA,elCvIE,CAAA,yBkCzBJ,cAuKI,eACA,CAAA,mBAlJJ,CAAA,yBAsJI,8BAtJJ,CAAA,wCAyJM,+BAtIN,CAAA,uBA2II,8BA3IJ,CAAA,8BA8IM,2BACA,CAAA,0BAAA,CAAA,uBAAA,CAAA,kBAQJ,CAAA,UAAY,elCvKV,CAAA,CAAA,yBkC2KF,oBAEE,elC7KA,CAAA,CAAA,0BkCkLF,UAAY,gBC7Od,CAAA,CAAA,SACE,iBACA,CAAA,YACA,CAAA,aACA,CAAA,QCJA,CAAA,sLAEA,CAAA,iBACA,CAAA,eACA,CAAA,eACA,CAAA,eACA,CAAA,gBACA,CAAA,oBACA,CAAA,gBACA,CAAA,mBACA,CAAA,qBACA,CAAA,iBACA,CAAA,mBACA,CAAA,kBACA,CAAA,e/CgHI,CAAA,iB8CpHJ,CAAA,oBACA,CAAA,SAXF,CAAA,cAaW,UAbX,CAAA,gBAgBI,iBACA,CAAA,aACA,CAAA,WACA,CAAA,YAnBJ,CAAA,uBAsBM,iBACA,CAAA,UACA,CAAA,wBACA,CAAA,kBAKN,CAAA,mDACE,eADF,CAAA,iEAII,QAJJ,CAAA,+EAOM,KACA,CAAA,0BACA,CAAA,qBAKN,CAAA,uDACE,eADF,CAAA,qEAII,MACA,CAAA,WACA,CAAA,YANJ,CAAA,mFASM,OACA,CAAA,gCACA,CAAA,uBAKN,CAAA,yDACE,eADF,CAAA,uEAII,KAJJ,CAAA,qFAOM,QACA,CAAA,0BACA,CAAA,wBAKN,CAAA,qDACE,eADF,CAAA,mEAII,OACA,CAAA,WACA,CAAA,YANJ,CAAA,iFASM,MACA,CAAA,gCACA,CAAA,sBAqBN,CAAA,eACE,eACA,CAAA,oBACA,CAAA,UACA,CAAA,iBACA,CAAA,qBvC9FE,CAAA,oByClBJ,CAAA,SAEE,KACA,CAAA,MACA,CAAA,YACA,CACA,eDLA,CAAA,sLAEA,CAAA,iBACA,CAAA,eACA,CAAA,eACA,CAAA,eACA,CAAA,gBACA,CAAA,oBACA,CAAA,gBACA,CAAA,mBACA,CAAA,qBACA,CAAA,iBACA,CAAA,mBACA,CAAA,kBACA,CAAA,e/CgHI,CAAA,iBgDnHJ,CAAA,oBACA,CAAA,qBACA,CAAA,2BACA,CAAA,+BzCGE,CAAA,mByClBJ,CAAA,yBACE,iBACA,CAGA,aALF,CAAA,gBAsBI,UACA,CAAA,YACA,CAAA,cAxBJ,CAAA,6CA4BM,iBACA,CAAA,aACA,CAAA,UACA,CAAA,wBACA,CAAA,kBAKN,CAAA,mDACE,mBADF,CAAA,iEAII,yBAJJ,CAAA,+EAOM,QACA,CAAA,0BACA,CAAA,gCATN,CAAA,6EAaM,UACA,CAAA,0BACA,CAAA,qBAKN,CAAA,uDACE,iBADF,CAAA,qEAII,uBACA,CAAA,WACA,CAAA,WACA,CAAA,cAPJ,CAAA,mFAUM,MACA,CAAA,gCACA,CAAA,kCAZN,CAAA,iFAgBM,QACA,CAAA,gCACA,CAAA,uBAKN,CAAA,yDACE,gBADF,CAAA,uEAII,sBAJJ,CAAA,qFAOM,KACA,CAAA,0BACA,CAAA,mCATN,CAAA,mFAaM,OACA,CAAA,0BACA,CAAA,wBAfN,CAAA,uGAqBI,iBACA,CAAA,KACA,CAAA,QACA,CAAA,aACA,CAAA,UACA,CAAA,kBACA,CAAA,UACA,CAAA,+BAIJ,CAAA,qDACE,kBADF,CAAA,mEAII,wBACA,CAAA,WACA,CAAA,WACA,CAAA,cAPJ,CAAA,iFAUM,OACA,CAAA,gCACA,CAAA,iCAZN,CAAA,+EAgBM,SACA,CAAA,gCACA,CAAA,sBAsBN,CAAA,gBACE,oBACA,CAAA,ehD3BI,CAAA,cgD8BJ,CAAA,wBACA,CAAA,+BzCnIE,CAAA,wCACA,CAAA,yCyC4HJ,CAAA,sBAUI,YAIJ,CAAA,cACE,oBACA,CAAA,aC3JF,CAAA,UACE,iBAGF,CAAA,wBACE,kBAGF,CAAA,gBACE,iBACA,CAAA,UACA,CAAA,eCvBA,CAAA,sBACE,aACA,CAAA,UACA,CAAA,UDwBJ,CAAA,eACE,iBACA,CAAA,YACA,CAAA,UACA,CAAA,UACA,CAAA,kBACA,CAAA,kCAAA,CAAA,0BjClBI,CAAA,oCAIA,CAAA,uCiCQN,ejCPQ,elB8xMR,CAAA,CAAA,8DmD1wME,anDgxMF,CAAA,yEmD3wME,0BnDixMF,CAAA,yEmD5wME,2BAQF,CAAA,8BAEI,SACA,CAAA,2BACA,CAAA,cnD6wMJ,CAAA,kJmDvwMI,SACA,CAAA,SAXJ,CAAA,qFAgBI,SACA,CAAA,SjC5DE,CAAA,yBAIA,CAAA,uCiCuCN,qFjCtCQ,elB40MR,CAAA,CAAA,8CmDzwME,iBACA,CAAA,KACA,CAAA,QACA,CAAA,SAEA,CAAA,YACA,CAAA,kBACA,CAAA,sBACA,CAAA,SACA,CAAA,UACA,CAAA,iBACA,CAAA,UjCnFI,CAAA,4BAIA,CAAA,uClBi2MJ,8CkBh2MM,elBu2MR,CAAA,CAAA,oHmDpxMI,UACA,CAAA,oBACA,CAAA,SACA,CAAA,UAGJ,CAAA,uBACE,MAKF,CAAA,uBACE,OnDuxMF,CAAA,wDmD9wME,oBACA,CAAA,UACA,CAAA,WACA,CAAA,kCAEF,CAAA,4BACE,iNAEF,CAAA,4BACE,kNASF,CAAA,qBACE,iBACA,CAAA,OACA,CAAA,QACA,CAAA,MACA,CAAA,UACA,CAAA,YACA,CAAA,sBACA,CAAA,cAEA,CAAA,gBACA,CAAA,eACA,CAAA,eAZF,CAAA,wBAeI,sBACA,CAAA,aACA,CAAA,UACA,CAAA,UACA,CAAA,gBACA,CAAA,eACA,CAAA,kBACA,CAAA,cACA,CAAA,qBACA,CAAA,2BAEA,CAAA,iCACA,CAAA,oCACA,CAAA,UjC5JE,CAAA,2BAIA,CAAA,uCiC4HN,wBjC3HQ,eiC2HR,CAAA,CAAA,6BAiCI,SASJ,CAAA,kBACE,iBACA,CAAA,SACA,CAAA,WACA,CAAA,QACA,CAAA,UACA,CAAA,gBACA,CAAA,mBACA,CAAA,UACA,CAAA,iBE/LF,CAAA,kCACO,GAAA,uBADP,CAAA,CAAA,0BACO,GAAA,uBAGP,CAAA,CAAA,gBACE,oBACA,CAAA,UACA,CAAA,WACA,CAAA,0BACA,CACA,kBAEA,CAFA,oCAEA,CAAA,iBACA,CAAA,qDAAA,CAAA,6CAGF,CAAA,mBACE,UACA,CAAA,WACA,CAAA,iBAOF,CAAA,gCAEI,GAAA,kBAEF,CAAA,IACE,SACA,CAAA,cANJ,CAAA,CAAA,wBAEI,GAAA,kBAEF,CAAA,IACE,SACA,CAAA,cAIJ,CAAA,CAAA,cACE,oBACA,CAAA,UACA,CAAA,WACA,CAAA,0BACA,CAAA,6BAEA,CAAA,iBACA,CAAA,SACA,CAAA,mDAAA,CAAA,2CAGF,CAAA,iBACE,UACA,CAAA,WCpDF,CAAA,gBAAqB,iCACrB,CAAA,WAAqB,4BACrB,CAAA,cAAqB,+BACrB,CAAA,cAAqB,+BACrB,CAAA,mBAAqB,oCACrB,CAAA,gBAAqB,iCCFnB,CAAA,YACE,kCnDUF,CAAA,sFmDLI,kCANJ,CAAA,cACE,kCnDUF,CAAA,8FmDLI,kCANJ,CAAA,YACE,kCnDUF,CAAA,sFmDLI,kCANJ,CAAA,SACE,kCnDUF,CAAA,0EmDLI,kCANJ,CAAA,YACE,kCnDUF,CAAA,sFmDLI,kCANJ,CAAA,WACE,kCnDUF,CAAA,kFmDLI,kCANJ,CAAA,UACE,kCnDUF,CAAA,8EmDLI,kCANJ,CAAA,SACE,kCnDUF,CAAA,0EmDLI,kCCCN,CAAA,UACE,+BAGF,CAAA,gBACE,sCCXF,CAAA,QAAkB,kCAClB,CAAA,YAAkB,sCAClB,CAAA,cAAkB,wCAClB,CAAA,eAAkB,yCAClB,CAAA,aAAkB,uCAElB,CAAA,UAAmB,kBACnB,CAAA,cAAmB,sBACnB,CAAA,gBAAmB,wBACnB,CAAA,iBAAmB,yBACnB,CAAA,eAAmB,uBAGjB,CAAA,gBACE,8BADF,CAAA,kBACE,8BADF,CAAA,gBACE,8BADF,CAAA,aACE,8BADF,CAAA,gBACE,8BADF,CAAA,eACE,8BADF,CAAA,cACE,8BADF,CAAA,aACE,8BAIJ,CAAA,cACE,2BAOF,CAAA,YACE,6BAGF,CAAA,SACE,8BAGF,CAAA,aACE,uCAIF,CAAA,4BAHE,wCAQF,CAAA,+BAHE,2CAQF,CAAA,8BAHE,0CAQF,CALA,cACE,uCAIF,CAAA,YACE,6BAGF,CAAA,gBACE,2BAGF,CAAA,cACE,6BAGF,CAAA,WACE,yBLxEA,CAAA,gBACE,aACA,CAAA,UACA,CAAA,UMOE,CAAA,QAAwB,sBAAxB,CAAA,UAAwB,wBAAxB,CAAA,gBAAwB,8BAAxB,CAAA,SAAwB,uBAAxB,CAAA,SAAwB,uBAAxB,CAAA,aAAwB,2BAAxB,CAAA,cAAwB,4BAAxB,CAAA,QAAwB,sBAAxB,CAAA,eAAwB,6B7CiD1B,CAAA,yB6CjDE,WAAwB,sBAAxB,CAAA,aAAwB,wBAAxB,CAAA,mBAAwB,8BAAxB,CAAA,YAAwB,uBAAxB,CAAA,YAAwB,uBAAxB,CAAA,gBAAwB,2BAAxB,CAAA,iBAAwB,4BAAxB,CAAA,WAAwB,sBAAxB,CAAA,kBAAwB,6B7CiD1B,CAAA,CAAA,yB6CjDE,WAAwB,sBAAxB,CAAA,aAAwB,wBAAxB,CAAA,mBAAwB,8BAAxB,CAAA,YAAwB,uBAAxB,CAAA,YAAwB,uBAAxB,CAAA,gBAAwB,2BAAxB,CAAA,iBAAwB,4BAAxB,CAAA,WAAwB,sBAAxB,CAAA,kBAAwB,6B7CiD1B,CAAA,CAAA,yB6CjDE,WAAwB,sBAAxB,CAAA,aAAwB,wBAAxB,CAAA,mBAAwB,8BAAxB,CAAA,YAAwB,uBAAxB,CAAA,YAAwB,uBAAxB,CAAA,gBAAwB,2BAAxB,CAAA,iBAAwB,4BAAxB,CAAA,WAAwB,sBAAxB,CAAA,kBAAwB,6B7CiD1B,CAAA,CAAA,0B6CjDE,WAAwB,sBAAxB,CAAA,aAAwB,wBAAxB,CAAA,mBAAwB,8BAAxB,CAAA,YAAwB,uBAAxB,CAAA,YAAwB,uBAAxB,CAAA,gBAAwB,2BAAxB,CAAA,iBAAwB,4BAAxB,CAAA,WAAwB,sBAAxB,CAAA,kBAAwB,6BAU9B,CAAA,CAAA,aAEI,cAAqB,sBAArB,CAAA,gBAAqB,wBAArB,CAAA,sBAAqB,8BAArB,CAAA,eAAqB,uBAArB,CAAA,eAAqB,uBAArB,CAAA,mBAAqB,2BAArB,CAAA,oBAAqB,4BAArB,CAAA,cAAqB,sBAArB,CAAA,qBAAqB,6BCrBzB,CAAA,CAAA,kBACE,iBACA,CAAA,aACA,CAAA,UACA,CAAA,SACA,CAAA,eALF,CAAA,yBAQI,aACA,CAAA,UATJ,CAAA,2IAiBI,iBACA,CAAA,KACA,CAAA,QACA,CAAA,MACA,CAAA,UACA,CAAA,WACA,CAAA,QAQF,CAAA,+BAEI,sBAFJ,CAAA,+BAEI,kBAFJ,CAAA,8BAEI,eAFJ,CAAA,8BAEI,gBCzBF,CAAA,UAAgC,4BAChC,CAAA,aAAgC,+BAChC,CAAA,kBAAgC,oCAChC,CAAA,qBAAgC,uCAEhC,CAAA,WAA8B,wBAC9B,CAAA,aAA8B,0BAC9B,CAAA,mBAA8B,gCAC9B,CAAA,WAA8B,uBAC9B,CAAA,aAA8B,qBAC9B,CAAA,aAA8B,qBAC9B,CAAA,eAA8B,uBAC9B,CAAA,eAA8B,uBAE9B,CAAA,uBAAoC,oCACpC,CAAA,qBAAoC,kCACpC,CAAA,wBAAoC,gCACpC,CAAA,yBAAoC,uCACpC,CAAA,wBAAoC,sCAEpC,CAAA,mBAAiC,gCACjC,CAAA,iBAAiC,8BACjC,CAAA,oBAAiC,4BACjC,CAAA,sBAAiC,8BACjC,CAAA,qBAAiC,6BAEjC,CAAA,qBAAkC,kCAClC,CAAA,mBAAkC,gCAClC,CAAA,sBAAkC,8BAClC,CAAA,uBAAkC,qCAClC,CAAA,sBAAkC,oCAClC,CAAA,uBAAkC,+BAElC,CAAA,iBAAgC,yBAChC,CAAA,kBAAgC,+BAChC,CAAA,gBAAgC,6BAChC,CAAA,mBAAgC,2BAChC,CAAA,qBAAgC,6BAChC,CAAA,oBAAgC,4B/CYhC,CAAA,yB+ClDA,aAAgC,4BAChC,CAAA,gBAAgC,+BAChC,CAAA,qBAAgC,oCAChC,CAAA,wBAAgC,uCAEhC,CAAA,cAA8B,wBAC9B,CAAA,gBAA8B,0BAC9B,CAAA,sBAA8B,gCAC9B,CAAA,cAA8B,uBAC9B,CAAA,gBAA8B,qBAC9B,CAAA,gBAA8B,qBAC9B,CAAA,kBAA8B,uBAC9B,CAAA,kBAA8B,uBAE9B,CAAA,0BAAoC,oCACpC,CAAA,wBAAoC,kCACpC,CAAA,2BAAoC,gCACpC,CAAA,4BAAoC,uCACpC,CAAA,2BAAoC,sCAEpC,CAAA,sBAAiC,gCACjC,CAAA,oBAAiC,8BACjC,CAAA,uBAAiC,4BACjC,CAAA,yBAAiC,8BACjC,CAAA,wBAAiC,6BAEjC,CAAA,wBAAkC,kCAClC,CAAA,sBAAkC,gCAClC,CAAA,yBAAkC,8BAClC,CAAA,0BAAkC,qCAClC,CAAA,yBAAkC,oCAClC,CAAA,0BAAkC,+BAElC,CAAA,oBAAgC,yBAChC,CAAA,qBAAgC,+BAChC,CAAA,mBAAgC,6BAChC,CAAA,sBAAgC,2BAChC,CAAA,wBAAgC,6BAChC,CAAA,uBAAgC,4B/CYhC,CAAA,CAAA,yB+ClDA,aAAgC,4BAChC,CAAA,gBAAgC,+BAChC,CAAA,qBAAgC,oCAChC,CAAA,wBAAgC,uCAEhC,CAAA,cAA8B,wBAC9B,CAAA,gBAA8B,0BAC9B,CAAA,sBAA8B,gCAC9B,CAAA,cAA8B,uBAC9B,CAAA,gBAA8B,qBAC9B,CAAA,gBAA8B,qBAC9B,CAAA,kBAA8B,uBAC9B,CAAA,kBAA8B,uBAE9B,CAAA,0BAAoC,oCACpC,CAAA,wBAAoC,kCACpC,CAAA,2BAAoC,gCACpC,CAAA,4BAAoC,uCACpC,CAAA,2BAAoC,sCAEpC,CAAA,sBAAiC,gCACjC,CAAA,oBAAiC,8BACjC,CAAA,uBAAiC,4BACjC,CAAA,yBAAiC,8BACjC,CAAA,wBAAiC,6BAEjC,CAAA,wBAAkC,kCAClC,CAAA,sBAAkC,gCAClC,CAAA,yBAAkC,8BAClC,CAAA,0BAAkC,qCAClC,CAAA,yBAAkC,oCAClC,CAAA,0BAAkC,+BAElC,CAAA,oBAAgC,yBAChC,CAAA,qBAAgC,+BAChC,CAAA,mBAAgC,6BAChC,CAAA,sBAAgC,2BAChC,CAAA,wBAAgC,6BAChC,CAAA,uBAAgC,4B/CYhC,CAAA,CAAA,yB+ClDA,aAAgC,4BAChC,CAAA,gBAAgC,+BAChC,CAAA,qBAAgC,oCAChC,CAAA,wBAAgC,uCAEhC,CAAA,cAA8B,wBAC9B,CAAA,gBAA8B,0BAC9B,CAAA,sBAA8B,gCAC9B,CAAA,cAA8B,uBAC9B,CAAA,gBAA8B,qBAC9B,CAAA,gBAA8B,qBAC9B,CAAA,kBAA8B,uBAC9B,CAAA,kBAA8B,uBAE9B,CAAA,0BAAoC,oCACpC,CAAA,wBAAoC,kCACpC,CAAA,2BAAoC,gCACpC,CAAA,4BAAoC,uCACpC,CAAA,2BAAoC,sCAEpC,CAAA,sBAAiC,gCACjC,CAAA,oBAAiC,8BACjC,CAAA,uBAAiC,4BACjC,CAAA,yBAAiC,8BACjC,CAAA,wBAAiC,6BAEjC,CAAA,wBAAkC,kCAClC,CAAA,sBAAkC,gCAClC,CAAA,yBAAkC,8BAClC,CAAA,0BAAkC,qCAClC,CAAA,yBAAkC,oCAClC,CAAA,0BAAkC,+BAElC,CAAA,oBAAgC,yBAChC,CAAA,qBAAgC,+BAChC,CAAA,mBAAgC,6BAChC,CAAA,sBAAgC,2BAChC,CAAA,wBAAgC,6BAChC,CAAA,uBAAgC,4B/CYhC,CAAA,CAAA,0B+ClDA,aAAgC,4BAChC,CAAA,gBAAgC,+BAChC,CAAA,qBAAgC,oCAChC,CAAA,wBAAgC,uCAEhC,CAAA,cAA8B,wBAC9B,CAAA,gBAA8B,0BAC9B,CAAA,sBAA8B,gCAC9B,CAAA,cAA8B,uBAC9B,CAAA,gBAA8B,qBAC9B,CAAA,gBAA8B,qBAC9B,CAAA,kBAA8B,uBAC9B,CAAA,kBAA8B,uBAE9B,CAAA,0BAAoC,oCACpC,CAAA,wBAAoC,kCACpC,CAAA,2BAAoC,gCACpC,CAAA,4BAAoC,uCACpC,CAAA,2BAAoC,sCAEpC,CAAA,sBAAiC,gCACjC,CAAA,oBAAiC,8BACjC,CAAA,uBAAiC,4BACjC,CAAA,yBAAiC,8BACjC,CAAA,wBAAiC,6BAEjC,CAAA,wBAAkC,kCAClC,CAAA,sBAAkC,gCAClC,CAAA,yBAAkC,8BAClC,CAAA,0BAAkC,qCAClC,CAAA,yBAAkC,oCAClC,CAAA,0BAAkC,+BAElC,CAAA,oBAAgC,yBAChC,CAAA,qBAAgC,+BAChC,CAAA,mBAAgC,6BAChC,CAAA,sBAAgC,2BAChC,CAAA,wBAAgC,6BAChC,CAAA,uBAAgC,4BC1ChC,CAAA,CAAA,YAAwB,oBACxB,CAAA,aAAwB,qBACxB,CAAA,YAAwB,oBhDoDxB,CAAA,yBgDtDA,eAAwB,oBACxB,CAAA,gBAAwB,qBACxB,CAAA,eAAwB,oBhDoDxB,CAAA,CAAA,yBgDtDA,eAAwB,oBACxB,CAAA,gBAAwB,qBACxB,CAAA,eAAwB,oBhDoDxB,CAAA,CAAA,yBgDtDA,eAAwB,oBACxB,CAAA,gBAAwB,qBACxB,CAAA,eAAwB,oBhDoDxB,CAAA,CAAA,0BgDtDA,eAAwB,oBACxB,CAAA,gBAAwB,qBACxB,CAAA,eAAwB,oBCL1B,CAAA,CAAA,iBAAyB,iCAAA,CAAA,6BAAA,CAAA,yBAAzB,CAAA,kBAAyB,kCAAA,CAAA,8BAAA,CAAA,0BAAzB,CAAA,kBAAyB,kCAAA,CAAA,8BAAA,CAAA,0BCAzB,CAAA,eAAsB,uBAAtB,CAAA,iBAAsB,yBCCtB,CAAA,iBAAyB,yBAAzB,CAAA,mBAAyB,2BAAzB,CAAA,mBAAyB,2BAAzB,CAAA,gBAAyB,wBAAzB,CAAA,iBAAyB,iCAAA,CAAA,yBAK3B,CAAA,WAEE,KAMF,CAAA,yBAPE,cACA,CACA,OACA,CAAA,MACA,CAAA,YAY4B,CAT9B,cAGE,QAM4B,CAAA,2DAD9B,YAEI,uBAAA,CAAA,eACA,CAAA,KACA,CAAA,YCzBJ,CAAA,CAAA,SCEE,iBACA,CAAA,SACA,CAAA,UACA,CAAA,SACA,CAAA,WACA,CAAA,eACA,CAAA,kBACA,CAAA,kBACA,CAAA,QAUA,CAAA,mDAEE,eACA,CAAA,UACA,CAAA,WACA,CAAA,gBACA,CAAA,SACA,CAAA,kBC7BJ,CAAA,WAAa,sDACb,CAAA,QAAU,iDACV,CAAA,WAAa,iDACb,CAAA,aAAe,yBCCX,CAAA,MAAuB,mBAAvB,CAAA,MAAuB,mBAAvB,CAAA,MAAuB,mBAAvB,CAAA,OAAuB,oBAAvB,CAAA,QAAuB,oBAAvB,CAAA,MAAuB,oBAAvB,CAAA,MAAuB,oBAAvB,CAAA,MAAuB,oBAAvB,CAAA,OAAuB,qBAAvB,CAAA,QAAuB,qBAI3B,CAAA,QAAU,wBACV,CAAA,QAAU,yBAIV,CAAA,YAAc,yBACd,CAAA,YAAc,0BAEd,CAAA,QAAU,qBACV,CAAA,QAAU,sBCTF,CAAA,KAAgC,kBAChC,CAAA,YAEE,sBAEF,CAAA,YAEE,wBAEF,CAAA,YAEE,yBAEF,CAAA,YAEE,uBAfF,CAAA,KAAgC,uBAChC,CAAA,YAEE,2BAEF,CAAA,YAEE,6BAEF,CAAA,YAEE,8BAEF,CAAA,YAEE,4BAfF,CAAA,KAAgC,sBAChC,CAAA,YAEE,0BAEF,CAAA,YAEE,4BAEF,CAAA,YAEE,6BAEF,CAAA,YAEE,2BAfF,CAAA,KAAgC,qBAChC,CAAA,YAEE,yBAEF,CAAA,YAEE,2BAEF,CAAA,YAEE,4BAEF,CAAA,YAEE,0BAfF,CAAA,KAAgC,uBAChC,CAAA,YAEE,2BAEF,CAAA,YAEE,6BAEF,CAAA,YAEE,8BAEF,CAAA,YAEE,4BAfF,CAAA,KAAgC,qBAChC,CAAA,YAEE,yBAEF,CAAA,YAEE,2BAEF,CAAA,YAEE,4BAEF,CAAA,YAEE,0BAfF,CAAA,KAAgC,mBAChC,CAAA,YAEE,uBAEF,CAAA,YAEE,yBAEF,CAAA,YAEE,0BAEF,CAAA,YAEE,wBAfF,CAAA,KAAgC,wBAChC,CAAA,YAEE,4BAEF,CAAA,YAEE,8BAEF,CAAA,YAEE,+BAEF,CAAA,YAEE,6BAfF,CAAA,KAAgC,uBAChC,CAAA,YAEE,2BAEF,CAAA,YAEE,6BAEF,CAAA,YAEE,8BAEF,CAAA,YAEE,4BAfF,CAAA,KAAgC,sBAChC,CAAA,YAEE,0BAEF,CAAA,YAEE,4BAEF,CAAA,YAEE,6BAEF,CAAA,YAEE,2BAfF,CAAA,KAAgC,wBAChC,CAAA,YAEE,4BAEF,CAAA,YAEE,8BAEF,CAAA,YAEE,+BAEF,CAAA,YAEE,6BAfF,CAAA,KAAgC,sBAChC,CAAA,YAEE,0BAEF,CAAA,YAEE,4BAEF,CAAA,YAEE,6BAEF,CAAA,YAEE,2BAQF,CAAA,MAAwB,wBACxB,CAAA,cAEE,4BAEF,CAAA,cAEE,8BAEF,CAAA,cAEE,+BAEF,CAAA,cAEE,6BAfF,CAAA,MAAwB,uBACxB,CAAA,cAEE,2BAEF,CAAA,cAEE,6BAEF,CAAA,cAEE,8BAEF,CAAA,cAEE,4BAfF,CAAA,MAAwB,sBACxB,CAAA,cAEE,0BAEF,CAAA,cAEE,4BAEF,CAAA,cAEE,6BAEF,CAAA,cAEE,2BAfF,CAAA,MAAwB,wBACxB,CAAA,cAEE,4BAEF,CAAA,cAEE,8BAEF,CAAA,cAEE,+BAEF,CAAA,cAEE,6BAfF,CAAA,MAAwB,sBACxB,CAAA,cAEE,0BAEF,CAAA,cAEE,4BAEF,CAAA,cAEE,6BAEF,CAAA,cAEE,2BAMN,CAAA,QAAmB,qBACnB,CAAA,kBAEE,yBAEF,CAAA,kBAEE,2BAEF,CAAA,kBAEE,4BAEF,CAAA,kBAEE,0BxDTF,CAAA,yBwDlDI,QAAgC,kBAChC,CAAA,kBAEE,sBAEF,CAAA,kBAEE,wBAEF,CAAA,kBAEE,yBAEF,CAAA,kBAEE,uBAfF,CAAA,QAAgC,uBAChC,CAAA,kBAEE,2BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,8BAEF,CAAA,kBAEE,4BAfF,CAAA,QAAgC,sBAChC,CAAA,kBAEE,0BAEF,CAAA,kBAEE,4BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,2BAfF,CAAA,QAAgC,qBAChC,CAAA,kBAEE,yBAEF,CAAA,kBAEE,2BAEF,CAAA,kBAEE,4BAEF,CAAA,kBAEE,0BAfF,CAAA,QAAgC,uBAChC,CAAA,kBAEE,2BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,8BAEF,CAAA,kBAEE,4BAfF,CAAA,QAAgC,qBAChC,CAAA,kBAEE,yBAEF,CAAA,kBAEE,2BAEF,CAAA,kBAEE,4BAEF,CAAA,kBAEE,0BAfF,CAAA,QAAgC,mBAChC,CAAA,kBAEE,uBAEF,CAAA,kBAEE,yBAEF,CAAA,kBAEE,0BAEF,CAAA,kBAEE,wBAfF,CAAA,QAAgC,wBAChC,CAAA,kBAEE,4BAEF,CAAA,kBAEE,8BAEF,CAAA,kBAEE,+BAEF,CAAA,kBAEE,6BAfF,CAAA,QAAgC,uBAChC,CAAA,kBAEE,2BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,8BAEF,CAAA,kBAEE,4BAfF,CAAA,QAAgC,sBAChC,CAAA,kBAEE,0BAEF,CAAA,kBAEE,4BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,2BAfF,CAAA,QAAgC,wBAChC,CAAA,kBAEE,4BAEF,CAAA,kBAEE,8BAEF,CAAA,kBAEE,+BAEF,CAAA,kBAEE,6BAfF,CAAA,QAAgC,sBAChC,CAAA,kBAEE,0BAEF,CAAA,kBAEE,4BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,2BAQF,CAAA,SAAwB,wBACxB,CAAA,oBAEE,4BAEF,CAAA,oBAEE,8BAEF,CAAA,oBAEE,+BAEF,CAAA,oBAEE,6BAfF,CAAA,SAAwB,uBACxB,CAAA,oBAEE,2BAEF,CAAA,oBAEE,6BAEF,CAAA,oBAEE,8BAEF,CAAA,oBAEE,4BAfF,CAAA,SAAwB,sBACxB,CAAA,oBAEE,0BAEF,CAAA,oBAEE,4BAEF,CAAA,oBAEE,6BAEF,CAAA,oBAEE,2BAfF,CAAA,SAAwB,wBACxB,CAAA,oBAEE,4BAEF,CAAA,oBAEE,8BAEF,CAAA,oBAEE,+BAEF,CAAA,oBAEE,6BAfF,CAAA,SAAwB,sBACxB,CAAA,oBAEE,0BAEF,CAAA,oBAEE,4BAEF,CAAA,oBAEE,6BAEF,CAAA,oBAEE,2BAMN,CAAA,WAAmB,qBACnB,CAAA,wBAEE,yBAEF,CAAA,wBAEE,2BAEF,CAAA,wBAEE,4BAEF,CAAA,wBAEE,0BxDTF,CAAA,CAAA,yBwDlDI,QAAgC,kBAChC,CAAA,kBAEE,sBAEF,CAAA,kBAEE,wBAEF,CAAA,kBAEE,yBAEF,CAAA,kBAEE,uBAfF,CAAA,QAAgC,uBAChC,CAAA,kBAEE,2BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,8BAEF,CAAA,kBAEE,4BAfF,CAAA,QAAgC,sBAChC,CAAA,kBAEE,0BAEF,CAAA,kBAEE,4BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,2BAfF,CAAA,QAAgC,qBAChC,CAAA,kBAEE,yBAEF,CAAA,kBAEE,2BAEF,CAAA,kBAEE,4BAEF,CAAA,kBAEE,0BAfF,CAAA,QAAgC,uBAChC,CAAA,kBAEE,2BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,8BAEF,CAAA,kBAEE,4BAfF,CAAA,QAAgC,qBAChC,CAAA,kBAEE,yBAEF,CAAA,kBAEE,2BAEF,CAAA,kBAEE,4BAEF,CAAA,kBAEE,0BAfF,CAAA,QAAgC,mBAChC,CAAA,kBAEE,uBAEF,CAAA,kBAEE,yBAEF,CAAA,kBAEE,0BAEF,CAAA,kBAEE,wBAfF,CAAA,QAAgC,wBAChC,CAAA,kBAEE,4BAEF,CAAA,kBAEE,8BAEF,CAAA,kBAEE,+BAEF,CAAA,kBAEE,6BAfF,CAAA,QAAgC,uBAChC,CAAA,kBAEE,2BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,8BAEF,CAAA,kBAEE,4BAfF,CAAA,QAAgC,sBAChC,CAAA,kBAEE,0BAEF,CAAA,kBAEE,4BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,2BAfF,CAAA,QAAgC,wBAChC,CAAA,kBAEE,4BAEF,CAAA,kBAEE,8BAEF,CAAA,kBAEE,+BAEF,CAAA,kBAEE,6BAfF,CAAA,QAAgC,sBAChC,CAAA,kBAEE,0BAEF,CAAA,kBAEE,4BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,2BAQF,CAAA,SAAwB,wBACxB,CAAA,oBAEE,4BAEF,CAAA,oBAEE,8BAEF,CAAA,oBAEE,+BAEF,CAAA,oBAEE,6BAfF,CAAA,SAAwB,uBACxB,CAAA,oBAEE,2BAEF,CAAA,oBAEE,6BAEF,CAAA,oBAEE,8BAEF,CAAA,oBAEE,4BAfF,CAAA,SAAwB,sBACxB,CAAA,oBAEE,0BAEF,CAAA,oBAEE,4BAEF,CAAA,oBAEE,6BAEF,CAAA,oBAEE,2BAfF,CAAA,SAAwB,wBACxB,CAAA,oBAEE,4BAEF,CAAA,oBAEE,8BAEF,CAAA,oBAEE,+BAEF,CAAA,oBAEE,6BAfF,CAAA,SAAwB,sBACxB,CAAA,oBAEE,0BAEF,CAAA,oBAEE,4BAEF,CAAA,oBAEE,6BAEF,CAAA,oBAEE,2BAMN,CAAA,WAAmB,qBACnB,CAAA,wBAEE,yBAEF,CAAA,wBAEE,2BAEF,CAAA,wBAEE,4BAEF,CAAA,wBAEE,0BxDTF,CAAA,CAAA,yBwDlDI,QAAgC,kBAChC,CAAA,kBAEE,sBAEF,CAAA,kBAEE,wBAEF,CAAA,kBAEE,yBAEF,CAAA,kBAEE,uBAfF,CAAA,QAAgC,uBAChC,CAAA,kBAEE,2BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,8BAEF,CAAA,kBAEE,4BAfF,CAAA,QAAgC,sBAChC,CAAA,kBAEE,0BAEF,CAAA,kBAEE,4BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,2BAfF,CAAA,QAAgC,qBAChC,CAAA,kBAEE,yBAEF,CAAA,kBAEE,2BAEF,CAAA,kBAEE,4BAEF,CAAA,kBAEE,0BAfF,CAAA,QAAgC,uBAChC,CAAA,kBAEE,2BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,8BAEF,CAAA,kBAEE,4BAfF,CAAA,QAAgC,qBAChC,CAAA,kBAEE,yBAEF,CAAA,kBAEE,2BAEF,CAAA,kBAEE,4BAEF,CAAA,kBAEE,0BAfF,CAAA,QAAgC,mBAChC,CAAA,kBAEE,uBAEF,CAAA,kBAEE,yBAEF,CAAA,kBAEE,0BAEF,CAAA,kBAEE,wBAfF,CAAA,QAAgC,wBAChC,CAAA,kBAEE,4BAEF,CAAA,kBAEE,8BAEF,CAAA,kBAEE,+BAEF,CAAA,kBAEE,6BAfF,CAAA,QAAgC,uBAChC,CAAA,kBAEE,2BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,8BAEF,CAAA,kBAEE,4BAfF,CAAA,QAAgC,sBAChC,CAAA,kBAEE,0BAEF,CAAA,kBAEE,4BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,2BAfF,CAAA,QAAgC,wBAChC,CAAA,kBAEE,4BAEF,CAAA,kBAEE,8BAEF,CAAA,kBAEE,+BAEF,CAAA,kBAEE,6BAfF,CAAA,QAAgC,sBAChC,CAAA,kBAEE,0BAEF,CAAA,kBAEE,4BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,2BAQF,CAAA,SAAwB,wBACxB,CAAA,oBAEE,4BAEF,CAAA,oBAEE,8BAEF,CAAA,oBAEE,+BAEF,CAAA,oBAEE,6BAfF,CAAA,SAAwB,uBACxB,CAAA,oBAEE,2BAEF,CAAA,oBAEE,6BAEF,CAAA,oBAEE,8BAEF,CAAA,oBAEE,4BAfF,CAAA,SAAwB,sBACxB,CAAA,oBAEE,0BAEF,CAAA,oBAEE,4BAEF,CAAA,oBAEE,6BAEF,CAAA,oBAEE,2BAfF,CAAA,SAAwB,wBACxB,CAAA,oBAEE,4BAEF,CAAA,oBAEE,8BAEF,CAAA,oBAEE,+BAEF,CAAA,oBAEE,6BAfF,CAAA,SAAwB,sBACxB,CAAA,oBAEE,0BAEF,CAAA,oBAEE,4BAEF,CAAA,oBAEE,6BAEF,CAAA,oBAEE,2BAMN,CAAA,WAAmB,qBACnB,CAAA,wBAEE,yBAEF,CAAA,wBAEE,2BAEF,CAAA,wBAEE,4BAEF,CAAA,wBAEE,0BxDTF,CAAA,CAAA,0BwDlDI,QAAgC,kBAChC,CAAA,kBAEE,sBAEF,CAAA,kBAEE,wBAEF,CAAA,kBAEE,yBAEF,CAAA,kBAEE,uBAfF,CAAA,QAAgC,uBAChC,CAAA,kBAEE,2BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,8BAEF,CAAA,kBAEE,4BAfF,CAAA,QAAgC,sBAChC,CAAA,kBAEE,0BAEF,CAAA,kBAEE,4BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,2BAfF,CAAA,QAAgC,qBAChC,CAAA,kBAEE,yBAEF,CAAA,kBAEE,2BAEF,CAAA,kBAEE,4BAEF,CAAA,kBAEE,0BAfF,CAAA,QAAgC,uBAChC,CAAA,kBAEE,2BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,8BAEF,CAAA,kBAEE,4BAfF,CAAA,QAAgC,qBAChC,CAAA,kBAEE,yBAEF,CAAA,kBAEE,2BAEF,CAAA,kBAEE,4BAEF,CAAA,kBAEE,0BAfF,CAAA,QAAgC,mBAChC,CAAA,kBAEE,uBAEF,CAAA,kBAEE,yBAEF,CAAA,kBAEE,0BAEF,CAAA,kBAEE,wBAfF,CAAA,QAAgC,wBAChC,CAAA,kBAEE,4BAEF,CAAA,kBAEE,8BAEF,CAAA,kBAEE,+BAEF,CAAA,kBAEE,6BAfF,CAAA,QAAgC,uBAChC,CAAA,kBAEE,2BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,8BAEF,CAAA,kBAEE,4BAfF,CAAA,QAAgC,sBAChC,CAAA,kBAEE,0BAEF,CAAA,kBAEE,4BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,2BAfF,CAAA,QAAgC,wBAChC,CAAA,kBAEE,4BAEF,CAAA,kBAEE,8BAEF,CAAA,kBAEE,+BAEF,CAAA,kBAEE,6BAfF,CAAA,QAAgC,sBAChC,CAAA,kBAEE,0BAEF,CAAA,kBAEE,4BAEF,CAAA,kBAEE,6BAEF,CAAA,kBAEE,2BAQF,CAAA,SAAwB,wBACxB,CAAA,oBAEE,4BAEF,CAAA,oBAEE,8BAEF,CAAA,oBAEE,+BAEF,CAAA,oBAEE,6BAfF,CAAA,SAAwB,uBACxB,CAAA,oBAEE,2BAEF,CAAA,oBAEE,6BAEF,CAAA,oBAEE,8BAEF,CAAA,oBAEE,4BAfF,CAAA,SAAwB,sBACxB,CAAA,oBAEE,0BAEF,CAAA,oBAEE,4BAEF,CAAA,oBAEE,6BAEF,CAAA,oBAEE,2BAfF,CAAA,SAAwB,wBACxB,CAAA,oBAEE,4BAEF,CAAA,oBAEE,8BAEF,CAAA,oBAEE,+BAEF,CAAA,oBAEE,6BAfF,CAAA,SAAwB,sBACxB,CAAA,oBAEE,0BAEF,CAAA,oBAEE,4BAEF,CAAA,oBAEE,6BAEF,CAAA,oBAEE,2BAMN,CAAA,WAAmB,qBACnB,CAAA,wBAEE,yBAEF,CAAA,wBAEE,2BAEF,CAAA,wBAEE,4BAEF,CAAA,wBAEE,0BCjEN,CAAA,CAAA,sBAEI,iBACA,CAAA,KACA,CAAA,OACA,CAAA,QACA,CAAA,MACA,CAAA,SAEA,CAAA,mBACA,CAAA,UAEA,CAAA,4BCVJ,CAAA,gBAAkB,oGAIlB,CAAA,cAAiB,4BACjB,CAAA,WAAiB,4BACjB,CAAA,aAAiB,4BACjB,CAAA,eCTE,eACA,CAAA,sBACA,CAAA,kBDeE,CAAA,WAAwB,yBACxB,CAAA,YAAwB,0BACxB,CAAA,aAAwB,2B1DqCxB,CAAA,yB0DvCA,cAAwB,yBACxB,CAAA,eAAwB,0BACxB,CAAA,gBAAwB,2B1DqCxB,CAAA,CAAA,yB0DvCA,cAAwB,yBACxB,CAAA,eAAwB,0BACxB,CAAA,gBAAwB,2B1DqCxB,CAAA,CAAA,yB0DvCA,cAAwB,yBACxB,CAAA,eAAwB,0BACxB,CAAA,gBAAwB,2B1DqCxB,CAAA,CAAA,0B0DvCA,cAAwB,yBACxB,CAAA,eAAwB,0BACxB,CAAA,gBAAwB,2BAM5B,CAAA,CAAA,gBAAmB,kCACnB,CAAA,gBAAmB,kCACnB,CAAA,iBAAmB,mCAInB,CAAA,mBAAuB,yBACvB,CAAA,qBAAuB,6BACvB,CAAA,oBAAuB,yBACvB,CAAA,kBAAuB,yBACvB,CAAA,oBAAuB,4BACvB,CAAA,aAAuB,2BAIvB,CAAA,YAAc,oBEvCZ,CAAA,cACE,uBrEUF,CAAA,0CqELM,uBANN,CAAA,gBACE,uBrEUF,CAAA,8CqELM,uBANN,CAAA,cACE,uBrEUF,CAAA,0CqELM,uBANN,CAAA,WACE,uBrEUF,CAAA,oCqELM,uBANN,CAAA,cACE,uBrEUF,CAAA,0CqELM,uBANN,CAAA,aACE,uBrEUF,CAAA,wCqELM,uBANN,CAAA,YACE,uBrEUF,CAAA,sCqELM,uBANN,CAAA,WACE,uBrEUF,CAAA,oCqELM,uBFuCR,CAAA,WAAa,uBACb,CAAA,YAAc,uBAEd,CAAA,eAAiB,8BACjB,CAAA,eAAiB,kCAIjB,CAAA,WGvDE,UACA,CAAA,iBACA,CAAA,gBACA,CAAA,4BACA,CAAA,QHuDF,CAAA,sBAAwB,8BAExB,CAAA,YACE,+BACA,CAAA,kCAKF,CAAA,YAAc,uBIjEd,CAAA,SACE,4BAGF,CAAA,WACE,2BCAA,CAAA,a5E47TA,iB4Et7TI,0BAEA,CAAA,yBAGF,CAAA,YAEI,yBASJ,CAAA,kBACE,4B3E8LN,CAAA,I2E/KM,8B5Eo6TJ,CAAA,e4Eh6TI,wBACA,CAAA,uBAQF,CAAA,MACE,0B5E85TJ,CAAA,O4Ez5TI,uB5E65TJ,CACA,Q4Ex5TI,SACA,CAAA,QAGF,C5Ey5TF,M4Ev5TI,sBAQF,CAAA,MACE,O3E5CN,C2EiDI,gBACE,yB7C9EN,CAAA,Q6CmFM,YxC/FN,CAAA,OwCkGM,qB7DnGN,CAAA,O6DuGM,kCADF,CAAA,oBAKI,+B5Ek5TN,CAAA,sC4E34TM,kC7DWR,CAAA,Y6DNM,a5E+4TJ,CAAA,2E4Ez4TM,oB7DlBR,CAAA,sB6DuBM,aACA,CAAA,oBAAA,CAAA","file":"2.d9ad5f5c.chunk.css","sourcesContent":["/*!\n * Bootstrap v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"utilities\";\n@import \"print\";\n","// Do not forget to update getting-started/theming.md!\n:root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","/*!\n * Bootstrap v4.5.2 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=\"button\"] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n -ms-flex-order: -1;\n order: -1;\n}\n\n.order-last {\n -ms-flex-order: 13;\n order: 13;\n}\n\n.order-0 {\n -ms-flex-order: 0;\n order: 0;\n}\n\n.order-1 {\n -ms-flex-order: 1;\n order: 1;\n}\n\n.order-2 {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.order-3 {\n -ms-flex-order: 3;\n order: 3;\n}\n\n.order-4 {\n -ms-flex-order: 4;\n order: 4;\n}\n\n.order-5 {\n -ms-flex-order: 5;\n order: 5;\n}\n\n.order-6 {\n -ms-flex-order: 6;\n order: 6;\n}\n\n.order-7 {\n -ms-flex-order: 7;\n order: 7;\n}\n\n.order-8 {\n -ms-flex-order: 8;\n order: 8;\n}\n\n.order-9 {\n -ms-flex-order: 9;\n order: 9;\n}\n\n.order-10 {\n -ms-flex-order: 10;\n order: 10;\n}\n\n.order-11 {\n -ms-flex-order: 11;\n order: 11;\n}\n\n.order-12 {\n -ms-flex-order: 12;\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-sm-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-sm-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-sm-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-sm-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-sm-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-sm-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-sm-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-sm-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-sm-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-sm-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-sm-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-sm-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-sm-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-sm-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-md-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-md-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-md-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-md-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-md-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-md-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-md-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-md-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-md-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-md-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-md-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-md-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-md-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-md-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-lg-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-lg-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-lg-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-lg-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-lg-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-lg-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-lg-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-lg-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-lg-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-lg-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-lg-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-lg-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-lg-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-lg-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n -ms-flex: 0 0 20%;\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-xl-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-xl-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-xl-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-xl-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-xl-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-xl-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-xl-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-xl-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-xl-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-xl-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-xl-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-xl-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-xl-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-xl-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::-webkit-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-moz-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\ninput[type=\"date\"].form-control,\ninput[type=\"time\"].form-control,\ninput[type=\"datetime-local\"].form-control,\ninput[type=\"month\"].form-control {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 1rem;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-align: center;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -ms-flex-align: center;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: -ms-inline-flexbox;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: stretch;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: -ms-flexbox;\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n z-index: 1;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: -ms-inline-flexbox;\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.25rem;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n -webkit-transform: translateX(0.75rem);\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -webkit-appearance: none;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n -webkit-transition: none;\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -moz-appearance: none;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n -moz-transition: none;\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n -ms-transition: none;\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n -ms-flex-preferred-size: 100%;\n flex-basis: 100%;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n}\n\n.card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n border-top: 0;\n}\n\n.card-body {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n }\n .card-group > .card {\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n -webkit-column-count: 3;\n -moz-column-count: 3;\n column-count: 3;\n -webkit-column-gap: 1.25rem;\n -moz-column-gap: 1.25rem;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion {\n overflow-anchor: none;\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item {\n display: -ms-flexbox;\n display: flex;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: -ms-flexbox;\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: -ms-flexbox;\n display: flex;\n height: 1rem;\n overflow: hidden;\n line-height: 0;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n -webkit-animation: progress-bar-stripes 1s linear infinite;\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n -webkit-animation: none;\n animation: none;\n }\n}\n\n.media {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n.media-body {\n -ms-flex: 1;\n flex: 1;\n}\n\n.list-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n border-radius: 0.25rem;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n}\n\n.list-group-item:last-child {\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n\n.list-group-horizontal {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.list-group-horizontal > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-sm > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-md > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-lg > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .list-group-horizontal-xl > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n.list-group-flush {\n border-radius: 0;\n}\n\n.list-group-flush > .list-group-item {\n border-width: 0 0 1px;\n}\n\n.list-group-flush > .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n -ms-flex-preferred-size: 350px;\n flex-basis: 350px;\n max-width: 350px;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: -webkit-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n -webkit-transform: translate(0, -50px);\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n -webkit-transform: none;\n transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n -webkit-transform: scale(1.02);\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n display: -ms-flexbox;\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n height: -webkit-min-content;\n height: -moz-min-content;\n height: min-content;\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: end;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n height: -webkit-min-content;\n height: -moz-min-content;\n height: min-content;\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n transition: -webkit-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n -webkit-transform: none;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@-webkit-keyframes spinner-border {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes spinner-border {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n -webkit-animation: spinner-border .75s linear infinite;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@-webkit-keyframes spinner-grow {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes spinner-grow {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n -webkit-animation: spinner-grow .75s linear infinite;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.d-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-md-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-print-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n}\n\n.flex-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n\n.justify-content-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n}\n\n.align-items-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n}\n\n.align-items-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n}\n\n.align-items-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n}\n\n.align-items-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n}\n\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n}\n\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n}\n\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n}\n\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n}\n\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n}\n\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n}\n\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n}\n\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n}\n\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n}\n\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-sm-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-sm-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-sm-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-md-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-md-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-md-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-md-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-md-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-md-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-lg-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-lg-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-lg-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-xl-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-xl-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-xl-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.user-select-all {\n -webkit-user-select: all !important;\n -moz-user-select: all !important;\n -ms-user-select: all !important;\n user-select: all !important;\n}\n\n.user-select-auto {\n -webkit-user-select: auto !important;\n -moz-user-select: auto !important;\n -ms-user-select: auto !important;\n user-select: auto !important;\n}\n\n.user-select-none {\n -webkit-user-select: none !important;\n -moz-user-select: none !important;\n -ms-user-select: none !important;\n user-select: none !important;\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: -webkit-sticky !important;\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n .sticky-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

    `-`

    ` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

    `s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,\n // making it impossible to interact with the content\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `` alignment by inheriting from the ``, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Set the cursor for non-`