diff --git a/.babelrc b/.babelrc
old mode 100644
new mode 100755
diff --git a/.editorconfig b/.editorconfig
old mode 100644
new mode 100755
diff --git a/.eslintrc b/.eslintrc
old mode 100644
new mode 100755
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
old mode 100644
new mode 100755
diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml
old mode 100644
new mode 100755
diff --git a/.gitignore b/.gitignore
old mode 100644
new mode 100755
diff --git a/.husky/.gitignore b/.husky/.gitignore
old mode 100644
new mode 100755
diff --git a/.npmrc b/.npmrc
old mode 100644
new mode 100755
diff --git a/.nvmrc b/.nvmrc
old mode 100644
new mode 100755
diff --git a/BACKERS.md b/BACKERS.md
old mode 100644
new mode 100755
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
old mode 100644
new mode 100755
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
old mode 100644
new mode 100755
diff --git a/LICENSE b/LICENSE
old mode 100644
new mode 100755
diff --git a/README.ar-AR.md b/README.ar-AR.md
old mode 100644
new mode 100755
diff --git a/README.de-DE.md b/README.de-DE.md
old mode 100644
new mode 100755
diff --git a/README.es-ES.md b/README.es-ES.md
old mode 100644
new mode 100755
diff --git a/README.fr-FR.md b/README.fr-FR.md
old mode 100644
new mode 100755
diff --git a/README.id-ID.md b/README.id-ID.md
old mode 100644
new mode 100755
diff --git a/README.it-IT.md b/README.it-IT.md
old mode 100644
new mode 100755
diff --git a/README.ja-JP.md b/README.ja-JP.md
old mode 100644
new mode 100755
diff --git a/README.ko-KR.md b/README.ko-KR.md
old mode 100644
new mode 100755
diff --git a/README.md b/README.md
old mode 100644
new mode 100755
diff --git a/README.pl-PL.md b/README.pl-PL.md
old mode 100644
new mode 100755
diff --git a/README.pt-BR.md b/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/README.ru-RU.md b/README.ru-RU.md
old mode 100644
new mode 100755
diff --git a/README.tr-TR.md b/README.tr-TR.md
old mode 100644
new mode 100755
diff --git a/README.uk-UA.md b/README.uk-UA.md
old mode 100644
new mode 100755
diff --git a/README.vi-VN.md b/README.vi-VN.md
old mode 100644
new mode 100755
diff --git a/README.zh-CN.md b/README.zh-CN.md
old mode 100644
new mode 100755
diff --git a/README.zh-TW.md b/README.zh-TW.md
old mode 100644
new mode 100755
diff --git a/assets/big-o-graph.png b/assets/big-o-graph.png
old mode 100644
new mode 100755
diff --git a/jest.config.js b/jest.config.js
old mode 100644
new mode 100755
diff --git a/package-lock.json b/package-lock.json
old mode 100644
new mode 100755
index b61d279d87..0f18497b90
--- a/package-lock.json
+++ b/package-lock.json
@@ -69,12 +69,13 @@
       }
     },
     "node_modules/@babel/code-frame": {
-      "version": "7.21.4",
-      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz",
-      "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
+      "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
       "dev": true,
       "dependencies": {
-        "@babel/highlight": "^7.18.6"
+        "@babel/highlight": "^7.24.7",
+        "picocolors": "^1.0.0"
       },
       "engines": {
         "node": ">=6.9.0"
@@ -120,14 +121,14 @@
       }
     },
     "node_modules/@babel/generator": {
-      "version": "7.21.4",
-      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz",
-      "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz",
+      "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==",
       "dev": true,
       "dependencies": {
-        "@babel/types": "^7.21.4",
-        "@jridgewell/gen-mapping": "^0.3.2",
-        "@jridgewell/trace-mapping": "^0.3.17",
+        "@babel/types": "^7.24.7",
+        "@jridgewell/gen-mapping": "^0.3.5",
+        "@jridgewell/trace-mapping": "^0.3.25",
         "jsesc": "^2.5.1"
       },
       "engines": {
@@ -234,10 +235,13 @@
       }
     },
     "node_modules/@babel/helper-environment-visitor": {
-      "version": "7.18.9",
-      "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
-      "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz",
+      "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==",
       "dev": true,
+      "dependencies": {
+        "@babel/types": "^7.24.7"
+      },
       "engines": {
         "node": ">=6.9.0"
       }
@@ -255,25 +259,25 @@
       }
     },
     "node_modules/@babel/helper-function-name": {
-      "version": "7.21.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz",
-      "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz",
+      "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==",
       "dev": true,
       "dependencies": {
-        "@babel/template": "^7.20.7",
-        "@babel/types": "^7.21.0"
+        "@babel/template": "^7.24.7",
+        "@babel/types": "^7.24.7"
       },
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/helper-hoist-variables": {
-      "version": "7.18.6",
-      "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
-      "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz",
+      "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==",
       "dev": true,
       "dependencies": {
-        "@babel/types": "^7.18.6"
+        "@babel/types": "^7.24.7"
       },
       "engines": {
         "node": ">=6.9.0"
@@ -403,30 +407,30 @@
       }
     },
     "node_modules/@babel/helper-split-export-declaration": {
-      "version": "7.18.6",
-      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
-      "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz",
+      "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==",
       "dev": true,
       "dependencies": {
-        "@babel/types": "^7.18.6"
+        "@babel/types": "^7.24.7"
       },
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/helper-string-parser": {
-      "version": "7.19.4",
-      "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
-      "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz",
+      "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==",
       "dev": true,
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/helper-validator-identifier": {
-      "version": "7.19.1",
-      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
-      "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
+      "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
       "dev": true,
       "engines": {
         "node": ">=6.9.0"
@@ -471,23 +475,24 @@
       }
     },
     "node_modules/@babel/highlight": {
-      "version": "7.18.6",
-      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
-      "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
+      "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
       "dev": true,
       "dependencies": {
-        "@babel/helper-validator-identifier": "^7.18.6",
-        "chalk": "^2.0.0",
-        "js-tokens": "^4.0.0"
+        "@babel/helper-validator-identifier": "^7.24.7",
+        "chalk": "^2.4.2",
+        "js-tokens": "^4.0.0",
+        "picocolors": "^1.0.0"
       },
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/parser": {
-      "version": "7.21.4",
-      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz",
-      "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz",
+      "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==",
       "dev": true,
       "bin": {
         "parser": "bin/babel-parser.js"
@@ -1654,34 +1659,34 @@
       }
     },
     "node_modules/@babel/template": {
-      "version": "7.20.7",
-      "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz",
-      "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz",
+      "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==",
       "dev": true,
       "dependencies": {
-        "@babel/code-frame": "^7.18.6",
-        "@babel/parser": "^7.20.7",
-        "@babel/types": "^7.20.7"
+        "@babel/code-frame": "^7.24.7",
+        "@babel/parser": "^7.24.7",
+        "@babel/types": "^7.24.7"
       },
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/traverse": {
-      "version": "7.21.4",
-      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz",
-      "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==",
-      "dev": true,
-      "dependencies": {
-        "@babel/code-frame": "^7.21.4",
-        "@babel/generator": "^7.21.4",
-        "@babel/helper-environment-visitor": "^7.18.9",
-        "@babel/helper-function-name": "^7.21.0",
-        "@babel/helper-hoist-variables": "^7.18.6",
-        "@babel/helper-split-export-declaration": "^7.18.6",
-        "@babel/parser": "^7.21.4",
-        "@babel/types": "^7.21.4",
-        "debug": "^4.1.0",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz",
+      "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
+      "dev": true,
+      "dependencies": {
+        "@babel/code-frame": "^7.24.7",
+        "@babel/generator": "^7.24.7",
+        "@babel/helper-environment-visitor": "^7.24.7",
+        "@babel/helper-function-name": "^7.24.7",
+        "@babel/helper-hoist-variables": "^7.24.7",
+        "@babel/helper-split-export-declaration": "^7.24.7",
+        "@babel/parser": "^7.24.7",
+        "@babel/types": "^7.24.7",
+        "debug": "^4.3.1",
         "globals": "^11.1.0"
       },
       "engines": {
@@ -1689,13 +1694,13 @@
       }
     },
     "node_modules/@babel/types": {
-      "version": "7.21.4",
-      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz",
-      "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz",
+      "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==",
       "dev": true,
       "dependencies": {
-        "@babel/helper-string-parser": "^7.19.4",
-        "@babel/helper-validator-identifier": "^7.19.1",
+        "@babel/helper-string-parser": "^7.24.7",
+        "@babel/helper-validator-identifier": "^7.24.7",
         "to-fast-properties": "^2.0.0"
       },
       "engines": {
@@ -2594,14 +2599,14 @@
       }
     },
     "node_modules/@jridgewell/gen-mapping": {
-      "version": "0.3.3",
-      "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
-      "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
+      "version": "0.3.5",
+      "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+      "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
       "dev": true,
       "dependencies": {
-        "@jridgewell/set-array": "^1.0.1",
+        "@jridgewell/set-array": "^1.2.1",
         "@jridgewell/sourcemap-codec": "^1.4.10",
-        "@jridgewell/trace-mapping": "^0.3.9"
+        "@jridgewell/trace-mapping": "^0.3.24"
       },
       "engines": {
         "node": ">=6.0.0"
@@ -2617,9 +2622,9 @@
       }
     },
     "node_modules/@jridgewell/set-array": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
-      "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+      "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
       "dev": true,
       "engines": {
         "node": ">=6.0.0"
@@ -2632,21 +2637,15 @@
       "dev": true
     },
     "node_modules/@jridgewell/trace-mapping": {
-      "version": "0.3.18",
-      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
-      "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
+      "version": "0.3.25",
+      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+      "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
       "dev": true,
       "dependencies": {
-        "@jridgewell/resolve-uri": "3.1.0",
-        "@jridgewell/sourcemap-codec": "1.4.14"
+        "@jridgewell/resolve-uri": "^3.1.0",
+        "@jridgewell/sourcemap-codec": "^1.4.14"
       }
     },
-    "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": {
-      "version": "1.4.14",
-      "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
-      "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
-      "dev": true
-    },
     "node_modules/@nicolo-ribaudo/chokidar-2": {
       "version": "2.1.8-no-fsevents.3",
       "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz",
@@ -2905,26 +2904,11 @@
         }
       }
     },
-    "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-      "dev": true,
-      "dependencies": {
-        "yallist": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
     "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
-      "version": "7.3.8",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
-      "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+      "version": "7.6.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+      "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
       "dev": true,
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
       "bin": {
         "semver": "bin/semver.js"
       },
@@ -2932,12 +2916,6 @@
         "node": ">=10"
       }
     },
-    "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-      "dev": true
-    },
     "node_modules/@typescript-eslint/utils": {
       "version": "5.57.1",
       "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.57.1.tgz",
@@ -2986,26 +2964,11 @@
         "node": ">=4.0"
       }
     },
-    "node_modules/@typescript-eslint/utils/node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-      "dev": true,
-      "dependencies": {
-        "yallist": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
     "node_modules/@typescript-eslint/utils/node_modules/semver": {
-      "version": "7.3.8",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
-      "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+      "version": "7.6.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+      "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
       "dev": true,
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
       "bin": {
         "semver": "bin/semver.js"
       },
@@ -3013,12 +2976,6 @@
         "node": ">=10"
       }
     },
-    "node_modules/@typescript-eslint/utils/node_modules/yallist": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-      "dev": true
-    },
     "node_modules/@typescript-eslint/visitor-keys": {
       "version": "5.57.1",
       "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.57.1.tgz",
@@ -3500,12 +3457,12 @@
       }
     },
     "node_modules/braces": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
-      "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+      "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
       "dev": true,
       "dependencies": {
-        "fill-range": "^7.0.1"
+        "fill-range": "^7.1.1"
       },
       "engines": {
         "node": ">=8"
@@ -4743,9 +4700,9 @@
       }
     },
     "node_modules/fill-range": {
-      "version": "7.0.1",
-      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
-      "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+      "version": "7.1.1",
+      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+      "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
       "dev": true,
       "dependencies": {
         "to-regex-range": "^5.0.1"
@@ -6950,26 +6907,11 @@
         "node": ">=8"
       }
     },
-    "node_modules/jest-snapshot/node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-      "dev": true,
-      "dependencies": {
-        "yallist": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
     "node_modules/jest-snapshot/node_modules/semver": {
-      "version": "7.3.8",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
-      "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+      "version": "7.6.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+      "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
       "dev": true,
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
       "bin": {
         "semver": "bin/semver.js"
       },
@@ -6989,12 +6931,6 @@
         "node": ">=8"
       }
     },
-    "node_modules/jest-snapshot/node_modules/yallist": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-      "dev": true
-    },
     "node_modules/jest-util": {
       "version": "29.5.0",
       "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz",
@@ -7507,9 +7443,9 @@
       }
     },
     "node_modules/make-dir/node_modules/semver": {
-      "version": "5.7.1",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+      "version": "5.7.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+      "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
       "dev": true,
       "bin": {
         "semver": "bin/semver"
@@ -8371,9 +8307,9 @@
       }
     },
     "node_modules/semver": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-      "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+      "version": "6.3.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
       "dev": true,
       "bin": {
         "semver": "bin/semver.js"
@@ -8999,9 +8935,9 @@
       }
     },
     "node_modules/word-wrap": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
-      "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+      "version": "1.2.5",
+      "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+      "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
       "dev": true,
       "engines": {
         "node": ">=0.10.0"
@@ -9160,12 +9096,13 @@
       }
     },
     "@babel/code-frame": {
-      "version": "7.21.4",
-      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz",
-      "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
+      "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
       "dev": true,
       "requires": {
-        "@babel/highlight": "^7.18.6"
+        "@babel/highlight": "^7.24.7",
+        "picocolors": "^1.0.0"
       }
     },
     "@babel/compat-data": {
@@ -9198,14 +9135,14 @@
       }
     },
     "@babel/generator": {
-      "version": "7.21.4",
-      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz",
-      "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz",
+      "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==",
       "dev": true,
       "requires": {
-        "@babel/types": "^7.21.4",
-        "@jridgewell/gen-mapping": "^0.3.2",
-        "@jridgewell/trace-mapping": "^0.3.17",
+        "@babel/types": "^7.24.7",
+        "@jridgewell/gen-mapping": "^0.3.5",
+        "@jridgewell/trace-mapping": "^0.3.25",
         "jsesc": "^2.5.1"
       }
     },
@@ -9282,10 +9219,13 @@
       }
     },
     "@babel/helper-environment-visitor": {
-      "version": "7.18.9",
-      "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
-      "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
-      "dev": true
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz",
+      "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.24.7"
+      }
     },
     "@babel/helper-explode-assignable-expression": {
       "version": "7.18.6",
@@ -9297,22 +9237,22 @@
       }
     },
     "@babel/helper-function-name": {
-      "version": "7.21.0",
-      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz",
-      "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz",
+      "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==",
       "dev": true,
       "requires": {
-        "@babel/template": "^7.20.7",
-        "@babel/types": "^7.21.0"
+        "@babel/template": "^7.24.7",
+        "@babel/types": "^7.24.7"
       }
     },
     "@babel/helper-hoist-variables": {
-      "version": "7.18.6",
-      "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
-      "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz",
+      "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==",
       "dev": true,
       "requires": {
-        "@babel/types": "^7.18.6"
+        "@babel/types": "^7.24.7"
       }
     },
     "@babel/helper-member-expression-to-functions": {
@@ -9409,24 +9349,24 @@
       }
     },
     "@babel/helper-split-export-declaration": {
-      "version": "7.18.6",
-      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
-      "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz",
+      "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==",
       "dev": true,
       "requires": {
-        "@babel/types": "^7.18.6"
+        "@babel/types": "^7.24.7"
       }
     },
     "@babel/helper-string-parser": {
-      "version": "7.19.4",
-      "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
-      "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz",
+      "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==",
       "dev": true
     },
     "@babel/helper-validator-identifier": {
-      "version": "7.19.1",
-      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
-      "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
+      "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
       "dev": true
     },
     "@babel/helper-validator-option": {
@@ -9459,20 +9399,21 @@
       }
     },
     "@babel/highlight": {
-      "version": "7.18.6",
-      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
-      "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
+      "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
       "dev": true,
       "requires": {
-        "@babel/helper-validator-identifier": "^7.18.6",
-        "chalk": "^2.0.0",
-        "js-tokens": "^4.0.0"
+        "@babel/helper-validator-identifier": "^7.24.7",
+        "chalk": "^2.4.2",
+        "js-tokens": "^4.0.0",
+        "picocolors": "^1.0.0"
       }
     },
     "@babel/parser": {
-      "version": "7.21.4",
-      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz",
-      "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz",
+      "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==",
       "dev": true
     },
     "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
@@ -10252,42 +10193,42 @@
       }
     },
     "@babel/template": {
-      "version": "7.20.7",
-      "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz",
-      "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz",
+      "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==",
       "dev": true,
       "requires": {
-        "@babel/code-frame": "^7.18.6",
-        "@babel/parser": "^7.20.7",
-        "@babel/types": "^7.20.7"
+        "@babel/code-frame": "^7.24.7",
+        "@babel/parser": "^7.24.7",
+        "@babel/types": "^7.24.7"
       }
     },
     "@babel/traverse": {
-      "version": "7.21.4",
-      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz",
-      "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==",
-      "dev": true,
-      "requires": {
-        "@babel/code-frame": "^7.21.4",
-        "@babel/generator": "^7.21.4",
-        "@babel/helper-environment-visitor": "^7.18.9",
-        "@babel/helper-function-name": "^7.21.0",
-        "@babel/helper-hoist-variables": "^7.18.6",
-        "@babel/helper-split-export-declaration": "^7.18.6",
-        "@babel/parser": "^7.21.4",
-        "@babel/types": "^7.21.4",
-        "debug": "^4.1.0",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz",
+      "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
+      "dev": true,
+      "requires": {
+        "@babel/code-frame": "^7.24.7",
+        "@babel/generator": "^7.24.7",
+        "@babel/helper-environment-visitor": "^7.24.7",
+        "@babel/helper-function-name": "^7.24.7",
+        "@babel/helper-hoist-variables": "^7.24.7",
+        "@babel/helper-split-export-declaration": "^7.24.7",
+        "@babel/parser": "^7.24.7",
+        "@babel/types": "^7.24.7",
+        "debug": "^4.3.1",
         "globals": "^11.1.0"
       }
     },
     "@babel/types": {
-      "version": "7.21.4",
-      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz",
-      "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==",
+      "version": "7.24.7",
+      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz",
+      "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==",
       "dev": true,
       "requires": {
-        "@babel/helper-string-parser": "^7.19.4",
-        "@babel/helper-validator-identifier": "^7.19.1",
+        "@babel/helper-string-parser": "^7.24.7",
+        "@babel/helper-validator-identifier": "^7.24.7",
         "to-fast-properties": "^2.0.0"
       }
     },
@@ -10960,14 +10901,14 @@
       }
     },
     "@jridgewell/gen-mapping": {
-      "version": "0.3.3",
-      "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
-      "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
+      "version": "0.3.5",
+      "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+      "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
       "dev": true,
       "requires": {
-        "@jridgewell/set-array": "^1.0.1",
+        "@jridgewell/set-array": "^1.2.1",
         "@jridgewell/sourcemap-codec": "^1.4.10",
-        "@jridgewell/trace-mapping": "^0.3.9"
+        "@jridgewell/trace-mapping": "^0.3.24"
       }
     },
     "@jridgewell/resolve-uri": {
@@ -10977,9 +10918,9 @@
       "dev": true
     },
     "@jridgewell/set-array": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
-      "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+      "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
       "dev": true
     },
     "@jridgewell/sourcemap-codec": {
@@ -10989,21 +10930,13 @@
       "dev": true
     },
     "@jridgewell/trace-mapping": {
-      "version": "0.3.18",
-      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
-      "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
+      "version": "0.3.25",
+      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+      "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
       "dev": true,
       "requires": {
-        "@jridgewell/resolve-uri": "3.1.0",
-        "@jridgewell/sourcemap-codec": "1.4.14"
-      },
-      "dependencies": {
-        "@jridgewell/sourcemap-codec": {
-          "version": "1.4.14",
-          "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
-          "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
-          "dev": true
-        }
+        "@jridgewell/resolve-uri": "^3.1.0",
+        "@jridgewell/sourcemap-codec": "^1.4.14"
       }
     },
     "@nicolo-ribaudo/chokidar-2": {
@@ -11229,28 +11162,10 @@
         "tsutils": "^3.21.0"
       },
       "dependencies": {
-        "lru-cache": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-          "dev": true,
-          "requires": {
-            "yallist": "^4.0.0"
-          }
-        },
         "semver": {
-          "version": "7.3.8",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
-          "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
-          "dev": true,
-          "requires": {
-            "lru-cache": "^6.0.0"
-          }
-        },
-        "yallist": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+          "version": "7.6.2",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+          "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
           "dev": true
         }
       }
@@ -11287,28 +11202,10 @@
           "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
           "dev": true
         },
-        "lru-cache": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-          "dev": true,
-          "requires": {
-            "yallist": "^4.0.0"
-          }
-        },
         "semver": {
-          "version": "7.3.8",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
-          "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
-          "dev": true,
-          "requires": {
-            "lru-cache": "^6.0.0"
-          }
-        },
-        "yallist": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+          "version": "7.6.2",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+          "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
           "dev": true
         }
       }
@@ -11672,12 +11569,12 @@
       }
     },
     "braces": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
-      "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+      "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
       "dev": true,
       "requires": {
-        "fill-range": "^7.0.1"
+        "fill-range": "^7.1.1"
       }
     },
     "browserslist": {
@@ -12590,9 +12487,9 @@
       }
     },
     "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==",
+      "version": "7.1.1",
+      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+      "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
       "dev": true,
       "requires": {
         "to-regex-range": "^5.0.1"
@@ -14180,23 +14077,11 @@
           "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
           "dev": true
         },
-        "lru-cache": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-          "dev": true,
-          "requires": {
-            "yallist": "^4.0.0"
-          }
-        },
         "semver": {
-          "version": "7.3.8",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
-          "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
-          "dev": true,
-          "requires": {
-            "lru-cache": "^6.0.0"
-          }
+          "version": "7.6.2",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+          "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+          "dev": true
         },
         "supports-color": {
           "version": "7.2.0",
@@ -14206,12 +14091,6 @@
           "requires": {
             "has-flag": "^4.0.0"
           }
-        },
-        "yallist": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-          "dev": true
         }
       }
     },
@@ -14602,9 +14481,9 @@
       },
       "dependencies": {
         "semver": {
-          "version": "5.7.1",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+          "version": "5.7.2",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+          "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
           "dev": true
         }
       }
@@ -15220,9 +15099,9 @@
       }
     },
     "semver": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
-      "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+      "version": "6.3.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
       "dev": true
     },
     "shebang-command": {
@@ -15687,9 +15566,9 @@
       }
     },
     "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==",
+      "version": "1.2.5",
+      "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+      "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
       "dev": true
     },
     "wrap-ansi": {
diff --git a/package.json b/package.json
old mode 100644
new mode 100755
diff --git a/src/algorithms/cryptography/caesar-cipher/README.md b/src/algorithms/cryptography/caesar-cipher/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/cryptography/caesar-cipher/README.ru-RU.md b/src/algorithms/cryptography/caesar-cipher/README.ru-RU.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/cryptography/caesar-cipher/__test__/caesarCipher.test.js b/src/algorithms/cryptography/caesar-cipher/__test__/caesarCipher.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/cryptography/caesar-cipher/caesarCipher.js b/src/algorithms/cryptography/caesar-cipher/caesarCipher.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/cryptography/hill-cipher/README.md b/src/algorithms/cryptography/hill-cipher/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/cryptography/hill-cipher/_test_/hillCipher.test.js b/src/algorithms/cryptography/hill-cipher/_test_/hillCipher.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/cryptography/hill-cipher/hillCipher.js b/src/algorithms/cryptography/hill-cipher/hillCipher.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/cryptography/polynomial-hash/PolynomialHash.js b/src/algorithms/cryptography/polynomial-hash/PolynomialHash.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/cryptography/polynomial-hash/README.md b/src/algorithms/cryptography/polynomial-hash/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/cryptography/polynomial-hash/SimplePolynomialHash.js b/src/algorithms/cryptography/polynomial-hash/SimplePolynomialHash.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/cryptography/polynomial-hash/__test__/PolynomialHash.test.js b/src/algorithms/cryptography/polynomial-hash/__test__/PolynomialHash.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/cryptography/polynomial-hash/__test__/SimplePolynomialHash.test.js b/src/algorithms/cryptography/polynomial-hash/__test__/SimplePolynomialHash.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/cryptography/rail-fence-cipher/README.md b/src/algorithms/cryptography/rail-fence-cipher/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/cryptography/rail-fence-cipher/__test__/railFenceCipher.test.js b/src/algorithms/cryptography/rail-fence-cipher/__test__/railFenceCipher.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/cryptography/rail-fence-cipher/railFenceCipher.js b/src/algorithms/cryptography/rail-fence-cipher/railFenceCipher.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/articulation-points/README.md b/src/algorithms/graph/articulation-points/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/articulation-points/__test__/articulationPoints.test.js b/src/algorithms/graph/articulation-points/__test__/articulationPoints.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/articulation-points/articulationPoints.js b/src/algorithms/graph/articulation-points/articulationPoints.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/bellman-ford/README.md b/src/algorithms/graph/bellman-ford/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/bellman-ford/__test__/bellmanFord.test.js b/src/algorithms/graph/bellman-ford/__test__/bellmanFord.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/bellman-ford/bellmanFord.js b/src/algorithms/graph/bellman-ford/bellmanFord.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/breadth-first-search/README.md b/src/algorithms/graph/breadth-first-search/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/breadth-first-search/__test__/breadthFirstSearch.test.js b/src/algorithms/graph/breadth-first-search/__test__/breadthFirstSearch.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/breadth-first-search/breadthFirstSearch.js b/src/algorithms/graph/breadth-first-search/breadthFirstSearch.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/bridges/README.md b/src/algorithms/graph/bridges/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/bridges/__test__/graphBridges.test.js b/src/algorithms/graph/bridges/__test__/graphBridges.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/bridges/graphBridges.js b/src/algorithms/graph/bridges/graphBridges.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/depth-first-search/README.md b/src/algorithms/graph/depth-first-search/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/depth-first-search/__test__/depthFirstSearch.test.js b/src/algorithms/graph/depth-first-search/__test__/depthFirstSearch.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/depth-first-search/depthFirstSearch.js b/src/algorithms/graph/depth-first-search/depthFirstSearch.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/detect-cycle/README.md b/src/algorithms/graph/detect-cycle/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/detect-cycle/__test__/detectDirectedCycle.test.js b/src/algorithms/graph/detect-cycle/__test__/detectDirectedCycle.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/detect-cycle/__test__/detectUndirectedCycle.test.js b/src/algorithms/graph/detect-cycle/__test__/detectUndirectedCycle.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/detect-cycle/__test__/detectUndirectedCycleUsingDisjointSet.test.js b/src/algorithms/graph/detect-cycle/__test__/detectUndirectedCycleUsingDisjointSet.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/detect-cycle/detectDirectedCycle.js b/src/algorithms/graph/detect-cycle/detectDirectedCycle.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/detect-cycle/detectUndirectedCycle.js b/src/algorithms/graph/detect-cycle/detectUndirectedCycle.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/detect-cycle/detectUndirectedCycleUsingDisjointSet.js b/src/algorithms/graph/detect-cycle/detectUndirectedCycleUsingDisjointSet.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/dijkstra/README.ko-KR.md b/src/algorithms/graph/dijkstra/README.ko-KR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/dijkstra/README.md b/src/algorithms/graph/dijkstra/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/dijkstra/__test__/dijkstra.test.js b/src/algorithms/graph/dijkstra/__test__/dijkstra.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/dijkstra/dijkstra.js b/src/algorithms/graph/dijkstra/dijkstra.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/eulerian-path/README.md b/src/algorithms/graph/eulerian-path/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/eulerian-path/__test__/eulerianPath.test.js b/src/algorithms/graph/eulerian-path/__test__/eulerianPath.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/eulerian-path/eulerianPath.js b/src/algorithms/graph/eulerian-path/eulerianPath.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/floyd-warshall/README.md b/src/algorithms/graph/floyd-warshall/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/floyd-warshall/__test__/floydWarshall.test.js b/src/algorithms/graph/floyd-warshall/__test__/floydWarshall.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/floyd-warshall/floydWarshall.js b/src/algorithms/graph/floyd-warshall/floydWarshall.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/hamiltonian-cycle/README.md b/src/algorithms/graph/hamiltonian-cycle/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/hamiltonian-cycle/__test__/hamiltonianCycle.test.js b/src/algorithms/graph/hamiltonian-cycle/__test__/hamiltonianCycle.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/hamiltonian-cycle/hamiltonianCycle.js b/src/algorithms/graph/hamiltonian-cycle/hamiltonianCycle.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/kruskal/README.ko-KR.md b/src/algorithms/graph/kruskal/README.ko-KR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/kruskal/README.md b/src/algorithms/graph/kruskal/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/kruskal/__test__/kruskal.test.js b/src/algorithms/graph/kruskal/__test__/kruskal.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/kruskal/kruskal.js b/src/algorithms/graph/kruskal/kruskal.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/prim/README.md b/src/algorithms/graph/prim/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/prim/__test__/prim.test.js b/src/algorithms/graph/prim/__test__/prim.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/prim/prim.js b/src/algorithms/graph/prim/prim.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/strongly-connected-components/README.md b/src/algorithms/graph/strongly-connected-components/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/strongly-connected-components/__test__/stronglyConnectedComponents.test.js b/src/algorithms/graph/strongly-connected-components/__test__/stronglyConnectedComponents.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/strongly-connected-components/stronglyConnectedComponents.js b/src/algorithms/graph/strongly-connected-components/stronglyConnectedComponents.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/topological-sorting/README.md b/src/algorithms/graph/topological-sorting/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/topological-sorting/__test__/topologicalSort.test.js b/src/algorithms/graph/topological-sorting/__test__/topologicalSort.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/topological-sorting/topologicalSort.js b/src/algorithms/graph/topological-sorting/topologicalSort.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/travelling-salesman/README.md b/src/algorithms/graph/travelling-salesman/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/travelling-salesman/__test__/bfTravellingSalesman.test.js b/src/algorithms/graph/travelling-salesman/__test__/bfTravellingSalesman.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/graph/travelling-salesman/bfTravellingSalesman.js b/src/algorithms/graph/travelling-salesman/bfTravellingSalesman.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/image-processing/seam-carving/README.md b/src/algorithms/image-processing/seam-carving/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/image-processing/seam-carving/README.ru-RU.md b/src/algorithms/image-processing/seam-carving/README.ru-RU.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/image-processing/seam-carving/__tests__/resizeImageWidth.node.js b/src/algorithms/image-processing/seam-carving/__tests__/resizeImageWidth.node.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/image-processing/seam-carving/__tests__/test-image-after.png b/src/algorithms/image-processing/seam-carving/__tests__/test-image-after.png
old mode 100644
new mode 100755
diff --git a/src/algorithms/image-processing/seam-carving/__tests__/test-image-before.png b/src/algorithms/image-processing/seam-carving/__tests__/test-image-before.png
old mode 100644
new mode 100755
diff --git a/src/algorithms/image-processing/seam-carving/resizeImageWidth.js b/src/algorithms/image-processing/seam-carving/resizeImageWidth.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/image-processing/utils/imageData.js b/src/algorithms/image-processing/utils/imageData.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/linked-list/reverse-traversal/README.md b/src/algorithms/linked-list/reverse-traversal/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/linked-list/reverse-traversal/README.pt-BR.md b/src/algorithms/linked-list/reverse-traversal/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/linked-list/reverse-traversal/README.zh-CN.md b/src/algorithms/linked-list/reverse-traversal/README.zh-CN.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/linked-list/reverse-traversal/__test__/reverseTraversal.test.js b/src/algorithms/linked-list/reverse-traversal/__test__/reverseTraversal.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/linked-list/reverse-traversal/reverseTraversal.js b/src/algorithms/linked-list/reverse-traversal/reverseTraversal.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/linked-list/traversal/README.md b/src/algorithms/linked-list/traversal/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/linked-list/traversal/README.pt-BR.md b/src/algorithms/linked-list/traversal/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/linked-list/traversal/README.ru-RU.md b/src/algorithms/linked-list/traversal/README.ru-RU.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/linked-list/traversal/README.zh-CN.md b/src/algorithms/linked-list/traversal/README.zh-CN.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/linked-list/traversal/__test__/traversal.test.js b/src/algorithms/linked-list/traversal/__test__/traversal.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/linked-list/traversal/traversal.js b/src/algorithms/linked-list/traversal/traversal.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/binary-floating-point/README.md b/src/algorithms/math/binary-floating-point/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/binary-floating-point/__tests__/bitsToFloat.test.js b/src/algorithms/math/binary-floating-point/__tests__/bitsToFloat.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/binary-floating-point/__tests__/floatAsBinaryString.test.js b/src/algorithms/math/binary-floating-point/__tests__/floatAsBinaryString.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/binary-floating-point/bitsToFloat.js b/src/algorithms/math/binary-floating-point/bitsToFloat.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/binary-floating-point/floatAsBinaryString.js b/src/algorithms/math/binary-floating-point/floatAsBinaryString.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/binary-floating-point/images/02-half-precision-floating-point-number-explained.png b/src/algorithms/math/binary-floating-point/images/02-half-precision-floating-point-number-explained.png
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/binary-floating-point/images/03-scientific-notation.png b/src/algorithms/math/binary-floating-point/images/03-scientific-notation.png
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/binary-floating-point/testCases.js b/src/algorithms/math/binary-floating-point/testCases.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/README.fr-FR.md b/src/algorithms/math/bits/README.fr-FR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/README.md b/src/algorithms/math/bits/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/README.zh-CN.md b/src/algorithms/math/bits/README.zh-CN.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/__test__/bitLength.test.js b/src/algorithms/math/bits/__test__/bitLength.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/__test__/bitsDiff.test.js b/src/algorithms/math/bits/__test__/bitsDiff.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/__test__/clearBit.test.js b/src/algorithms/math/bits/__test__/clearBit.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/__test__/countSetBits.test.js b/src/algorithms/math/bits/__test__/countSetBits.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/__test__/divideByTwo.test.js b/src/algorithms/math/bits/__test__/divideByTwo.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/__test__/fullAdder.test.js b/src/algorithms/math/bits/__test__/fullAdder.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/__test__/getBit.test.js b/src/algorithms/math/bits/__test__/getBit.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/__test__/isEven.test.js b/src/algorithms/math/bits/__test__/isEven.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/__test__/isPositive.test.js b/src/algorithms/math/bits/__test__/isPositive.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/__test__/isPowerOfTwo.test.js b/src/algorithms/math/bits/__test__/isPowerOfTwo.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/__test__/multiply.test.js b/src/algorithms/math/bits/__test__/multiply.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/__test__/multiplyByTwo.test.js b/src/algorithms/math/bits/__test__/multiplyByTwo.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/__test__/multiplyUnsigned.test.js b/src/algorithms/math/bits/__test__/multiplyUnsigned.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/__test__/setBit.test.js b/src/algorithms/math/bits/__test__/setBit.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/__test__/switchSign.test.js b/src/algorithms/math/bits/__test__/switchSign.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/__test__/updateBit.test.js b/src/algorithms/math/bits/__test__/updateBit.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/bitLength.js b/src/algorithms/math/bits/bitLength.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/bitsDiff.js b/src/algorithms/math/bits/bitsDiff.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/clearBit.js b/src/algorithms/math/bits/clearBit.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/countSetBits.js b/src/algorithms/math/bits/countSetBits.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/divideByTwo.js b/src/algorithms/math/bits/divideByTwo.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/fullAdder.js b/src/algorithms/math/bits/fullAdder.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/getBit.js b/src/algorithms/math/bits/getBit.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/isEven.js b/src/algorithms/math/bits/isEven.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/isPositive.js b/src/algorithms/math/bits/isPositive.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/isPowerOfTwo.js b/src/algorithms/math/bits/isPowerOfTwo.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/multiply.js b/src/algorithms/math/bits/multiply.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/multiplyByTwo.js b/src/algorithms/math/bits/multiplyByTwo.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/multiplyUnsigned.js b/src/algorithms/math/bits/multiplyUnsigned.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/setBit.js b/src/algorithms/math/bits/setBit.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/switchSign.js b/src/algorithms/math/bits/switchSign.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/bits/updateBit.js b/src/algorithms/math/bits/updateBit.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/complex-number/ComplexNumber.js b/src/algorithms/math/complex-number/ComplexNumber.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/complex-number/README.fr-FR.md b/src/algorithms/math/complex-number/README.fr-FR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/complex-number/README.md b/src/algorithms/math/complex-number/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/complex-number/__test__/ComplexNumber.test.js b/src/algorithms/math/complex-number/__test__/ComplexNumber.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/euclidean-algorithm/README.fr-FR.md b/src/algorithms/math/euclidean-algorithm/README.fr-FR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/euclidean-algorithm/README.md b/src/algorithms/math/euclidean-algorithm/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/euclidean-algorithm/__test__/euclideanAlgorithm.test.js b/src/algorithms/math/euclidean-algorithm/__test__/euclideanAlgorithm.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/euclidean-algorithm/__test__/euclideanAlgorithmIterative.test.js b/src/algorithms/math/euclidean-algorithm/__test__/euclideanAlgorithmIterative.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/euclidean-algorithm/euclideanAlgorithm.js b/src/algorithms/math/euclidean-algorithm/euclideanAlgorithm.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/euclidean-algorithm/euclideanAlgorithmIterative.js b/src/algorithms/math/euclidean-algorithm/euclideanAlgorithmIterative.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/euclidean-distance/README.md b/src/algorithms/math/euclidean-distance/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/euclidean-distance/__tests__/euclideanDistance.test.js b/src/algorithms/math/euclidean-distance/__tests__/euclideanDistance.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/euclidean-distance/euclideanDistance.js b/src/algorithms/math/euclidean-distance/euclideanDistance.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/factorial/README.fr-FR.md b/src/algorithms/math/factorial/README.fr-FR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/factorial/README.ka-GE.md b/src/algorithms/math/factorial/README.ka-GE.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/factorial/README.md b/src/algorithms/math/factorial/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/factorial/README.tr-TR.md b/src/algorithms/math/factorial/README.tr-TR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/factorial/README.uk-UA.md b/src/algorithms/math/factorial/README.uk-UA.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/factorial/README.zh-CN.md b/src/algorithms/math/factorial/README.zh-CN.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/factorial/__test__/factorial.test.js b/src/algorithms/math/factorial/__test__/factorial.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/factorial/__test__/factorialRecursive.test.js b/src/algorithms/math/factorial/__test__/factorialRecursive.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/factorial/factorial.js b/src/algorithms/math/factorial/factorial.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/factorial/factorialRecursive.js b/src/algorithms/math/factorial/factorialRecursive.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fast-powering/README.fr-FR.md b/src/algorithms/math/fast-powering/README.fr-FR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fast-powering/README.md b/src/algorithms/math/fast-powering/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fast-powering/__test__/fastPowering.test.js b/src/algorithms/math/fast-powering/__test__/fastPowering.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fast-powering/fastPowering.js b/src/algorithms/math/fast-powering/fastPowering.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fibonacci/README.fr-FR.md b/src/algorithms/math/fibonacci/README.fr-FR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fibonacci/README.ka-GE.md b/src/algorithms/math/fibonacci/README.ka-GE.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fibonacci/README.md b/src/algorithms/math/fibonacci/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fibonacci/README.zh-CN.md b/src/algorithms/math/fibonacci/README.zh-CN.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fibonacci/__test__/fibonacci.test.js b/src/algorithms/math/fibonacci/__test__/fibonacci.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fibonacci/__test__/fibonacciNth.test.js b/src/algorithms/math/fibonacci/__test__/fibonacciNth.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fibonacci/__test__/fibonacciNthClosedForm.test.js b/src/algorithms/math/fibonacci/__test__/fibonacciNthClosedForm.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fibonacci/fibonacci.js b/src/algorithms/math/fibonacci/fibonacci.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fibonacci/fibonacciNth.js b/src/algorithms/math/fibonacci/fibonacciNth.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fibonacci/fibonacciNthClosedForm.js b/src/algorithms/math/fibonacci/fibonacciNthClosedForm.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fourier-transform/README.fr-FR.md b/src/algorithms/math/fourier-transform/README.fr-FR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fourier-transform/README.md b/src/algorithms/math/fourier-transform/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fourier-transform/__test__/FourierTester.js b/src/algorithms/math/fourier-transform/__test__/FourierTester.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fourier-transform/__test__/discreteFourierTransform.test.js b/src/algorithms/math/fourier-transform/__test__/discreteFourierTransform.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fourier-transform/__test__/fastFourierTransform.test.js b/src/algorithms/math/fourier-transform/__test__/fastFourierTransform.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fourier-transform/__test__/inverseDiscreteFourierTransform.test.js b/src/algorithms/math/fourier-transform/__test__/inverseDiscreteFourierTransform.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fourier-transform/discreteFourierTransform.js b/src/algorithms/math/fourier-transform/discreteFourierTransform.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fourier-transform/fastFourierTransform.js b/src/algorithms/math/fourier-transform/fastFourierTransform.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/fourier-transform/inverseDiscreteFourierTransform.js b/src/algorithms/math/fourier-transform/inverseDiscreteFourierTransform.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/horner-method/README.md b/src/algorithms/math/horner-method/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/horner-method/__test__/classicPolynome.test.js b/src/algorithms/math/horner-method/__test__/classicPolynome.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/horner-method/__test__/hornerMethod.test.js b/src/algorithms/math/horner-method/__test__/hornerMethod.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/horner-method/classicPolynome.js b/src/algorithms/math/horner-method/classicPolynome.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/horner-method/hornerMethod.js b/src/algorithms/math/horner-method/hornerMethod.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/integer-partition/README.md b/src/algorithms/math/integer-partition/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/integer-partition/__test__/integerPartition.test.js b/src/algorithms/math/integer-partition/__test__/integerPartition.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/integer-partition/integerPartition.js b/src/algorithms/math/integer-partition/integerPartition.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/is-power-of-two/README.md b/src/algorithms/math/is-power-of-two/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/is-power-of-two/__test__/isPowerOfTwo.test.js b/src/algorithms/math/is-power-of-two/__test__/isPowerOfTwo.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/is-power-of-two/__test__/isPowerOfTwoBitwise.test.js b/src/algorithms/math/is-power-of-two/__test__/isPowerOfTwoBitwise.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/is-power-of-two/isPowerOfTwo.js b/src/algorithms/math/is-power-of-two/isPowerOfTwo.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/is-power-of-two/isPowerOfTwoBitwise.js b/src/algorithms/math/is-power-of-two/isPowerOfTwoBitwise.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/least-common-multiple/README.md b/src/algorithms/math/least-common-multiple/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/least-common-multiple/__test__/leastCommonMultiple.test.js b/src/algorithms/math/least-common-multiple/__test__/leastCommonMultiple.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/least-common-multiple/leastCommonMultiple.js b/src/algorithms/math/least-common-multiple/leastCommonMultiple.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/liu-hui/README.md b/src/algorithms/math/liu-hui/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/liu-hui/__test__/liuHui.test.js b/src/algorithms/math/liu-hui/__test__/liuHui.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/liu-hui/liuHui.js b/src/algorithms/math/liu-hui/liuHui.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/matrix/Matrix.js b/src/algorithms/math/matrix/Matrix.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/matrix/README.md b/src/algorithms/math/matrix/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/matrix/__tests__/Matrix.test.js b/src/algorithms/math/matrix/__tests__/Matrix.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/pascal-triangle/README.md b/src/algorithms/math/pascal-triangle/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/pascal-triangle/__test__/pascalTriangle.test.js b/src/algorithms/math/pascal-triangle/__test__/pascalTriangle.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/pascal-triangle/__test__/pascalTriangleRecursive.test.js b/src/algorithms/math/pascal-triangle/__test__/pascalTriangleRecursive.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/pascal-triangle/pascalTriangle.js b/src/algorithms/math/pascal-triangle/pascalTriangle.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/pascal-triangle/pascalTriangleRecursive.js b/src/algorithms/math/pascal-triangle/pascalTriangleRecursive.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/primality-test/README.md b/src/algorithms/math/primality-test/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/primality-test/__test__/trialDivision.test.js b/src/algorithms/math/primality-test/__test__/trialDivision.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/primality-test/trialDivision.js b/src/algorithms/math/primality-test/trialDivision.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/prime-factors/README.md b/src/algorithms/math/prime-factors/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/prime-factors/README.zh-CN.md b/src/algorithms/math/prime-factors/README.zh-CN.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/prime-factors/__test__/primeFactors.test.js b/src/algorithms/math/prime-factors/__test__/primeFactors.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/prime-factors/primeFactors.js b/src/algorithms/math/prime-factors/primeFactors.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/radian/README.md b/src/algorithms/math/radian/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/radian/__test__/degreeToRadian.test.js b/src/algorithms/math/radian/__test__/degreeToRadian.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/radian/__test__/radianToDegree.test.js b/src/algorithms/math/radian/__test__/radianToDegree.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/radian/degreeToRadian.js b/src/algorithms/math/radian/degreeToRadian.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/radian/radianToDegree.js b/src/algorithms/math/radian/radianToDegree.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/sieve-of-eratosthenes/README.md b/src/algorithms/math/sieve-of-eratosthenes/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/sieve-of-eratosthenes/__test__/sieveOfEratosthenes.test.js b/src/algorithms/math/sieve-of-eratosthenes/__test__/sieveOfEratosthenes.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/sieve-of-eratosthenes/sieveOfEratosthenes.js b/src/algorithms/math/sieve-of-eratosthenes/sieveOfEratosthenes.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/square-root/README.md b/src/algorithms/math/square-root/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/square-root/__test__/squareRoot.test.js b/src/algorithms/math/square-root/__test__/squareRoot.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/math/square-root/squareRoot.js b/src/algorithms/math/square-root/squareRoot.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/ml/k-means/README.md b/src/algorithms/ml/k-means/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/ml/k-means/README.pt-BR.md b/src/algorithms/ml/k-means/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/ml/k-means/__test__/kMeans.test.js b/src/algorithms/ml/k-means/__test__/kMeans.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/ml/k-means/kMeans.js b/src/algorithms/ml/k-means/kMeans.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/ml/knn/README.md b/src/algorithms/ml/knn/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/ml/knn/README.pt-BR.md b/src/algorithms/ml/knn/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/ml/knn/__test__/knn.test.js b/src/algorithms/ml/knn/__test__/knn.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/ml/knn/kNN.js b/src/algorithms/ml/knn/kNN.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/search/binary-search/README.md b/src/algorithms/search/binary-search/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/search/binary-search/README.pt-BR.md b/src/algorithms/search/binary-search/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/search/binary-search/__test__/binarySearch.test.js b/src/algorithms/search/binary-search/__test__/binarySearch.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/search/binary-search/binarySearch.js b/src/algorithms/search/binary-search/binarySearch.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/search/interpolation-search/README.md b/src/algorithms/search/interpolation-search/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/search/interpolation-search/__test__/interpolationSearch.test.js b/src/algorithms/search/interpolation-search/__test__/interpolationSearch.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/search/interpolation-search/interpolationSearch.js b/src/algorithms/search/interpolation-search/interpolationSearch.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/search/jump-search/README.md b/src/algorithms/search/jump-search/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/search/jump-search/__test__/jumpSearch.test.js b/src/algorithms/search/jump-search/__test__/jumpSearch.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/search/jump-search/jumpSearch.js b/src/algorithms/search/jump-search/jumpSearch.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/search/linear-search/README.md b/src/algorithms/search/linear-search/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/search/linear-search/README.pt-BR.md b/src/algorithms/search/linear-search/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/search/linear-search/__test__/linearSearch.test.js b/src/algorithms/search/linear-search/__test__/linearSearch.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/search/linear-search/linearSearch.js b/src/algorithms/search/linear-search/linearSearch.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/cartesian-product/README.md b/src/algorithms/sets/cartesian-product/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/cartesian-product/__test__/cartesianProduct.test.js b/src/algorithms/sets/cartesian-product/__test__/cartesianProduct.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/cartesian-product/cartesianProduct.js b/src/algorithms/sets/cartesian-product/cartesianProduct.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/combination-sum/README.md b/src/algorithms/sets/combination-sum/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/combination-sum/__test__/combinationSum.test.js b/src/algorithms/sets/combination-sum/__test__/combinationSum.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/combination-sum/combinationSum.js b/src/algorithms/sets/combination-sum/combinationSum.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/combinations/README.md b/src/algorithms/sets/combinations/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/combinations/__test__/combineWithRepetitions.test.js b/src/algorithms/sets/combinations/__test__/combineWithRepetitions.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/combinations/__test__/combineWithoutRepetitions.test.js b/src/algorithms/sets/combinations/__test__/combineWithoutRepetitions.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/combinations/combineWithRepetitions.js b/src/algorithms/sets/combinations/combineWithRepetitions.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/combinations/combineWithoutRepetitions.js b/src/algorithms/sets/combinations/combineWithoutRepetitions.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/combinations/images/combinations-overview.jpg b/src/algorithms/sets/combinations/images/combinations-overview.jpg
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/combinations/images/combinations-with-repetitions.jpg b/src/algorithms/sets/combinations/images/combinations-with-repetitions.jpg
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/combinations/images/combinations-without-repetitions.jpg b/src/algorithms/sets/combinations/images/combinations-without-repetitions.jpg
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/combinations/images/overview.png b/src/algorithms/sets/combinations/images/overview.png
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/fisher-yates/README.md b/src/algorithms/sets/fisher-yates/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/fisher-yates/__test__/fisherYates.test.js b/src/algorithms/sets/fisher-yates/__test__/fisherYates.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/fisher-yates/fisherYates.js b/src/algorithms/sets/fisher-yates/fisherYates.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/knapsack-problem/Knapsack.js b/src/algorithms/sets/knapsack-problem/Knapsack.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/knapsack-problem/KnapsackItem.js b/src/algorithms/sets/knapsack-problem/KnapsackItem.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/knapsack-problem/README.md b/src/algorithms/sets/knapsack-problem/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/knapsack-problem/__test__/Knapsack.test.js b/src/algorithms/sets/knapsack-problem/__test__/Knapsack.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/knapsack-problem/__test__/KnapsackItem.test.js b/src/algorithms/sets/knapsack-problem/__test__/KnapsackItem.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/longest-common-subsequence/README.md b/src/algorithms/sets/longest-common-subsequence/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/longest-common-subsequence/__test__/longestCommonSubsequence.test.js b/src/algorithms/sets/longest-common-subsequence/__test__/longestCommonSubsequence.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/longest-common-subsequence/__test__/longestCommonSubsequenceRecursive.test.js b/src/algorithms/sets/longest-common-subsequence/__test__/longestCommonSubsequenceRecursive.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/longest-common-subsequence/longestCommonSubsequence.js b/src/algorithms/sets/longest-common-subsequence/longestCommonSubsequence.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/longest-common-subsequence/longestCommonSubsequenceRecursive.js b/src/algorithms/sets/longest-common-subsequence/longestCommonSubsequenceRecursive.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/longest-increasing-subsequence/README.md b/src/algorithms/sets/longest-increasing-subsequence/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/longest-increasing-subsequence/__test__/dpLongestIncreasingSubsequence.test.js b/src/algorithms/sets/longest-increasing-subsequence/__test__/dpLongestIncreasingSubsequence.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/longest-increasing-subsequence/dpLongestIncreasingSubsequence.js b/src/algorithms/sets/longest-increasing-subsequence/dpLongestIncreasingSubsequence.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/maximum-subarray/README.md b/src/algorithms/sets/maximum-subarray/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/maximum-subarray/__test__/bfMaximumSubarray.test.js b/src/algorithms/sets/maximum-subarray/__test__/bfMaximumSubarray.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/maximum-subarray/__test__/dcMaximumSubarraySum.test.js b/src/algorithms/sets/maximum-subarray/__test__/dcMaximumSubarraySum.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/maximum-subarray/__test__/dpMaximumSubarray.test.js b/src/algorithms/sets/maximum-subarray/__test__/dpMaximumSubarray.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/maximum-subarray/bfMaximumSubarray.js b/src/algorithms/sets/maximum-subarray/bfMaximumSubarray.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/maximum-subarray/dcMaximumSubarraySum.js b/src/algorithms/sets/maximum-subarray/dcMaximumSubarraySum.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/maximum-subarray/dpMaximumSubarray.js b/src/algorithms/sets/maximum-subarray/dpMaximumSubarray.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/permutations/README.md b/src/algorithms/sets/permutations/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/permutations/__test__/permutateWithRepetitions.test.js b/src/algorithms/sets/permutations/__test__/permutateWithRepetitions.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/permutations/__test__/permutateWithoutRepetitions.test.js b/src/algorithms/sets/permutations/__test__/permutateWithoutRepetitions.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/permutations/images/overview.png b/src/algorithms/sets/permutations/images/overview.png
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/permutations/images/permutations-overview.jpeg b/src/algorithms/sets/permutations/images/permutations-overview.jpeg
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/permutations/images/permutations-with-repetitions.jpg b/src/algorithms/sets/permutations/images/permutations-with-repetitions.jpg
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/permutations/images/permutations-without-repetitions.jpg b/src/algorithms/sets/permutations/images/permutations-without-repetitions.jpg
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/permutations/permutateWithRepetitions.js b/src/algorithms/sets/permutations/permutateWithRepetitions.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/permutations/permutateWithoutRepetitions.js b/src/algorithms/sets/permutations/permutateWithoutRepetitions.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/power-set/README.md b/src/algorithms/sets/power-set/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/power-set/__test__/btPowerSet.test.js b/src/algorithms/sets/power-set/__test__/btPowerSet.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/power-set/__test__/bwPowerSet.test.js b/src/algorithms/sets/power-set/__test__/bwPowerSet.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/power-set/__test__/caPowerSet.test.js b/src/algorithms/sets/power-set/__test__/caPowerSet.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/power-set/btPowerSet.js b/src/algorithms/sets/power-set/btPowerSet.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/power-set/bwPowerSet.js b/src/algorithms/sets/power-set/bwPowerSet.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/power-set/caPowerSet.js b/src/algorithms/sets/power-set/caPowerSet.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/shortest-common-supersequence/README.md b/src/algorithms/sets/shortest-common-supersequence/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/shortest-common-supersequence/__test__/shortestCommonSupersequence.test.js b/src/algorithms/sets/shortest-common-supersequence/__test__/shortestCommonSupersequence.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sets/shortest-common-supersequence/shortestCommonSupersequence.js b/src/algorithms/sets/shortest-common-supersequence/shortestCommonSupersequence.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/Sort.js b/src/algorithms/sorting/Sort.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/SortTester.js b/src/algorithms/sorting/SortTester.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/__test__/Sort.test.js b/src/algorithms/sorting/__test__/Sort.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/bubble-sort/BubbleSort.js b/src/algorithms/sorting/bubble-sort/BubbleSort.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/bubble-sort/README.md b/src/algorithms/sorting/bubble-sort/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/bubble-sort/README.pt-BR.md b/src/algorithms/sorting/bubble-sort/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/bubble-sort/__test__/BubbleSort.test.js b/src/algorithms/sorting/bubble-sort/__test__/BubbleSort.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/bucket-sort/BucketSort.js b/src/algorithms/sorting/bucket-sort/BucketSort.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/bucket-sort/README.md b/src/algorithms/sorting/bucket-sort/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/bucket-sort/__test__/BucketSort.test.js b/src/algorithms/sorting/bucket-sort/__test__/BucketSort.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/bucket-sort/images/bucket_sort_1.png b/src/algorithms/sorting/bucket-sort/images/bucket_sort_1.png
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/bucket-sort/images/bucket_sort_2.png b/src/algorithms/sorting/bucket-sort/images/bucket_sort_2.png
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/counting-sort/CountingSort.js b/src/algorithms/sorting/counting-sort/CountingSort.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/counting-sort/README.md b/src/algorithms/sorting/counting-sort/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/counting-sort/README.pt-br.md b/src/algorithms/sorting/counting-sort/README.pt-br.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/counting-sort/__test__/CountingSort.test.js b/src/algorithms/sorting/counting-sort/__test__/CountingSort.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/heap-sort/HeapSort.js b/src/algorithms/sorting/heap-sort/HeapSort.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/heap-sort/README.md b/src/algorithms/sorting/heap-sort/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/heap-sort/README.pt-BR.md b/src/algorithms/sorting/heap-sort/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/heap-sort/__test__/HeapSort.test.js b/src/algorithms/sorting/heap-sort/__test__/HeapSort.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/insertion-sort/InsertionSort.js b/src/algorithms/sorting/insertion-sort/InsertionSort.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/insertion-sort/README.md b/src/algorithms/sorting/insertion-sort/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/insertion-sort/README.pt-BR.md b/src/algorithms/sorting/insertion-sort/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/insertion-sort/__test__/InsertionSort.test.js b/src/algorithms/sorting/insertion-sort/__test__/InsertionSort.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/merge-sort/MergeSort.js b/src/algorithms/sorting/merge-sort/MergeSort.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/merge-sort/README.ko-KR.md b/src/algorithms/sorting/merge-sort/README.ko-KR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/merge-sort/README.md b/src/algorithms/sorting/merge-sort/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/merge-sort/README.pt-BR.md b/src/algorithms/sorting/merge-sort/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/merge-sort/__test__/MergeSort.test.js b/src/algorithms/sorting/merge-sort/__test__/MergeSort.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/quick-sort/QuickSort.js b/src/algorithms/sorting/quick-sort/QuickSort.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/quick-sort/QuickSortInPlace.js b/src/algorithms/sorting/quick-sort/QuickSortInPlace.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/quick-sort/README.md b/src/algorithms/sorting/quick-sort/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/quick-sort/README.pt-BR.md b/src/algorithms/sorting/quick-sort/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/quick-sort/README.zh-CN.md b/src/algorithms/sorting/quick-sort/README.zh-CN.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/quick-sort/__test__/QuickSort.test.js b/src/algorithms/sorting/quick-sort/__test__/QuickSort.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/quick-sort/__test__/QuickSortInPlace.test.js b/src/algorithms/sorting/quick-sort/__test__/QuickSortInPlace.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/radix-sort/README.md b/src/algorithms/sorting/radix-sort/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/radix-sort/README.pt-BR.md b/src/algorithms/sorting/radix-sort/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/radix-sort/RadixSort.js b/src/algorithms/sorting/radix-sort/RadixSort.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/radix-sort/__test__/RadixSort.test.js b/src/algorithms/sorting/radix-sort/__test__/RadixSort.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/radix-sort/images/radix-sort.png b/src/algorithms/sorting/radix-sort/images/radix-sort.png
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/selection-sort/README.md b/src/algorithms/sorting/selection-sort/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/selection-sort/README.pt-BR.md b/src/algorithms/sorting/selection-sort/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/selection-sort/SelectionSort.js b/src/algorithms/sorting/selection-sort/SelectionSort.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/selection-sort/__test__/SelectionSort.test.js b/src/algorithms/sorting/selection-sort/__test__/SelectionSort.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/shell-sort/README.md b/src/algorithms/sorting/shell-sort/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/shell-sort/README.pt-BR.md b/src/algorithms/sorting/shell-sort/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/shell-sort/ShellSort.js b/src/algorithms/sorting/shell-sort/ShellSort.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/sorting/shell-sort/__test__/ShellSort.test.js b/src/algorithms/sorting/shell-sort/__test__/ShellSort.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/statistics/weighted-random/README.md b/src/algorithms/statistics/weighted-random/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/statistics/weighted-random/__test__/weightedRandom.test.js b/src/algorithms/statistics/weighted-random/__test__/weightedRandom.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/statistics/weighted-random/images/cover.png b/src/algorithms/statistics/weighted-random/images/cover.png
old mode 100644
new mode 100755
diff --git a/src/algorithms/statistics/weighted-random/weightedRandom.js b/src/algorithms/statistics/weighted-random/weightedRandom.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/hamming-distance/README.md b/src/algorithms/string/hamming-distance/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/hamming-distance/__test__/hammingDistance.test.js b/src/algorithms/string/hamming-distance/__test__/hammingDistance.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/hamming-distance/hammingDistance.js b/src/algorithms/string/hamming-distance/hammingDistance.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/knuth-morris-pratt/README.md b/src/algorithms/string/knuth-morris-pratt/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/knuth-morris-pratt/__test__/knuthMorrisPratt.test.js b/src/algorithms/string/knuth-morris-pratt/__test__/knuthMorrisPratt.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/knuth-morris-pratt/knuthMorrisPratt.js b/src/algorithms/string/knuth-morris-pratt/knuthMorrisPratt.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/levenshtein-distance/README.md b/src/algorithms/string/levenshtein-distance/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/levenshtein-distance/__test__/levenshteinDistance.test.js b/src/algorithms/string/levenshtein-distance/__test__/levenshteinDistance.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/levenshtein-distance/levenshteinDistance.js b/src/algorithms/string/levenshtein-distance/levenshteinDistance.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/longest-common-substring/README.md b/src/algorithms/string/longest-common-substring/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/longest-common-substring/__test__/longestCommonSubstring.test.js b/src/algorithms/string/longest-common-substring/__test__/longestCommonSubstring.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/longest-common-substring/longestCommonSubstring.js b/src/algorithms/string/longest-common-substring/longestCommonSubstring.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/palindrome/README.md b/src/algorithms/string/palindrome/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/palindrome/__test__/isPalindrome.test.js b/src/algorithms/string/palindrome/__test__/isPalindrome.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/palindrome/isPalindrome.js b/src/algorithms/string/palindrome/isPalindrome.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/rabin-karp/README.md b/src/algorithms/string/rabin-karp/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/rabin-karp/__test__/rabinKarp.test.js b/src/algorithms/string/rabin-karp/__test__/rabinKarp.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/rabin-karp/rabinKarp.js b/src/algorithms/string/rabin-karp/rabinKarp.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/regular-expression-matching/README.md b/src/algorithms/string/regular-expression-matching/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/regular-expression-matching/__test__/regularExpressionMatching.test.js b/src/algorithms/string/regular-expression-matching/__test__/regularExpressionMatching.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/regular-expression-matching/regularExpressionMatching.js b/src/algorithms/string/regular-expression-matching/regularExpressionMatching.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/z-algorithm/README.md b/src/algorithms/string/z-algorithm/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/z-algorithm/__test__/zAlgorithm.test.js b/src/algorithms/string/z-algorithm/__test__/zAlgorithm.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/string/z-algorithm/zAlgorithm.js b/src/algorithms/string/z-algorithm/zAlgorithm.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/tree/breadth-first-search/README.md b/src/algorithms/tree/breadth-first-search/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/tree/breadth-first-search/__test__/breadthFirstSearch.test.js b/src/algorithms/tree/breadth-first-search/__test__/breadthFirstSearch.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/tree/breadth-first-search/breadthFirstSearch.js b/src/algorithms/tree/breadth-first-search/breadthFirstSearch.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/tree/depth-first-search/README.md b/src/algorithms/tree/depth-first-search/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/tree/depth-first-search/__test__/depthFirstSearch.test.js b/src/algorithms/tree/depth-first-search/__test__/depthFirstSearch.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/tree/depth-first-search/depthFirstSearch.js b/src/algorithms/tree/depth-first-search/depthFirstSearch.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/tree/inorder-traversal/README.en-IN.md b/src/algorithms/tree/inorder-traversal/README.en-IN.md
new file mode 100644
index 0000000000..29b8b401cc
--- /dev/null
+++ b/src/algorithms/tree/inorder-traversal/README.en-IN.md
@@ -0,0 +1,37 @@
+# Inorder Traversal
+
+Inorder traversal is an algorithm for traversing a tree 
+data structures. One starts at 
+the root and explores left branch of tree, root node and then right branch of tree
+
+
+# Inorder Traversal Algorithm
+
+Inorder traversal is an algorithm for traversing tree data structures.The algorithm involves visiting each node in a specific order: left branch, root node, and then the right branch. This ensures that the nodes are visited in ascending order for Binary Search Trees (BST).
+
+## Inorder Traversal Steps
+
+1. **Start at the root node** of the tree.
+2. **Recursively explore the left subtree**:
+    - Move to the left child of the current node.
+    - Repeat the inorder traversal on the left subtree.
+3. **Visit the root node**:
+    - Process the current node (e.g., print its value, apply a callback function).
+4. **Recursively explore the right subtree**:
+    - Move to the right child of the current node.
+    - Repeat the inorder traversal on the right subtree.
+
+
+## Complexities
+
+### Time Complexity
+
+O(N) Where N is number of nodes in Tree
+
+### Space Complexity
+
+O(H) Where H is height of tree
+
+## References
+-  [Wikipedia](https://en.wikipedia.org/wiki/Tree_traversal)
+
diff --git a/src/algorithms/tree/inorder-traversal/__test__/inorderTraversal.test.js b/src/algorithms/tree/inorder-traversal/__test__/inorderTraversal.test.js
new file mode 100755
index 0000000000..f2f0473485
--- /dev/null
+++ b/src/algorithms/tree/inorder-traversal/__test__/inorderTraversal.test.js
@@ -0,0 +1,33 @@
+import BinarySearchTreeNode from '../../../../data-structures/tree/binary-search-tree/BinarySearchTreeNode';
+import inorderTraversal from '../inoderTraversal';
+
+describe('Inorder Traversal of Binary tree', () => {
+  it('sholud give inorder travsersal of binary tree', () => {
+    // creating BST
+    const bst = new BinarySearchTreeNode(10);
+
+    // inserting values to BST
+    bst.insert(25);
+    bst.insert(-5);
+    bst.insert(11);
+    bst.insert(9);
+    bst.insert(8);
+    bst.insert(15);
+
+    // callback function
+    const callback = jest.fn();
+    inorderTraversal(bst, callback);
+
+    // checking number of times function called
+    expect(callback).toHaveBeenCalledTimes(7);
+
+    // checking values
+    expect(callback.mock.calls[0][0].value).toEqual(-5);
+    expect(callback.mock.calls[1][0].value).toEqual(8);
+    expect(callback.mock.calls[2][0].value).toEqual(9);
+    expect(callback.mock.calls[3][0].value).toEqual(10);
+    expect(callback.mock.calls[4][0].value).toEqual(11);
+    expect(callback.mock.calls[5][0].value).toEqual(15);
+    expect(callback.mock.calls[6][0].value).toEqual(25);
+  });
+});
diff --git a/src/algorithms/tree/inorder-traversal/inoderTraversal.js b/src/algorithms/tree/inorder-traversal/inoderTraversal.js
new file mode 100755
index 0000000000..0bfe5b3c03
--- /dev/null
+++ b/src/algorithms/tree/inorder-traversal/inoderTraversal.js
@@ -0,0 +1,26 @@
+function inorderTraversalRecursive(root, callback) {
+  if (!root) {
+    return;
+  }
+  // left branch
+  inorderTraversalRecursive(root.left, callback);
+
+  // callback calling
+  callback(root);
+
+  // right branch
+
+  inorderTraversalRecursive(root.right, callback);
+}
+
+/**
+ * --Inorder traversal of binary tree
+ * @param {BinaryTreeNode} root - Root node of binary tree
+ * @param {CallableFunction} callback
+ * - Callback function which calles for each node in inorder traversal
+ * @returns {void}
+ */
+
+export default function inorderTraversal(root, callback) {
+  inorderTraversalRecursive(root, callback);
+}
diff --git a/src/algorithms/tree/postorder-traversal/README.en-IN.md b/src/algorithms/tree/postorder-traversal/README.en-IN.md
new file mode 100644
index 0000000000..0c2fd2de4d
--- /dev/null
+++ b/src/algorithms/tree/postorder-traversal/README.en-IN.md
@@ -0,0 +1,30 @@
+
+# Postorder Traversal Algorithm
+
+Postorder traversal is an algorithm for traversing tree data structures.The algorithm involves visiting each node in a specific order: left branch, right branch and then root node. 
+
+## Postorder Traversal Steps
+
+1. **Start at the root node** of the tree.
+2. **Recursively explore the left subtree**:
+    - Move to the left child of the current node.
+    - Repeat the postorder traversal on the left subtree.
+3. **Recursively explore the right subtree**:
+    - Move to the right child of the current node.
+    - Repeat the postorder traversal on the right subtree.
+2. **Visit the root node**:
+    - Process the current node (e.g., print its value, apply a callback function).
+
+## Complexities
+
+### Time Complexity
+
+O(N) Where N is number of nodes in Tree
+
+### Space Complexity
+
+O(H) Where H is height of tree
+
+## References
+-  [Wikipedia](https://en.wikipedia.org/wiki/Tree_traversal)
+
diff --git a/src/algorithms/tree/postorder-traversal/__test__/postorderTraversal.test.js b/src/algorithms/tree/postorder-traversal/__test__/postorderTraversal.test.js
new file mode 100644
index 0000000000..5c32aefe10
--- /dev/null
+++ b/src/algorithms/tree/postorder-traversal/__test__/postorderTraversal.test.js
@@ -0,0 +1,33 @@
+import BinarySearchTreeNode from '../../../../data-structures/tree/binary-search-tree/BinarySearchTreeNode';
+import postorderTraversal from '../postorderTraversal';
+
+describe('Postorder Traversal of Binary tree', () => {
+  it('sholud give postorder travsersal of binary tree', () => {
+    // creating BST
+    const bst = new BinarySearchTreeNode(10);
+
+    // inserting values to BST
+    bst.insert(25);
+    bst.insert(-5);
+    bst.insert(11);
+    bst.insert(9);
+    bst.insert(8);
+    bst.insert(15);
+
+    // callback function
+    const callback = jest.fn();
+    postorderTraversal(bst, callback);
+
+    // checking number of times function called
+    expect(callback).toHaveBeenCalledTimes(7);
+
+    // checking values
+    expect(callback.mock.calls[0][0].value).toEqual(8);
+    expect(callback.mock.calls[1][0].value).toEqual(9);
+    expect(callback.mock.calls[2][0].value).toEqual(-5);
+    expect(callback.mock.calls[3][0].value).toEqual(15);
+    expect(callback.mock.calls[4][0].value).toEqual(11);
+    expect(callback.mock.calls[5][0].value).toEqual(25);
+    expect(callback.mock.calls[6][0].value).toEqual(10);
+  });
+});
diff --git a/src/algorithms/tree/postorder-traversal/postorderTraversal.js b/src/algorithms/tree/postorder-traversal/postorderTraversal.js
new file mode 100644
index 0000000000..19f369d514
--- /dev/null
+++ b/src/algorithms/tree/postorder-traversal/postorderTraversal.js
@@ -0,0 +1,26 @@
+function postorderTraversalRecursive(root, callback) {
+  if (!root) {
+    return;
+  }
+
+  // left branch
+  postorderTraversalRecursive(root.left, callback);
+
+  // right branch
+  postorderTraversalRecursive(root.right, callback);
+
+  // callback calling
+  callback(root);
+}
+
+/**
+     * --postorder traversal of binary tree
+     * @param {BinaryTreeNode} root - Root node of binary tree
+     * @param {CallableFunction} callback
+     * - Callback function which calles for each node in postorder traversal
+     * @returns {void}
+     */
+
+export default function postorderTraversal(root, callback) {
+  postorderTraversalRecursive(root, callback);
+}
diff --git a/src/algorithms/tree/preorder-traversal/README.en-IN.md b/src/algorithms/tree/preorder-traversal/README.en-IN.md
new file mode 100644
index 0000000000..ac6a6b4256
--- /dev/null
+++ b/src/algorithms/tree/preorder-traversal/README.en-IN.md
@@ -0,0 +1,31 @@
+
+# Preorder Traversal Algorithm
+
+Preorder traversal is an algorithm for traversing tree data structures.The algorithm involves visiting each node in a specific order: root node, left branch, and then the right branch. 
+
+## Preorder Traversal Steps
+
+1. **Start at the root node** of the tree.
+2. **Visit the root node**:
+    - Process the current node (e.g., print its value, apply a callback function).
+3. **Recursively explore the left subtree**:
+    - Move to the left child of the current node.
+    - Repeat the preorder traversal on the left subtree.
+4. **Recursively explore the right subtree**:
+    - Move to the right child of the current node.
+    - Repeat the preorder traversal on the right subtree.
+
+
+## Complexities
+
+### Time Complexity
+
+O(N) Where N is number of nodes in Tree
+
+### Space Complexity
+
+O(H) Where H is height of tree
+
+## References
+-  [Wikipedia](https://en.wikipedia.org/wiki/Tree_traversal)
+
diff --git a/src/algorithms/tree/preorder-traversal/__test__/preorderTraversal.test.js b/src/algorithms/tree/preorder-traversal/__test__/preorderTraversal.test.js
new file mode 100644
index 0000000000..696a90fcf4
--- /dev/null
+++ b/src/algorithms/tree/preorder-traversal/__test__/preorderTraversal.test.js
@@ -0,0 +1,33 @@
+import BinarySearchTreeNode from '../../../../data-structures/tree/binary-search-tree/BinarySearchTreeNode';
+import preorderTraversal from '../preorderTraversal';
+
+describe('Preorder Traversal of Binary tree', () => {
+  it('sholud give Preorder travsersal of binary tree', () => {
+    // creating BST
+    const bst = new BinarySearchTreeNode(10);
+
+    // inserting values to BST
+    bst.insert(25);
+    bst.insert(-5);
+    bst.insert(11);
+    bst.insert(9);
+    bst.insert(8);
+    bst.insert(15);
+
+    // callback function
+    const callback = jest.fn();
+    preorderTraversal(bst, callback);
+
+    // checking number of times function called
+    expect(callback).toHaveBeenCalledTimes(7);
+
+    // checking values
+    expect(callback.mock.calls[0][0].value).toEqual(10);
+    expect(callback.mock.calls[1][0].value).toEqual(-5);
+    expect(callback.mock.calls[2][0].value).toEqual(9);
+    expect(callback.mock.calls[3][0].value).toEqual(8);
+    expect(callback.mock.calls[4][0].value).toEqual(25);
+    expect(callback.mock.calls[5][0].value).toEqual(11);
+    expect(callback.mock.calls[6][0].value).toEqual(15);
+  });
+});
diff --git a/src/algorithms/tree/preorder-traversal/preorderTraversal.js b/src/algorithms/tree/preorder-traversal/preorderTraversal.js
new file mode 100644
index 0000000000..20c34c7846
--- /dev/null
+++ b/src/algorithms/tree/preorder-traversal/preorderTraversal.js
@@ -0,0 +1,25 @@
+function preorderTraversalRecursive(root, callback) {
+  if (!root) {
+    return;
+  }
+  // callback calling
+  callback(root);
+
+  // left branch
+  preorderTraversalRecursive(root.left, callback);
+
+  // right branch
+  preorderTraversalRecursive(root.right, callback);
+}
+
+/**
+   * --preorder traversal of binary tree
+   * @param {BinaryTreeNode} root - Root node of binary tree
+   * @param {CallableFunction} callback
+   * - Callback function which calles for each node in preorder traversal
+   * @returns {void}
+   */
+
+export default function preorderTraversal(root, callback) {
+  preorderTraversalRecursive(root, callback);
+}
diff --git a/src/algorithms/uncategorized/best-time-to-buy-sell-stocks/README.md b/src/algorithms/uncategorized/best-time-to-buy-sell-stocks/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/best-time-to-buy-sell-stocks/__tests__/accumulatorBestTimeToBuySellStocks.test.js b/src/algorithms/uncategorized/best-time-to-buy-sell-stocks/__tests__/accumulatorBestTimeToBuySellStocks.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/best-time-to-buy-sell-stocks/__tests__/dpBestTimeToBuySellStocks.test.js b/src/algorithms/uncategorized/best-time-to-buy-sell-stocks/__tests__/dpBestTimeToBuySellStocks.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/best-time-to-buy-sell-stocks/__tests__/dqBestTimeToBuySellStocks.test.js b/src/algorithms/uncategorized/best-time-to-buy-sell-stocks/__tests__/dqBestTimeToBuySellStocks.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/best-time-to-buy-sell-stocks/__tests__/peakvalleyBestTimeToBuySellStocks.test.js b/src/algorithms/uncategorized/best-time-to-buy-sell-stocks/__tests__/peakvalleyBestTimeToBuySellStocks.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/best-time-to-buy-sell-stocks/accumulatorBestTimeToBuySellStocks.js b/src/algorithms/uncategorized/best-time-to-buy-sell-stocks/accumulatorBestTimeToBuySellStocks.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/best-time-to-buy-sell-stocks/dpBestTimeToBuySellStocks.js b/src/algorithms/uncategorized/best-time-to-buy-sell-stocks/dpBestTimeToBuySellStocks.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/best-time-to-buy-sell-stocks/dqBestTimeToBuySellStocks.js b/src/algorithms/uncategorized/best-time-to-buy-sell-stocks/dqBestTimeToBuySellStocks.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/best-time-to-buy-sell-stocks/peakvalleyBestTimeToBuySellStocks.js b/src/algorithms/uncategorized/best-time-to-buy-sell-stocks/peakvalleyBestTimeToBuySellStocks.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/hanoi-tower/README.md b/src/algorithms/uncategorized/hanoi-tower/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/hanoi-tower/__test__/hanoiTower.test.js b/src/algorithms/uncategorized/hanoi-tower/__test__/hanoiTower.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/hanoi-tower/hanoiTower.js b/src/algorithms/uncategorized/hanoi-tower/hanoiTower.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/jump-game/README.md b/src/algorithms/uncategorized/jump-game/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/jump-game/__test__/backtrackingJumpGame.test.js b/src/algorithms/uncategorized/jump-game/__test__/backtrackingJumpGame.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/jump-game/__test__/dpBottomUpJumpGame.test.js b/src/algorithms/uncategorized/jump-game/__test__/dpBottomUpJumpGame.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/jump-game/__test__/dpTopDownJumpGame.test.js b/src/algorithms/uncategorized/jump-game/__test__/dpTopDownJumpGame.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/jump-game/__test__/greedyJumpGame.test.js b/src/algorithms/uncategorized/jump-game/__test__/greedyJumpGame.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/jump-game/backtrackingJumpGame.js b/src/algorithms/uncategorized/jump-game/backtrackingJumpGame.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/jump-game/dpBottomUpJumpGame.js b/src/algorithms/uncategorized/jump-game/dpBottomUpJumpGame.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/jump-game/dpTopDownJumpGame.js b/src/algorithms/uncategorized/jump-game/dpTopDownJumpGame.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/jump-game/greedyJumpGame.js b/src/algorithms/uncategorized/jump-game/greedyJumpGame.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/knight-tour/README.md b/src/algorithms/uncategorized/knight-tour/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/knight-tour/__test__/knightTour.test.js b/src/algorithms/uncategorized/knight-tour/__test__/knightTour.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/knight-tour/knightTour.js b/src/algorithms/uncategorized/knight-tour/knightTour.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/n-queens/QueenPosition.js b/src/algorithms/uncategorized/n-queens/QueenPosition.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/n-queens/README.md b/src/algorithms/uncategorized/n-queens/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/n-queens/__test__/QueensPosition.test.js b/src/algorithms/uncategorized/n-queens/__test__/QueensPosition.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/n-queens/__test__/nQueens.test.js b/src/algorithms/uncategorized/n-queens/__test__/nQueens.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/n-queens/__test__/nQueensBitwise.test.js b/src/algorithms/uncategorized/n-queens/__test__/nQueensBitwise.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/n-queens/nQueens.js b/src/algorithms/uncategorized/n-queens/nQueens.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/n-queens/nQueensBitwise.js b/src/algorithms/uncategorized/n-queens/nQueensBitwise.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/rain-terraces/README.md b/src/algorithms/uncategorized/rain-terraces/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/rain-terraces/__test__/bfRainTerraces.test.js b/src/algorithms/uncategorized/rain-terraces/__test__/bfRainTerraces.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/rain-terraces/__test__/dpRainTerraces.test.js b/src/algorithms/uncategorized/rain-terraces/__test__/dpRainTerraces.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/rain-terraces/bfRainTerraces.js b/src/algorithms/uncategorized/rain-terraces/bfRainTerraces.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/rain-terraces/dpRainTerraces.js b/src/algorithms/uncategorized/rain-terraces/dpRainTerraces.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/recursive-staircase/README.md b/src/algorithms/uncategorized/recursive-staircase/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/recursive-staircase/__test__/recursiveStaircaseBF.test.js b/src/algorithms/uncategorized/recursive-staircase/__test__/recursiveStaircaseBF.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/recursive-staircase/__test__/recursiveStaircaseDP.test.js b/src/algorithms/uncategorized/recursive-staircase/__test__/recursiveStaircaseDP.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/recursive-staircase/__test__/recursiveStaircaseIT.test.js b/src/algorithms/uncategorized/recursive-staircase/__test__/recursiveStaircaseIT.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/recursive-staircase/__test__/recursiveStaircaseMEM.test.js b/src/algorithms/uncategorized/recursive-staircase/__test__/recursiveStaircaseMEM.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/recursive-staircase/recursiveStaircaseBF.js b/src/algorithms/uncategorized/recursive-staircase/recursiveStaircaseBF.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/recursive-staircase/recursiveStaircaseDP.js b/src/algorithms/uncategorized/recursive-staircase/recursiveStaircaseDP.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/recursive-staircase/recursiveStaircaseIT.js b/src/algorithms/uncategorized/recursive-staircase/recursiveStaircaseIT.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/recursive-staircase/recursiveStaircaseMEM.js b/src/algorithms/uncategorized/recursive-staircase/recursiveStaircaseMEM.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/square-matrix-rotation/README.md b/src/algorithms/uncategorized/square-matrix-rotation/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/square-matrix-rotation/__test__/squareMatrixRotation.test.js b/src/algorithms/uncategorized/square-matrix-rotation/__test__/squareMatrixRotation.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/square-matrix-rotation/squareMatrixRotation.js b/src/algorithms/uncategorized/square-matrix-rotation/squareMatrixRotation.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/unique-paths/README.md b/src/algorithms/uncategorized/unique-paths/README.md
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/unique-paths/__test__/btUniquePaths.test.js b/src/algorithms/uncategorized/unique-paths/__test__/btUniquePaths.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/unique-paths/__test__/dpUniquePaths.test.js b/src/algorithms/uncategorized/unique-paths/__test__/dpUniquePaths.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/unique-paths/__test__/uniquePaths.test.js b/src/algorithms/uncategorized/unique-paths/__test__/uniquePaths.test.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/unique-paths/btUniquePaths.js b/src/algorithms/uncategorized/unique-paths/btUniquePaths.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/unique-paths/dpUniquePaths.js b/src/algorithms/uncategorized/unique-paths/dpUniquePaths.js
old mode 100644
new mode 100755
diff --git a/src/algorithms/uncategorized/unique-paths/uniquePaths.js b/src/algorithms/uncategorized/unique-paths/uniquePaths.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/bloom-filter/BloomFilter.js b/src/data-structures/bloom-filter/BloomFilter.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/bloom-filter/README.md b/src/data-structures/bloom-filter/README.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/bloom-filter/README.pt-BR.md b/src/data-structures/bloom-filter/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/bloom-filter/README.ru-RU.md b/src/data-structures/bloom-filter/README.ru-RU.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/bloom-filter/README.uk-UA.md b/src/data-structures/bloom-filter/README.uk-UA.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/bloom-filter/__test__/BloomFilter.test.js b/src/data-structures/bloom-filter/__test__/BloomFilter.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/disjoint-set/DisjointSet.js b/src/data-structures/disjoint-set/DisjointSet.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/disjoint-set/DisjointSetAdhoc.js b/src/data-structures/disjoint-set/DisjointSetAdhoc.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/disjoint-set/DisjointSetItem.js b/src/data-structures/disjoint-set/DisjointSetItem.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/disjoint-set/README.md b/src/data-structures/disjoint-set/README.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/disjoint-set/README.pt-BR.md b/src/data-structures/disjoint-set/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/disjoint-set/README.ru-RU.md b/src/data-structures/disjoint-set/README.ru-RU.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/disjoint-set/README.uk-UA.md b/src/data-structures/disjoint-set/README.uk-UA.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/disjoint-set/__test__/DisjointSet.test.js b/src/data-structures/disjoint-set/__test__/DisjointSet.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/disjoint-set/__test__/DisjointSetAdhoc.test.js b/src/data-structures/disjoint-set/__test__/DisjointSetAdhoc.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/disjoint-set/__test__/DisjointSetItem.test.js b/src/data-structures/disjoint-set/__test__/DisjointSetItem.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/doubly-linked-list/DoublyLinkedList.js b/src/data-structures/doubly-linked-list/DoublyLinkedList.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/doubly-linked-list/DoublyLinkedListNode.js b/src/data-structures/doubly-linked-list/DoublyLinkedListNode.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/doubly-linked-list/README.es-ES.md b/src/data-structures/doubly-linked-list/README.es-ES.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/doubly-linked-list/README.ja-JP.md b/src/data-structures/doubly-linked-list/README.ja-JP.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/doubly-linked-list/README.ko-KR.md b/src/data-structures/doubly-linked-list/README.ko-KR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/doubly-linked-list/README.md b/src/data-structures/doubly-linked-list/README.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/doubly-linked-list/README.pt-BR.md b/src/data-structures/doubly-linked-list/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/doubly-linked-list/README.ru-RU.md b/src/data-structures/doubly-linked-list/README.ru-RU.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/doubly-linked-list/README.uk-UA.md b/src/data-structures/doubly-linked-list/README.uk-UA.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/doubly-linked-list/README.zh-CN.md b/src/data-structures/doubly-linked-list/README.zh-CN.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/doubly-linked-list/__test__/DoublyLinkedList.test.js b/src/data-structures/doubly-linked-list/__test__/DoublyLinkedList.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/doubly-linked-list/__test__/DoublyLinkedListNode.test.js b/src/data-structures/doubly-linked-list/__test__/DoublyLinkedListNode.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/doubly-linked-list/images/doubly-linked-list.jpeg b/src/data-structures/doubly-linked-list/images/doubly-linked-list.jpeg
old mode 100644
new mode 100755
diff --git a/src/data-structures/graph/Graph.js b/src/data-structures/graph/Graph.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/graph/GraphEdge.js b/src/data-structures/graph/GraphEdge.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/graph/GraphVertex.js b/src/data-structures/graph/GraphVertex.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/graph/README.fr-FR.md b/src/data-structures/graph/README.fr-FR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/graph/README.md b/src/data-structures/graph/README.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/graph/README.pt-BR.md b/src/data-structures/graph/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/graph/README.ru-RU.md b/src/data-structures/graph/README.ru-RU.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/graph/README.uk-UA.md b/src/data-structures/graph/README.uk-UA.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/graph/README.zh-CN.md b/src/data-structures/graph/README.zh-CN.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/graph/__test__/Graph.test.js b/src/data-structures/graph/__test__/Graph.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/graph/__test__/GraphEdge.test.js b/src/data-structures/graph/__test__/GraphEdge.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/graph/__test__/GraphVertex.test.js b/src/data-structures/graph/__test__/GraphVertex.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/graph/images/graph.jpeg b/src/data-structures/graph/images/graph.jpeg
old mode 100644
new mode 100755
diff --git a/src/data-structures/hash-table/HashTable.js b/src/data-structures/hash-table/HashTable.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/hash-table/README.fr-FR.md b/src/data-structures/hash-table/README.fr-FR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/hash-table/README.ja-JP.md b/src/data-structures/hash-table/README.ja-JP.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/hash-table/README.ko-KR.md b/src/data-structures/hash-table/README.ko-KR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/hash-table/README.md b/src/data-structures/hash-table/README.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/hash-table/README.pt-BR.md b/src/data-structures/hash-table/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/hash-table/README.ru-RU.md b/src/data-structures/hash-table/README.ru-RU.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/hash-table/README.uk-UA.md b/src/data-structures/hash-table/README.uk-UA.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/hash-table/README.zh-CN.md b/src/data-structures/hash-table/README.zh-CN.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/hash-table/__test__/HashTable.test.js b/src/data-structures/hash-table/__test__/HashTable.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/hash-table/images/collision-resolution.jpeg b/src/data-structures/hash-table/images/collision-resolution.jpeg
old mode 100644
new mode 100755
diff --git a/src/data-structures/hash-table/images/hash-table.jpeg b/src/data-structures/hash-table/images/hash-table.jpeg
old mode 100644
new mode 100755
diff --git a/src/data-structures/heap/Heap.js b/src/data-structures/heap/Heap.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/heap/MaxHeap.js b/src/data-structures/heap/MaxHeap.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/heap/MaxHeapAdhoc.js b/src/data-structures/heap/MaxHeapAdhoc.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/heap/MinHeap.js b/src/data-structures/heap/MinHeap.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/heap/MinHeapAdhoc.js b/src/data-structures/heap/MinHeapAdhoc.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/heap/README.fr-FR.md b/src/data-structures/heap/README.fr-FR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/heap/README.ja-JP.md b/src/data-structures/heap/README.ja-JP.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/heap/README.ko-KR.md b/src/data-structures/heap/README.ko-KR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/heap/README.md b/src/data-structures/heap/README.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/heap/README.pt-BR.md b/src/data-structures/heap/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/heap/README.ru-RU.md b/src/data-structures/heap/README.ru-RU.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/heap/README.tr-TR.md b/src/data-structures/heap/README.tr-TR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/heap/README.uk-UA.md b/src/data-structures/heap/README.uk-UA.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/heap/README.zh-CN.md b/src/data-structures/heap/README.zh-CN.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/heap/__test__/Heap.test.js b/src/data-structures/heap/__test__/Heap.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/heap/__test__/MaxHeap.test.js b/src/data-structures/heap/__test__/MaxHeap.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/heap/__test__/MaxHeapAdhoc.test.js b/src/data-structures/heap/__test__/MaxHeapAdhoc.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/heap/__test__/MinHeap.test.js b/src/data-structures/heap/__test__/MinHeap.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/heap/__test__/MinHeapAdhoc.test.js b/src/data-structures/heap/__test__/MinHeapAdhoc.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/heap/images/array-representation.jpeg b/src/data-structures/heap/images/array-representation.jpeg
old mode 100644
new mode 100755
diff --git a/src/data-structures/heap/images/max-heap.jpeg b/src/data-structures/heap/images/max-heap.jpeg
old mode 100644
new mode 100755
diff --git a/src/data-structures/heap/images/min-heap.jpeg b/src/data-structures/heap/images/min-heap.jpeg
old mode 100644
new mode 100755
diff --git a/src/data-structures/linked-list/LinkedList.js b/src/data-structures/linked-list/LinkedList.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/linked-list/LinkedListNode.js b/src/data-structures/linked-list/LinkedListNode.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/linked-list/README.es-ES.md b/src/data-structures/linked-list/README.es-ES.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/linked-list/README.ja-JP.md b/src/data-structures/linked-list/README.ja-JP.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/linked-list/README.ko-KR.md b/src/data-structures/linked-list/README.ko-KR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/linked-list/README.md b/src/data-structures/linked-list/README.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/linked-list/README.pt-BR.md b/src/data-structures/linked-list/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/linked-list/README.ru-RU.md b/src/data-structures/linked-list/README.ru-RU.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/linked-list/README.tr-TR.md b/src/data-structures/linked-list/README.tr-TR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/linked-list/README.uk-UA.md b/src/data-structures/linked-list/README.uk-UA.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/linked-list/README.vi-VN.md b/src/data-structures/linked-list/README.vi-VN.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/linked-list/README.zh-CN.md b/src/data-structures/linked-list/README.zh-CN.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/linked-list/__test__/LinkedList.test.js b/src/data-structures/linked-list/__test__/LinkedList.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/linked-list/__test__/LinkedListNode.test.js b/src/data-structures/linked-list/__test__/LinkedListNode.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/linked-list/images/linked-list.jpeg b/src/data-structures/linked-list/images/linked-list.jpeg
old mode 100644
new mode 100755
diff --git a/src/data-structures/lru-cache/LRUCache.js b/src/data-structures/lru-cache/LRUCache.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/lru-cache/LRUCacheOnMap.js b/src/data-structures/lru-cache/LRUCacheOnMap.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/lru-cache/README.md b/src/data-structures/lru-cache/README.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/lru-cache/__test__/LRUCache.test.js b/src/data-structures/lru-cache/__test__/LRUCache.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/lru-cache/__test__/LRUCacheOnMap.test.js b/src/data-structures/lru-cache/__test__/LRUCacheOnMap.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/lru-cache/images/lru-cache.jpg b/src/data-structures/lru-cache/images/lru-cache.jpg
old mode 100644
new mode 100755
diff --git a/src/data-structures/priority-queue/PriorityQueue.js b/src/data-structures/priority-queue/PriorityQueue.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/priority-queue/README.fr-FR.md b/src/data-structures/priority-queue/README.fr-FR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/priority-queue/README.ja-JP.md b/src/data-structures/priority-queue/README.ja-JP.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/priority-queue/README.ko-KR.md b/src/data-structures/priority-queue/README.ko-KR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/priority-queue/README.md b/src/data-structures/priority-queue/README.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/priority-queue/README.pt-BR.md b/src/data-structures/priority-queue/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/priority-queue/README.ru-RU.md b/src/data-structures/priority-queue/README.ru-RU.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/priority-queue/README.uk-UA.md b/src/data-structures/priority-queue/README.uk-UA.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/priority-queue/README.zh-CN.md b/src/data-structures/priority-queue/README.zh-CN.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/priority-queue/__test__/PriorityQueue.test.js b/src/data-structures/priority-queue/__test__/PriorityQueue.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/queue/Queue.js b/src/data-structures/queue/Queue.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/queue/README.fr-FR.md b/src/data-structures/queue/README.fr-FR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/queue/README.ja-JP.md b/src/data-structures/queue/README.ja-JP.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/queue/README.ko-KR.md b/src/data-structures/queue/README.ko-KR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/queue/README.md b/src/data-structures/queue/README.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/queue/README.pt-BR.md b/src/data-structures/queue/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/queue/README.ru-RU.md b/src/data-structures/queue/README.ru-RU.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/queue/README.uk-UA.md b/src/data-structures/queue/README.uk-UA.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/queue/README.vi-VN.md b/src/data-structures/queue/README.vi-VN.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/queue/README.zh-CN.md b/src/data-structures/queue/README.zh-CN.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/queue/__test__/Queue.test.js b/src/data-structures/queue/__test__/Queue.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/queue/images/queue.jpeg b/src/data-structures/queue/images/queue.jpeg
old mode 100644
new mode 100755
diff --git a/src/data-structures/stack/README.fr-FR.md b/src/data-structures/stack/README.fr-FR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/stack/README.ja-JP.md b/src/data-structures/stack/README.ja-JP.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/stack/README.ko-KR.md b/src/data-structures/stack/README.ko-KR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/stack/README.md b/src/data-structures/stack/README.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/stack/README.pt-BR.md b/src/data-structures/stack/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/stack/README.ru-RU.md b/src/data-structures/stack/README.ru-RU.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/stack/README.uk-UA.md b/src/data-structures/stack/README.uk-UA.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/stack/README.vi-VN.md b/src/data-structures/stack/README.vi-VN.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/stack/README.zh-CN.md b/src/data-structures/stack/README.zh-CN.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/stack/Stack.js b/src/data-structures/stack/Stack.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/stack/__test__/Stack.test.js b/src/data-structures/stack/__test__/Stack.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/stack/images/stack.jpeg b/src/data-structures/stack/images/stack.jpeg
old mode 100644
new mode 100755
diff --git a/src/data-structures/stack/images/stack.jpg b/src/data-structures/stack/images/stack.jpg
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/BinaryTreeNode.js b/src/data-structures/tree/BinaryTreeNode.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/README.md b/src/data-structures/tree/README.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/README.pt-BR.md b/src/data-structures/tree/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/README.zh-CN.md b/src/data-structures/tree/README.zh-CN.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/__test__/BinaryTreeNode.test.js b/src/data-structures/tree/__test__/BinaryTreeNode.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/avl-tree/AvlTree.js b/src/data-structures/tree/avl-tree/AvlTree.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/avl-tree/README.md b/src/data-structures/tree/avl-tree/README.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/avl-tree/README.pt-BR.md b/src/data-structures/tree/avl-tree/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/avl-tree/__test__/AvlTRee.test.js b/src/data-structures/tree/avl-tree/__test__/AvlTRee.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/binary-search-tree/BinarySearchTree.js b/src/data-structures/tree/binary-search-tree/BinarySearchTree.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/binary-search-tree/BinarySearchTreeNode.js b/src/data-structures/tree/binary-search-tree/BinarySearchTreeNode.js
old mode 100644
new mode 100755
index 314f8e06b8..dd0286677d
--- a/src/data-structures/tree/binary-search-tree/BinarySearchTreeNode.js
+++ b/src/data-structures/tree/binary-search-tree/BinarySearchTreeNode.js
@@ -148,4 +148,15 @@ export default class BinarySearchTreeNode extends BinaryTreeNode {
 
     return this.left.findMin();
   }
+
+  /**
+   * Returns max node in Binary search tree
+   * @returns {BinarySearchTreeNode}
+   */
+  findMax() {
+    if (!this || !this.right) {
+      return this;
+    }
+    return this.right.findMax();
+  }
 }
diff --git a/src/data-structures/tree/binary-search-tree/README.md b/src/data-structures/tree/binary-search-tree/README.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/binary-search-tree/README.pt-BR.md b/src/data-structures/tree/binary-search-tree/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/binary-search-tree/__test__/BinarySearchTree.test.js b/src/data-structures/tree/binary-search-tree/__test__/BinarySearchTree.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/binary-search-tree/__test__/BinarySearchTreeNode.test.js b/src/data-structures/tree/binary-search-tree/__test__/BinarySearchTreeNode.test.js
old mode 100644
new mode 100755
index c9a2b6e0e1..48ead76e85
--- a/src/data-structures/tree/binary-search-tree/__test__/BinarySearchTreeNode.test.js
+++ b/src/data-structures/tree/binary-search-tree/__test__/BinarySearchTreeNode.test.js
@@ -252,4 +252,14 @@ describe('BinarySearchTreeNode', () => {
 
     expect(childNode.parent).toBeNull();
   });
+
+  it('should give max node', () => {
+    const bst = new BinarySearchTreeNode(10);
+    bst.insert(20);
+    bst.insert(-2);
+    bst.insert(4);
+    bst.insert(-10);
+    bst.insert(40);
+    expect(bst.findMax().value).toBe(40);
+  });
 });
diff --git a/src/data-structures/tree/binary-search-tree/images/binary-search-tree.jpg b/src/data-structures/tree/binary-search-tree/images/binary-search-tree.jpg
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/fenwick-tree/FenwickTree.js b/src/data-structures/tree/fenwick-tree/FenwickTree.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/fenwick-tree/README.md b/src/data-structures/tree/fenwick-tree/README.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/fenwick-tree/README.pt-BR.md b/src/data-structures/tree/fenwick-tree/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/fenwick-tree/__test__/FenwickTree.test.js b/src/data-structures/tree/fenwick-tree/__test__/FenwickTree.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/images/tree.jpeg b/src/data-structures/tree/images/tree.jpeg
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/red-black-tree/README.md b/src/data-structures/tree/red-black-tree/README.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/red-black-tree/README.pt-BR.md b/src/data-structures/tree/red-black-tree/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/red-black-tree/RedBlackTree.js b/src/data-structures/tree/red-black-tree/RedBlackTree.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/red-black-tree/__test__/RedBlackTree.test.js b/src/data-structures/tree/red-black-tree/__test__/RedBlackTree.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/segment-tree/README.md b/src/data-structures/tree/segment-tree/README.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/segment-tree/README.pt-BR.md b/src/data-structures/tree/segment-tree/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/segment-tree/SegmentTree.js b/src/data-structures/tree/segment-tree/SegmentTree.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/tree/segment-tree/__test__/SegmentTree.test.js b/src/data-structures/tree/segment-tree/__test__/SegmentTree.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/trie/README.ko-KO.md b/src/data-structures/trie/README.ko-KO.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/trie/README.md b/src/data-structures/trie/README.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/trie/README.pt-BR.md b/src/data-structures/trie/README.pt-BR.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/trie/README.ru-RU.md b/src/data-structures/trie/README.ru-RU.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/trie/README.uk-UA.md b/src/data-structures/trie/README.uk-UA.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/trie/README.zh-CN.md b/src/data-structures/trie/README.zh-CN.md
old mode 100644
new mode 100755
diff --git a/src/data-structures/trie/Trie.js b/src/data-structures/trie/Trie.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/trie/TrieNode.js b/src/data-structures/trie/TrieNode.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/trie/__test__/Trie.test.js b/src/data-structures/trie/__test__/Trie.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/trie/__test__/TrieNode.test.js b/src/data-structures/trie/__test__/TrieNode.test.js
old mode 100644
new mode 100755
diff --git a/src/data-structures/trie/images/trie.jpg b/src/data-structures/trie/images/trie.jpg
old mode 100644
new mode 100755
diff --git a/src/playground/README.md b/src/playground/README.md
old mode 100644
new mode 100755
diff --git a/src/playground/__test__/playground.test.js b/src/playground/__test__/playground.test.js
old mode 100644
new mode 100755
diff --git a/src/playground/playground.js b/src/playground/playground.js
old mode 100644
new mode 100755
diff --git a/src/utils/comparator/Comparator.js b/src/utils/comparator/Comparator.js
old mode 100644
new mode 100755
diff --git a/src/utils/comparator/__test__/Comparator.test.js b/src/utils/comparator/__test__/Comparator.test.js
old mode 100644
new mode 100755