From f3a0dba7dda50742baab013f625f59fcee253a3c Mon Sep 17 00:00:00 2001 From: Mauricio Paternina Date: Tue, 17 Dec 2019 22:19:24 -0500 Subject: [PATCH 01/95] Fix second argument for .splice --- exercises/46 - Arrays/array-methods.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exercises/46 - Arrays/array-methods.html b/exercises/46 - Arrays/array-methods.html index 933acd4dd..aac647b00 100644 --- a/exercises/46 - Arrays/array-methods.html +++ b/exercises/46 - Arrays/array-methods.html @@ -107,7 +107,7 @@ // Make a copy of the toppings array with a spread const toppingsCopy2 = [...toppings]; // take out items 3 to 5 of your new toppings array with splice() - toppingsCopy.splice(3, 5); + toppingsCopy.splice(3, 3); console.log(toppingsCopy); // find the index of Avocado with indexOf() / lastIndexOf() const avoIndex = toppings.indexOf('Avocado'); From cdcd0d4a194e7cb77ba5a7805e6e5713310aabc7 Mon Sep 17 00:00:00 2001 From: Wes Bos Date: Wed, 18 Dec 2019 11:56:45 -0500 Subject: [PATCH 02/95] Update readme.md --- readme.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 0cb9e57af..3dab31e6d 100644 --- a/readme.md +++ b/readme.md @@ -5,4 +5,7 @@ These are the starter files and solutions to the [Beginner JavaScript](https://BeginnerJavaScript.com) course -More to come... +## Community Resources + +Please feel free to add your blog post, videos, notes, or anythingh else related to the course :) + From c70069884003b07a813c725c82cb736cd10b413f Mon Sep 17 00:00:00 2001 From: Soumya Ranjan Mohanty Date: Wed, 18 Dec 2019 22:50:58 +0530 Subject: [PATCH 03/95] Add my notes to the README Add notes and lessons learnt from the course for those who like to read. :) --- readme.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 3dab31e6d..a13bf693a 100644 --- a/readme.md +++ b/readme.md @@ -7,5 +7,7 @@ These are the starter files and solutions to the [Beginner JavaScript](https://B ## Community Resources -Please feel free to add your blog post, videos, notes, or anythingh else related to the course :) +Please feel free to add your blog post, videos, notes, or anything else related to the course :) + +- [Soumya Ranjan Mohanty](https://github.com/geekysrm)'s [Github repo](https://github.com/geekysrm/javascript-notes) with notes and lessons learnt, along with [full notes here](http://bit.ly/beginner-javascript-notes). From c06c452b1675836a52944b4af647419b580ed1e0 Mon Sep 17 00:00:00 2001 From: Mauricio Paternina <49292621+spaceinvadev@users.noreply.github.com> Date: Wed, 18 Dec 2019 14:10:08 -0600 Subject: [PATCH 04/95] Fix return statement in numberSort function --- exercises/46 - Arrays/array-methods.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exercises/46 - Arrays/array-methods.html b/exercises/46 - Arrays/array-methods.html index aac647b00..86cec7f4e 100644 --- a/exercises/46 - Arrays/array-methods.html +++ b/exercises/46 - Arrays/array-methods.html @@ -188,7 +188,7 @@ console.log(toppings.sort()); // sort the order totals from most expensive to least with .sort() function numberSort(a, b) { - return a - b; + return b - a; } console.log(orderTotals.sort(numberSort)); // Sort the prices with sort() From 450ec06f600484fd6b6e9d456eb0426683c7d12e Mon Sep 17 00:00:00 2001 From: Michael Freytag Date: Mon, 6 Jan 2020 20:34:51 -0800 Subject: [PATCH 05/95] remove .parcel-cache/ directory from exercises/55 - Face Detection Censorship --- .../00/57013cc48d5df1619e89c81bac0e19.blob | 1 - .../00/69477ebca643d2cfc59eef40976b4a.blob | 48 -- .../00/a93ffeb683289be3a1cf2b5ac3881f.v8 | Bin 695 -> 0 bytes .../00/b2b012b0dbca7b07a7ed5655fc9579.v8 | Bin 695 -> 0 bytes .../01/8d93749aadc0aa7de3acbeecb1c311.blob | 71 --- .../01/a40ced117609dac9e5b1f192cea0e1.blob | 1 - .../01/bfb61dc44662113751f6aa5ece14ed.blob | 413 ------------------ .../01/cd168a25f678aa0eb20431d8193c26.blob | 48 -- .../03/2a34de971efa8d20c009468dbe016d.blob | 21 - .../03/9f4989550415eb82c049b515585916.v8 | Bin 695 -> 0 bytes .../03/a6fae4eef91bf8bc852ccebcc688a5.v8 | Bin 695 -> 0 bytes .../03/ea3c9a30498269ad686adebec60b51.v8 | Bin 31140 -> 0 bytes .../04/16b46c604d054da145d1125d697c83.v8 | Bin 13276 -> 0 bytes .../04/9332e68d4c97c8f5b826069ba44aef.blob | 379 ---------------- .../04/c4f13959e19f566e9ed8b9e76d5794.v8 | Bin 695 -> 0 bytes .../04/cb854e92734b2c0098244d915f8035.v8 | Bin 13867 -> 0 bytes .../05/a39fc4718cdfce9f1513e343dcfa18.blob | 1 - .../05/a80eda6be743c5caa37a0f33e89303.v8 | Bin 14231 -> 0 bytes .../06/9ad152d02f01945f9c2a9f542060d0.v8 | Bin 695 -> 0 bytes .../06/bb0e78d622a0cdcbb6e0573e8b85fb.v8 | Bin 13276 -> 0 bytes .../06/ebfd9cf3755cafb7ace39ec76044a0.v8 | Bin 53082 -> 0 bytes .../07/9c511843130e0a356c7f0967ecedce.blob | 54 --- .../09/fdbd4edf08489bf68defc081b982f5.v8 | Bin 695 -> 0 bytes .../0a/bab1788a6b41bf60ea9882c5fbfeed.v8 | Bin 14346 -> 0 bytes .../0b/4a200cd37ad219f6de13b88f65eaca.blob | 48 -- .../0b/64d5f86722c1287c9fb0c04bba9c9d.v8 | Bin 14229 -> 0 bytes .../0b/ba6d6c3ebb2176bd76d1ca5944ad32.blob | 21 - .../0b/d489282c30baeef64fa7b880659862.v8 | Bin 13276 -> 0 bytes .../0c/5e868ce7f691b9b75f5819d67a719e.v8 | Bin 695 -> 0 bytes .../0c/c0d43d015e20a2250cd0e59a516ec1.blob | 1 - .../0c/e3378d21feb552a2bffa24bef63c99.blob | 1 - .../0d/3163a4bca2417f1991430b5d62fce0.blob | 49 --- .../0d/9215d29accb3ff59ee7a80e1238e38.blob | 1 - .../0e/57baf77c3acffb02945087905d7505.blob | 66 --- .../0e/b17f1e14436b677f355b6d1e97db3b.blob | 73 ---- .../0f/e60682561ac046f9c6bd000bea5d23.blob | 65 --- .../10/15bacef8e4d77b3dc8a5cd0c1fc606.v8 | Bin 695 -> 0 bytes .../11/028c83a3d237ddfb9ccc19401312c4.v8 | Bin 14229 -> 0 bytes .../11/b5eac72d55e43ea17d84e692ea843f.v8 | Bin 695 -> 0 bytes .../12/3a42adc585eb11a8e38721fa49d3c0.blob | 1 - .../12/fb53641455ba665467c9c7fed89c9d.blob | 66 --- .../13/038851ba0276f51e74540f5eca07f3.v8 | Bin 52967 -> 0 bytes .../13/51ccb6b1a04c4d373affeb601709d9.blob | 21 - .../13/9ec74c05eaad99ee4df076a465dcc3.v8 | Bin 45436 -> 0 bytes .../14/045b4a4dc956acf5d66a52f87e8831.blob | 73 ---- .../14/215984616f78efc5e11322369545d0.v8 | Bin 13276 -> 0 bytes .../14/5f2dadf37c2c03beefd306f2ae5c26.blob | 48 -- .../14/83d4445c761fba545aeb0a025610fd.blob | 408 ----------------- .../14/a2b46bf43dcd3b5800faecf4fd2047.blob | 21 - .../14/f79ffe624d00deeaa525d125ed0a03.blob | 395 ----------------- .../15/039cbb879826f2ceeaf4aa91a909e1.v8 | Bin 10989 -> 0 bytes .../15/44e05120c5fc798763455a535f5f9b.v8 | Bin 48951 -> 0 bytes .../15/e8d2f3e22a3335f34693eb6912a5aa.blob | 65 --- .../15/e9c467b43f951a7cbe0e65c7802af1.v8 | Bin 13276 -> 0 bytes .../15/ef71b4e42fbd238b4f8db8b8c4fddd.v8 | Bin 29508 -> 0 bytes .../16/10414963c5638b4b20a49220c1e3b5.blob | 394 ----------------- .../16/a5479e5e5b631974365c1a785caffa.blob | 1 - .../17/0ba2f2b52a2f2dda93a32ffac8fd49.v8 | Bin 13867 -> 0 bytes .../17/0c520f15fce66c8e1fcfcc775291c9.v8 | Bin 695 -> 0 bytes .../17/45ced2685429f07812f0dbe0849755.v8 | Bin 13867 -> 0 bytes .../17/57073927aeeb90c172f3f6037e97d0.v8 | Bin 695 -> 0 bytes .../17/6837d2d5c1fad2a042138b26f8fa02.blob | 48 -- .../17/6e5cd264d41310cd577b21db72dfb9.v8 | Bin 45436 -> 0 bytes .../17/7af2c2382d36b262217f68199cf35f.v8 | Bin 695 -> 0 bytes .../17/a61e0c13ea4b54821330d1cad567ac.v8 | Bin 14229 -> 0 bytes .../18/56dbf38724100bb2a050512d45c038.blob | 1 - .../18/c82086164c9bb68f7f453ea0417c02.blob | 409 ----------------- .../19/2be36bf88733405950b4f189992875.v8 | Bin 695 -> 0 bytes .../19/b0dee6d5f0dde1eefa0909d090bfa7.blob | 48 -- .../19/d457716ec71478cd1fe19f2676a8a4.v8 | Bin 14229 -> 0 bytes .../1a/385df5b40bbe272347d6ae50011f6f.blob | 66 --- .../1a/b67078f0b60207aee20d7cfe811840.v8 | Bin 45436 -> 0 bytes .../1a/ca5de7f07d46e479945f42c19f9645.v8 | Bin 11819 -> 0 bytes .../1b/0e4e0f3f67b246cf3cdabe940a29e3.v8 | Bin 105 -> 0 bytes .../1b/26f8c1fc588c9bba17f216f9967a56.v8 | Bin 10989 -> 0 bytes .../1b/8e52ecaa713f759c2786d055f63699.blob | 48 -- .../1c/24ba9ada253fa132ecdde27b5f0f0a.v8 | Bin 695 -> 0 bytes .../1c/34e7dc4a9c011b2d4136e5d47556cd.blob | 400 ----------------- .../1c/548de57aab7d9ae42d3d6b222c457d.v8 | Bin 13867 -> 0 bytes .../1c/844af0ea560958dbcabf267d0a81f4.blob | 365 ---------------- .../1c/9209e5ea7b2d7e53ffdf940d1980dd.blob | 48 -- .../1c/eca3a75fcaba628ca30710389715e7.blob | 67 --- .../1d/d34e0331d33e8f5379e3fa6fceac6b.blob | 1 - .../1e/4f757fdaebcc893cbada131ecd143e.blob | 1 - .../1f/0c3fa247244554961a4d0ab42fed5e.v8 | Bin 695 -> 0 bytes .../1f/82a7cc5dfdad6195655d36a3ab5341.blob | 48 -- .../1f/b6044d7ff901bf850e0316dd94324a.blob | 48 -- .../1f/d43e42c3b02ec4a919c064133c7f59.blob | 399 ----------------- .../20/0a106b2bc603ecafd6ac8f5df09217.blob | 401 ----------------- .../21/47dc40bf9d30cc852e5caf5399b53c.blob | 1 - .../21/587c53a0c2bb381af563343d087244.v8 | Bin 730 -> 0 bytes .../21/7107c57cb09eb676c7ea4fc93e43ea.blob | 54 --- .../21/b8b311f44f2832943693723af32da6.blob | 18 - .../21/cdf2486557ac9a9fd8658fdd6e2158.v8 | Bin 14346 -> 0 bytes .../22/57710e28688dd6cb28c807849ada13.blob | 1 - .../22/baae1aea5f948ac8545905e55568df.v8 | Bin 41574 -> 0 bytes .../22/fda74d05384c3804703ddf3e33c3a6.blob | 69 --- .../23/1b79ca700836e4ab58b3a5a071f294.v8 | Bin 695 -> 0 bytes .../23/35179e8f2df73c0c05ce48e90bb895.v8 | Bin 2747 -> 0 bytes .../23/ccdad5d09f72774a6ad16d786dac64.blob | 21 - .../23/f8a3c483a018f807e46ce01e447ade.v8 | Bin 13276 -> 0 bytes .../24/147b628f1b7d89e8253d558ec518df.blob | 1 - .../25/e728a93b1946b5392904ee269ac9f8.blob | 21 - .../26/15464e70f54e71b5d08f4133033273.v8 | Bin 41047 -> 0 bytes .../26/41cca34bc4f6c7727f6456b4943a52.v8 | Bin 40322 -> 0 bytes .../26/81e0b763cd4948ce80deb0806c0d49.blob | 48 -- .../26/86f2c16d27b7f05a5f4464d561eb0d.blob | 48 -- .../27/1d8ccc7aa2e57cb4c3ea67e13a248f.v8 | Bin 695 -> 0 bytes .../27/6855d09498f68ea2f3de0fd478d61d.v8 | Bin 14346 -> 0 bytes .../27/7afc3e12b84c2f74d7e4919d497d2e.blob | 48 -- .../27/8bea23b419e85098a2e6289ee1db63.v8 | Bin 35142 -> 0 bytes .../27/d2c9d16f85a4cb32c045331593f3b6.blob | 1 - .../27/d74a7dc3bc13de06c95f03fbdf3fcb.blob | 398 ----------------- .../27/ea5b59d26c40366ffdc524c3cfbfd0.blob | 360 --------------- .../28/8e752e33831668ffa9c708aec61f9f.blob | 21 - .../28/a2e4040906c9fe36e1cf14ca5c28fc.v8 | Bin 20243 -> 0 bytes .../28/b86643dca37b56c8dfa69cf703b0c9.v8 | Bin 45118 -> 0 bytes .../29/8ab67538dcc9c4825145e3d58c7f4b.blob | 1 - .../29/918c50ebe62ba7679d2d5ab037f4fd.v8 | Bin 695 -> 0 bytes .../29/bf746c2e86ee29277cc63baa67ab9a.blob | 1 - .../2a/38d5c3f9eec7452e5be5cc091597c4.blob | 21 - .../2a/9f56f6cfb0b739fd5d1226b5251432.blob | 1 - .../2a/ce7e2349b04b11189c5c0540c99300.blob | 1 - .../2c/08e74716cae7c874edffb779b502f7.blob | 402 ----------------- .../2c/32dc27ddd68bde8529c67780d2ffec.blob | 52 --- .../2c/896e1d0651c2b52e11af394c42dab7.blob | 1 - .../2d/0d8cba3e356be3146e661d515bf0b1.v8 | Bin 41574 -> 0 bytes .../2d/649190ccdb6d738d37784b6a39ae2c.v8 | Bin 39812 -> 0 bytes .../2d/738aca731944a17d6a1ca39aea341d.blob | 21 - .../2d/a1092c8f30c277570c86c3a5df24c9.v8 | Bin 39864 -> 0 bytes .../2d/a810de093fecc8475df47f64b88458.v8 | Bin 695 -> 0 bytes .../2d/b4a8b4777c1195f8ce9f8acb391d47.v8 | Bin 695 -> 0 bytes .../2e/6cefd4195e207ec05dacd78d55f6c5.v8 | Bin 695 -> 0 bytes .../2e/88df76cf89906aa01e44e376f40c08.blob | 21 - .../2e/aac76e64a192dac1a547ac855aa4eb.v8 | Bin 695 -> 0 bytes .../2f/1f68d9b034c4209b5154deb7c46951.v8 | Bin 695 -> 0 bytes .../30/6942e00ecc320424eadedc488536ad.blob | 48 -- .../30/6d7dd753855b346365326136662cee.blob | 1 - .../30/7ca2ec95d5a6e1b0aa5019fb03454a.blob | 116 ----- .../30/ba7d4e6cf8c6d510746d279a69b3af.blob | 16 - .../30/fe6e19fec9385bc56563b1393182fd.v8 | Bin 688 -> 0 bytes .../31/141b09e3bcfccef2623aabf683650e.blob | 396 ----------------- .../31/5467d2555da78cf13673a1011694c6.blob | 48 -- .../32/147f673352a0e73db4adf9e1556279.v8 | Bin 695 -> 0 bytes .../32/73c3c2742f26e8acf7e9180149ebb8.blob | 1 - .../33/4ab4471d562a8472b1e085e60e9d7a.v8 | Bin 41557 -> 0 bytes .../34/bc53627ff4bd6836250ab128d23482.blob | 48 -- .../35/7bb6f799eb259e4542b26d36135c06.v8 | Bin 695 -> 0 bytes .../36/0d407238b27e481c32bca1dc362af1.blob | 67 --- .../36/2bca671fd59d503086d12c94d92b46.blob | 1 - .../36/2f861a680217a9c28d6e8d157a8ebe.blob | 48 -- .../36/8094c6bd18320cb3e7a7ee27c32d25.blob | 48 -- .../36/8e72350e8631ab11189e9ce096b799.v8 | Bin 695 -> 0 bytes .../36/a698f995fbb8e56f42e18b3ed530e0.v8 | Bin 31045 -> 0 bytes .../36/baaf9ef53ede108e95aea491e3a2f7.blob | 48 -- .../36/bcf117233edd9905525fc3508eab7f.blob | 1 - .../37/2b49082edbb22f5ae17d88cda122e3.blob | 60 --- .../37/891645c97b4738fdeb435d26dbf07f.v8 | 0 .../37/dad6d5657e0a48dce59f672b947578.v8 | Bin 14231 -> 0 bytes .../37/e1e4eee7dbf28b9df63cf8fd482e08.blob | 58 --- .../38/93ed96e7eaef61b60f5cfec2ed06a3.blob | 71 --- .../38/ea893d4ea7fe6efce02a24cb149c0d.blob | 399 ----------------- .../39/7a8cf5208eb116a647402e5c6cefe1.blob | 64 --- .../3a/1ca916534085bd3e0906e594c1cb55.blob | 1 - .../3a/2383380c6f6c7a532f24e022ea3ff4.blob | 65 --- .../3a/afb86f8d44e796b0b38deea52d3d0c.v8 | Bin 19906 -> 0 bytes .../3b/17a3defc7dbca9914c27a1ab0a5cb1.v8 | Bin 695 -> 0 bytes .../3b/1d86c1a49220b5d3fc7c330b7ec475.blob | 54 --- .../3b/62ab82859b659f3e241d4f49af0762.blob | 116 ----- .../3b/ff8cbd80c667c2a134da568e1f628d.txt | 2 - .../3c/174366ab28814ec6bc59b9baac74b9.blob | 69 --- .../3c/5bb761cd20700de78860f8ddfdf55b.v8 | Bin 13867 -> 0 bytes .../3d/1594f413b0fd67d308bae7219a0212.blob | 399 ----------------- .../3d/32800ff7452d0f3aa9aef4fa5d794a.blob | 21 - .../3d/dabda015e754985e2f524210ae76e3.v8 | Bin 13867 -> 0 bytes .../3e/4ef0d4a0ff1d5108467cc7124ec250.blob | 48 -- .../3e/cd8e355597dc0e0e566803176421fc.blob | 400 ----------------- .../3e/dbb8a184a421eef8b6967dbb8894b8.v8 | Bin 695 -> 0 bytes .../3f/b42653ed52a6bdf5330633f19ddbfe.v8 | Bin 14346 -> 0 bytes .../3f/bdd28ba238e2be7e52e363e908dded.v8 | Bin 14346 -> 0 bytes .../40/2f7e68fe79052f2b7da979a8cb34ba.v8 | Bin 14229 -> 0 bytes .../40/63fff8140c4b405685de60dda3ff99.blob | 399 ----------------- .../40/a5a18d55d9f25e1df36da53cb6a608.v8 | Bin 13867 -> 0 bytes .../41/08908a0e81d5b2b2680bc6e5628427.v8 | Bin 695 -> 0 bytes .../41/2a697d5922fb0f81ae825e131c6c2c.v8 | Bin 14346 -> 0 bytes .../41/4ce7ba711f863ff3a60523c682b866.v8 | Bin 20956 -> 0 bytes .../41/c23e76bb12f7b1ad064fd5a15367a7.blob | 1 - .../42/349b314f7230b925cf2393760dac09.v8 | Bin 695 -> 0 bytes .../42/9eea19a1899f7bff9149b49db47307.blob | 399 ----------------- .../42/a68f2f09fdbe5a1c4a8e972b492b59.v8 | Bin 39076 -> 0 bytes .../42/e33a4e2c4c628235c66a11033e78cc.v8 | Bin 695 -> 0 bytes .../43/11774c9b42c80702ac4af68a3d54e1.blob | 396 ----------------- .../43/f50e9b912366f5553ae99dda6c036b.blob | 70 --- .../44/3fd7af9cb66138e60bb6fb19e688a2.blob | 355 --------------- .../44/7ddde564ed84a0ffdbf2af309728e0.blob | 25 -- .../44/d74c56ae29e75bae06496e33739080.blob | 21 - .../45/07a7338e0278cfb0fd0e8d0ec697b8.v8 | Bin 14231 -> 0 bytes .../45/3d0f73fb82f045cb99aa22d611c709.blob | 395 ----------------- .../45/61d4d2da7a65704cae062fdc6da90b.v8 | Bin 13867 -> 0 bytes .../45/935c5cfce274336efa2f2bf1f45c7f.v8 | Bin 14346 -> 0 bytes .../45/d18a09f752f5b02c768ae66a140023.blob | 66 --- .../46/04d532f3515d0da9230ff313eb9b17.blob | 58 --- .../46/21882fd332457d98d699086ec2f164.v8 | Bin 14231 -> 0 bytes .../46/31b12006264ff1670fedae09320702.v8 | Bin 14231 -> 0 bytes .../46/62f28af4c2c22ed8e875f5956612f4.blob | 48 -- .../46/d6abaa961b3d63e7affe5e2ebbd2e1.blob | 362 --------------- .../47/fa09246f9577af56dc6f7edd96b1b0.v8 | Bin 695 -> 0 bytes .../48/873d2922871338ce6a7474efe30c98.v8 | Bin 12103 -> 0 bytes .../48/9b013d7baefd1da17b451080f4a62c.v8 | Bin 695 -> 0 bytes .../49/e44652b34fcb9f7d0425dd3953596a.v8 | Bin 40344 -> 0 bytes .../49/eebf685b7ec589e0527d8d0d4f9fde.v8 | Bin 13276 -> 0 bytes .../4a/18b07467a86cbeef8e025da8747b5d.v8 | Bin 14231 -> 0 bytes .../4a/1e06676e875c6b8454c61f4c7a71b8.v8 | Bin 23437 -> 0 bytes .../4a/e503e2bebcbe11f52ef5d386958910.v8 | Bin 41574 -> 0 bytes .../4a/eab1691ecbfdf63b28e9365fbf53bf.blob | 1 - .../4b/11e2ea04999c340887a42f0fa6ea62.v8 | Bin 13867 -> 0 bytes .../4b/2851eec2e98499636bf469f8563676.v8 | Bin 39996 -> 0 bytes .../4b/a0592e0b64ae24b61c9262e3f871df.v8 | Bin 14229 -> 0 bytes .../4b/a459c709a670d6c9ad4d7157fb1e47.blob | 32 -- .../4b/f8be3b11b148cfe626f350ecf04864.v8 | Bin 13867 -> 0 bytes .../4c/0cbe7413d2c8fbdec09a9041e1ed71.blob | 1 - .../4c/403047791c0725ba1d2fba928df3c9.blob | 348 --------------- .../4c/ab9edbefcabd9ac140e8a8b9d73385.blob | 1 - .../4d/c9827d60e773ab1291c02c5c64e9f6.blob | 66 --- .../4d/fde562f0a611e2e1c488fa9d3a2c72.v8 | Bin 695 -> 0 bytes .../4e/e2a5e5deaea6e46aebdfe9f2b34007.v8 | Bin 35955 -> 0 bytes .../4f/1c760f5bf3f35275750a2fa5edef48.blob | 48 -- .../4f/5d03c58f6a57df69ae2f4b1278ee63.blob | 389 ----------------- .../4f/667d37ede284cb4198aa00d0edb305.v8 | Bin 11612 -> 0 bytes .../4f/7f60365f3064ed6dbdfb0c769170ed.blob | 396 ----------------- .../4f/e9d85a8566e768fc604d2421c34c5c.v8 | Bin 13867 -> 0 bytes .../50/27458dde8b5d374a98d328e786c63a.blob | 73 ---- .../50/39577bfb1b1bf6ce4aa34c69ab2f1e.v8 | Bin 695 -> 0 bytes .../50/4882bf5cf851dcf58383a98cb8674e.v8 | Bin 39805 -> 0 bytes .../51/171cf9c68e4e4da82f30bdde26b7cc.blob | 1 - .../51/3d29d82a3c06609761c480852d08a6.blob | 58 --- .../51/63a817c95b0f8c30ab38473d169cb4.blob | 362 --------------- .../52/37ee8fb51f6f93379d6155490b689f.v8 | Bin 54241 -> 0 bytes .../52/495e2c8b53240c7a72cd45894c22ab.v8 | Bin 13867 -> 0 bytes .../52/67008cee1f1564d7fd4c2a1e88f702.blob | 346 --------------- .../53/15b3379f020661602e7403ffb1b10e.blob | 45 -- .../53/291a846ac306173ac98977734fb6f5.v8 | Bin 39181 -> 0 bytes .../53/a8dd8070b42f04d0d831d99da546e4.blob | 1 - .../53/ae187ec78eca3043cdcf64e5645045.v8 | Bin 695 -> 0 bytes .../54/64a885fdf56c21c3c61210299745f9.v8 | Bin 695 -> 0 bytes .../55/1a66b944eaa030fcccb2a8da02ed04.blob | 395 ----------------- .../55/5518d03597cc0860377f6662092097.v8 | Bin 13276 -> 0 bytes .../55/99663523766f09abfe273f043dc5ad.blob | 66 --- .../55/9ab0101987fd2fa332368d81af7228.blob | 48 -- .../55/e65f93c7ff0111da7a377b44ef4418.v8 | Bin 30033 -> 0 bytes .../56/c7b5fb6aa436095bb73a93a42bb8dc.blob | 1 - .../57/0e46cef4aaf3e1bcdf2d88d29c729d.v8 | Bin 695 -> 0 bytes .../57/6bbad77de8f4046ab94132b28a6792.blob | 1 - .../57/fdbfbbb2a7b321711e327582093fe8.v8 | Bin 41569 -> 0 bytes .../58/4bb0c33e62dc22e53c5c3cde9d2f22.v8 | Bin 13867 -> 0 bytes .../58/559f0ffb6a326ceaae5277fb6e51b1.v8 | Bin 695 -> 0 bytes .../58/eb2dc531195768f92a9461f5638177.blob | 396 ----------------- .../58/ee869a1f030ca7f3522f3d2d1c6746.blob | 346 --------------- .../59/173cbf55c6b658669cb668440cf77c.blob | 1 - .../59/faec212dadf19c2a1bfb81df378340.blob | 1 - .../5a/1bc699d4a4675eddff7b01cade482a.blob | 51 --- .../5a/3c3d0ab2d7ed71f72ec6b85d59914b.blob | 1 - .../5a/901ad5a14098389d8d6d7ac6e0245a.blob | 1 - .../5a/a29a683b45a6cb5163b6aff8fc7748.v8 | Bin 27345 -> 0 bytes .../5b/5699431e3d3e340c23b162198d9336.blob | 1 - .../5b/e30788997289d3a52b8e7c3c2715c8.v8 | Bin 38972 -> 0 bytes .../5c/0fe6c1558a18c385918b6f50be2a1c.v8 | Bin 14229 -> 0 bytes .../5c/108c4199961dc9aa4f6ce1eebc07b2.blob | 1 - .../5c/6e7a8c5500439acbf29cebba3f8961.blob | 1 - .../5c/777e88e08fc7047442a6f0f7e4c6d5.v8 | Bin 13276 -> 0 bytes .../5c/9764d4d7ba56b33172982747cdb5b6.blob | 1 - .../5c/97d0f47fff603807f03ff443145bcd.v8 | Bin 695 -> 0 bytes .../5c/f4f27063eb1ec5c9d7b065af856425.blob | 383 ---------------- .../5d/508cf8c72fa39b7b164fee8df96fe3.blob | 372 ---------------- .../5d/65768abd3fdc4787b863785aec81ca.blob | 1 - .../5d/83920e1fdfb90e0b9758c21730c1a1.blob | 396 ----------------- .../5d/aa0e7a588fe46c064a220acb1eff01.v8 | Bin 695 -> 0 bytes .../5d/df45fdb18206b18a954c81363b249f.blob | 18 - .../5d/f81ca0e70f4481c4c50ca66b316963.blob | 1 - .../5e/a26eb5aee8755dcceaf9df00b22839.v8 | Bin 43462 -> 0 bytes .../5e/c3546b7a63c8f4ca474ffbd51535eb.blob | 1 - .../5e/ddf4670ad083d1575c18a8217a0de5.blob | 1 - .../5e/e0e1733c7e79e958ec037989497720.v8 | Bin 695 -> 0 bytes .../5f/18e0eabc0063ac8c7a25cd865a048e.blob | 396 ----------------- .../5f/1b3f3ebf59665bd5ac4f4dfa33c67e.v8 | Bin 38971 -> 0 bytes .../5f/343e172d1779eb1eb72126f3f21f29.blob | 25 -- .../5f/6428c994a936c35553864349e3d440.blob | 403 ----------------- .../5f/ba2b0a7eb3ea9b74ba07d367dde2f0.v8 | Bin 695 -> 0 bytes .../5f/bc399f2d33e81a934d33792b551db4.blob | 21 - .../5f/c6c50f7624363a875dce67247624df.blob | 1 - .../5f/d210552b956249858a762c31b80aae.v8 | Bin 13867 -> 0 bytes .../5f/dcc004665531f44eb04ef0b1858f42.blob | 59 --- .../60/a62eda4a1f1938becec5509d15c02b.v8 | Bin 14231 -> 0 bytes .../60/ca021faef3e03ad7cc355165b68ef0.blob | 400 ----------------- .../61/80036b607db982901d046d3960a757.v8 | Bin 24785 -> 0 bytes .../61/8e4b7dc6dc7fa9fdac4ea57803f1f2.v8 | Bin 695 -> 0 bytes .../61/924ba1317d5bdcdd026807617db8e1.blob | 48 -- .../61/b8ff189925b66e76608d959e41e873.blob | 21 - .../61/f8643ca8bda452602c30ff27207cfc.v8 | Bin 695 -> 0 bytes .../62/0a415bd6174a945174ade2a66ee302.blob | 1 - .../62/2bb224bdc23900516d611571f1ecc0.v8 | Bin 695 -> 0 bytes .../62/471f5452d0e8969881f597caae7778.blob | 65 --- .../62/6354c296d29d3452e08583b9f84228.blob | 1 - .../63/47f1742f799a0ad5e04957450d479f.blob | 48 -- .../63/66a25323b59d5ac9b78d461d656155.v8 | Bin 39691 -> 0 bytes .../63/73ce5a63dec74722e0f7609e3fa157.blob | 397 ----------------- .../63/9794535be77787c36cf09434498629.blob | 58 --- .../64/1255f75edc2761b210183436c4f4a9.v8 | Bin 14231 -> 0 bytes .../64/129032f54ea617d884069fc055f800.blob | 395 ----------------- .../64/70ebcf17418c1f40486d6b22fd2628.blob | 48 -- .../65/926e18c82313c3f0e3a95a83302d8f.v8 | Bin 2747 -> 0 bytes .../65/c61e2c79f6d3f41a837ed8eb2480aa.v8 | Bin 695 -> 0 bytes .../65/f0573064dc375521a10842d2b9dd03.v8 | Bin 13276 -> 0 bytes .../66/eddf704016690a5a15eb89c2ad1a39.blob | 48 -- .../67/52e040907c21a76b243a2e7d895861.blob | 1 - .../67/5fb32fdd4edf146a95c67f42a77f2c.blob | 399 ----------------- .../67/8366cf7663d22f2197ef498c2a3882.v8 | Bin 695 -> 0 bytes .../67/9c5fa4b394a9669331740979c513ae.blob | 399 ----------------- .../67/c2f2d47432fb28604c0079c4278fae.blob | 47 -- .../67/cfed665ad8a27a01b8e1001286831a.blob | 396 ----------------- .../67/d7386baadb9d4450bbd56e7137d4d0.blob | 399 ----------------- .../68/018f27f7708df4fd24ddfa5c5177af.blob | 412 ----------------- .../68/bcd9b83cfc6d313ff9c7d2fbe104db.blob | 360 --------------- .../6c/8abd7dd7055ff5dbe040230f576d06.v8 | Bin 13276 -> 0 bytes .../6c/9199a4070cd483572e3a4fedd13e3d.v8 | Bin 14231 -> 0 bytes .../6c/93375fd05fcf514e25661598a203ff.v8 | Bin 13276 -> 0 bytes .../6c/ebd5e64b28c0e65f45cbf4ccc15c16.blob | 395 ----------------- .../6c/f9fb85bdb74619ef0b98cf8410cfd0.blob | 399 ----------------- .../6d/7220bc30281127a5576b0825313a57.v8 | Bin 695 -> 0 bytes .../6d/9661b959bf92e72e5c45c2a56f1d4b.v8 | Bin 13867 -> 0 bytes .../6d/a4476211f5bc4bd1c6976662054077.blob | 1 - .../6d/cb25798ce3e02244d96ced2ed9d689.v8 | Bin 13276 -> 0 bytes .../6d/d473077fea3bfd639cd4379da746e0.blob | 53 --- .../6d/debc4b1552fa7a264b6df0c8149714.v8 | Bin 13276 -> 0 bytes .../6e/8e1a1717e8c9d8b120f39d64f0a47c.v8 | Bin 695 -> 0 bytes .../6e/906abea7cb9830df514513eaae0b52.v8 | Bin 695 -> 0 bytes .../6e/c2e2e75525833a0200cf334c8a0fc0.blob | 1 - .../6f/2a20d85f89a027c7640f306f17d9b3.v8 | Bin 13274 -> 0 bytes .../6f/699f163973720fe045238697cb8ec3.blob | 48 -- .../6f/a34668fd690c083de1b0e1d90d2fbd.v8 | Bin 695 -> 0 bytes .../70/2d3e0a89b580cdc8f755ddc192738d.blob | 58 --- .../70/3c9e91a8806df813c5f361ccef1dcc.v8 | Bin 14346 -> 0 bytes .../70/6b296e7bbf96b168ca5b2b5c2e61eb.blob | 64 --- .../70/c264b30620e59e346149d758a75dad.blob | 48 -- .../70/fc258882c394e9ae357dcddb4a3bbb.v8 | Bin 10677 -> 0 bytes .../71/b0ca296080aa3fa3117fd4c8e54f1e.blob | 48 -- .../72/446e9f35625c9c5eb2858966954488.v8 | Bin 22821 -> 0 bytes .../72/68ddbd60fd585b327bfc07b8f6660c.blob | 400 ----------------- .../72/76d0c47875a6e4c894225e99b14353.blob | 25 -- .../72/931a52d5e12b0f1a215517e010be56.blob | 396 ----------------- .../72/b7eba33cec781f240d769b6b0d9c7e.blob | 48 -- .../73/208fcbfa1c008e0bd140ff4799636d.v8 | Bin 695 -> 0 bytes .../73/c8291a4a0dcee55b49ad28b4cf8949.blob | 64 --- .../73/d1a9b4245144148cc0da47660d69e8.blob | 66 --- .../74/3f0c7a19c3f9058bb8653603c2a867.v8 | Bin 13867 -> 0 bytes .../74/6c13b9eca569a04fb252dcc0ed0f11.blob | 396 ----------------- .../74/bc166d1e6bc14e39929f498ab19ffd.blob | 1 - .../74/d44e5f52534547b022c76357f4b4b4.blob | 1 - .../74/fb67308e0a39b13530580cf4ce82e3.v8 | Bin 47257 -> 0 bytes .../75/73f47e09c4174993598ab2184619ea.v8 | Bin 48945 -> 0 bytes .../75/bc635b28f7e35878c6c2be12ee24aa.v8 | Bin 695 -> 0 bytes .../75/d567a788925c6ac0207912f8d831d0.blob | 21 - .../75/d7acf4213974e0824f1f5a48ac7058.blob | 1 - .../76/2598f316b425d2966ded84ab4f93f1.v8 | Bin 45436 -> 0 bytes .../76/53e1310dce71f8bb0535fa4579eada.blob | 400 ----------------- .../76/ba1733e50482c64dcc2fba614125a1.blob | 48 -- .../76/cb7d9bbf380917df0a75c5edf0629a.blob | 58 --- .../76/e1268c78e38669e01f96d4495676a9.blob | 73 ---- .../77/66a06de76416213338d8563b77054b.blob | 1 - .../77/7f80d3999546112b6e32bf82e7b44b.blob | 58 --- .../77/d197c5d6c654ef187afc80748b46ff.blob | 68 --- .../78/10f4d19bd288a3167b03af4aa0bfa0.blob | 0 .../78/39f54358397ca7eb511b6f197a4468.blob | 65 --- .../78/6fb293b794ba36e7ae09c3d3618f3e.v8 | Bin 25600 -> 0 bytes .../79/2a3c9c62193454dfbc5c2953e65f94.blob | 69 --- .../79/fdef30b8b2fd543f74b090165af628.blob | 69 --- .../7a/1f4aa02ebbc9637c154f1ff7489878.v8 | Bin 13867 -> 0 bytes .../7a/4fc2de8957fa2b4ac7e14b21b2c7f8.v8 | Bin 11290 -> 0 bytes .../7a/d0d3186d803581b2821e65f1bd368d.blob | 389 ----------------- .../7b/5ec2025f131039f1f956a1abd168b6.v8 | Bin 14229 -> 0 bytes .../7b/8faf8474397137354858213a1198f1.v8 | Bin 14229 -> 0 bytes .../7b/e725167b798579571700af40fb8742.v8 | Bin 695 -> 0 bytes .../7c/d76d042ce21413d08f2bcfb97ec476.blob | 66 --- .../7d/f626ae5c9f1f3617ee44b8852ea7b6.v8 | Bin 14196 -> 0 bytes .../7e/28c954c94fa5546687a1c421358c47.blob | 335 -------------- .../7e/3081255b93943c311f7b4af7a772e2.blob | 1 - .../7e/d06d605e5eca1c126434bf7e54597e.blob | 1 - .../7e/f9b762c8c62f4bd00ecd69dac70cd0.v8 | Bin 13276 -> 0 bytes .../7f/6bff423d0ad3482ca274c329b71160.blob | 83 ---- .../80/35b87afd87891bd0065f6bb0bfe374.blob | 394 ----------------- .../80/47d0acfe0d899552043db75a76ded5.blob | 337 -------------- .../80/a10a72dd1a77fa72d1ccf0479b9407.blob | 1 - .../81/4fe621b89f8d7cbf12dd2675478334.v8 | Bin 695 -> 0 bytes .../81/6b78c030a57dbafb6dc35446af57b6.blob | 48 -- .../81/81bb47122b055ca713795945d47080.blob | 21 - .../81/8a788b6b296e05aac7e9c0f3bee7a6.v8 | Bin 28581 -> 0 bytes .../81/c959a51d09c0aefbbaec7f2e2294bd.blob | 1 - .../81/cc3005104c4c9e65f7c4f9768ebfa5.blob | 70 --- .../82/0474e2e098c448e3628ec9c31f3ec6.blob | 374 ---------------- .../82/87222615d6a4441bfd3ce703a7e5ad.blob | 21 - .../82/95e9ab5e621d7eb2054cd04b50d9fc.blob | 71 --- .../82/cd0858a9977225a17ac7f27a4d2946.v8 | Bin 13867 -> 0 bytes .../83/377cb5032b7fa035d34cda01202a5c.blob | 1 - .../83/3bce9152245a022028722fe7877ae2.blob | 48 -- .../83/66632e3cc7a015931398178ced87b0.blob | 390 ----------------- .../83/86cae347757d2073941cc10ffbfe59.blob | 65 --- .../83/8fffdab7d181d55752b83fd3c27ff6.v8 | Bin 14229 -> 0 bytes .../84/124ea3fd0555c5ee250fcb9e2e61bb.blob | 1 - .../84/20d934ae4d819f13801a8ac7896fc8.blob | 53 --- .../84/5cd1670e439c250d7eeaa8733275ab.blob | 396 ----------------- .../85/4405aebeca1143004a806f4452188a.blob | 69 --- .../85/e3293028d2abb62f6abd53d957bae6.blob | 1 - .../86/00cc390098457a93a862efa08df2ab.blob | 1 - .../86/22a4ce119700b6f448f0473cceb9e7.blob | 395 ----------------- .../86/581330c6d8b8305827b4bb2c68dc2e.v8 | Bin 42713 -> 0 bytes .../86/85072559a62344f9aaa4df4f416512.blob | 21 - .../86/ca1d4279ca2b9ca22d6cc4c575e93f.blob | 48 -- .../87/05cd336efd1c14e804ec90d84f784f.blob | 48 -- .../87/9ac3c8cf7d9d180b7dcf0cc6487d17.blob | 53 --- .../87/9cdade3aed6904238f11aaf00a9a25.blob | 395 ----------------- .../87/f4aef3f54ab5de20272e5e4db18401.blob | 333 -------------- .../87/fe4efb3c6392625f30ad3d4c549ee2.blob | 21 - .../88/340713f6cb6d89ad1dd0246181e0a5.v8 | Bin 695 -> 0 bytes .../88/924b685df56461a341b8821fd89413.blob | 394 ----------------- .../88/b3ea81922247d0f33f709bdad933c5.v8 | Bin 12845 -> 0 bytes .../88/bbbd9b6f73ad385b1fadb306e6dd38.blob | 361 --------------- .../89/02bb3e82eed9949a202662936afe27.blob | 48 -- .../89/4997ea06aca421bf452e85f8d3588b.blob | 348 --------------- .../89/55049274cb86f043da45edd191ef99.blob | 48 -- .../89/645c5e68e0726264ccce29741df15a.blob | 383 ---------------- .../8a/07603cf786e9e4acbd9ecc5da96085.v8 | Bin 7428 -> 0 bytes .../8b/665a3c2e890633b647b1e30d1acbbd.blob | 1 - .../8b/9646010bcab273413d2969346a0782.v8 | Bin 48951 -> 0 bytes .../8b/f0d4ccf7aaf2db7d3b7fe55f12ee8d.blob | 349 --------------- .../8b/fe59e8cbed37b8291cde32b2a8fba3.v8 | Bin 13276 -> 0 bytes .../8c/67e83b5dc65856037ecc528ba46759.blob | 374 ---------------- .../8c/957d14b685c30c97a24e6a297035d4.blob | 1 - .../8c/99b31dae93facc09738c0b585f53a2.blob | 72 --- .../8c/99e45c5a5b8afbf271f7a4d10bb1b8.blob | 1 - .../8d/05ec1536759f0d1bd7b5c826d874ff.v8 | Bin 13276 -> 0 bytes .../8d/0e7bd8e5e2d4968cd5ce44fd75da1e.blob | 1 - .../8d/20d6e0d0924fabf1814aa5f1aee5af.blob | 70 --- .../8d/23bfefc7138b13a23ea44c81ed4809.blob | 396 ----------------- .../8d/760e335117840be126c8e695bd0118.v8 | Bin 13276 -> 0 bytes .../8d/b2e05380ac4e80db77fb22859b7bbc.v8 | Bin 700 -> 0 bytes .../8d/bb4f15f07c9d3f5ea8f6c0d8832da5.v8 | Bin 14231 -> 0 bytes .../8e/7297c5761c28238dc75ed81cb63020.blob | 351 --------------- .../8e/9685d226af37f145fa432390eed68a.v8 | Bin 2747 -> 0 bytes .../8e/f82b016830bbecc0ae349b1fd55951.v8 | Bin 2747 -> 0 bytes .../8f/7eed6c44711501cc1f647a0f1b40ea.blob | 65 --- .../8f/8158fa47c2680f495f839ebd6929e2.blob | 48 -- .../8f/906c1fc14d39e9b1c2dda6247d538b.v8 | Bin 13867 -> 0 bytes .../90/22c8654ec1e844705eaebaf09897e9.blob | 66 --- .../90/28b9402e61aff0badd2cd2b0264be5.blob | 395 ----------------- .../90/53196b729dc3c6cfbc0fa371ac4bcb.blob | 7 - .../90/789507bd5eb8ec9d2c900784defc06.v8 | Bin 695 -> 0 bytes .../90/e85b76d4bdf3d9a61216aa1159304c.blob | 21 - .../90/eba0bbc1dd73375d0cd58c36caeaef.v8 | Bin 717 -> 0 bytes .../91/13ad494aa8bd06100a2760fbd2ad3a.blob | 403 ----------------- .../91/1cee8da8f916d29c374ba4855f8afb.blob | 351 --------------- .../91/7103297e818544c0d280e41c9a7668.v8 | Bin 39810 -> 0 bytes .../92/22d57860d7a97559b5ddad4ed55e6a.v8 | Bin 13867 -> 0 bytes .../92/28b8d51516d3d04d378238bdece3ee.blob | 48 -- .../93/32f1d7f8f96541fbc3b7323ddc6c14.v8 | Bin 34945 -> 0 bytes .../93/6b886e0ed26648590b51925712029f.v8 | Bin 695 -> 0 bytes .../93/c7160e0bcfa0f11fc4d493f1731b2e.blob | 44 -- .../93/f3cc7dedd0edea18067cfdb98e1e87.blob | 17 - .../94/78b287174ecbbcef0f175771dba002.v8 | Bin 14346 -> 0 bytes .../95/1f57160433c76d24a035633e3029d1.blob | 1 - .../95/990cd6561b648dbb7c02b43cdd3db2.blob | 1 - .../95/fe9c4e533f6a16bf838e744076804e.v8 | Bin 2752 -> 0 bytes .../96/2f35d3eb3abf4744dfb56e85bb69b7.v8 | Bin 695 -> 0 bytes .../97/dfcd0b9a84ca9de929b5cee9fb5de0.v8 | Bin 13276 -> 0 bytes .../98/380a47622e6cd8d3db6b96772ebc43.v8 | Bin 13867 -> 0 bytes .../98/3b77f67d2ecdda85677e07c75f3107.v8 | Bin 14229 -> 0 bytes .../98/5767358048da5bd699b6a143bb6744.blob | 64 --- .../98/8445ac5a82dee18d1a5ff004cf7166.v8 | Bin 24163 -> 0 bytes .../99/080f1711850486b94a1eaa2ff98404.blob | 395 ----------------- .../99/14b340a60e09c962a0406fd495c781.blob | 374 ---------------- .../99/4d04ee923fd96e776481971b0312ad.blob | 1 - .../99/51203e5da990ed7d6bcee312da2905.v8 | Bin 695 -> 0 bytes .../99/5f105569cf4d0a1f7db1f84c3efd2f.blob | 1 - .../9a/2dff90d632d6fb399a2a37933d5e02.blob | 375 ---------------- .../9a/8644fbbe89328559412cae23051b40.v8 | Bin 695 -> 0 bytes .../9a/aa2ab74ed3af0f8482d328bfb41a36.v8 | Bin 25392 -> 0 bytes .../9a/dd113ef65e1a65595560d961b71ab8.v8 | Bin 21685 -> 0 bytes .../9c/2015843184ec8af2811610cc277665.blob | 377 ---------------- .../9c/31236af0bc6d580a6703f01521f9a4.v8 | Bin 688 -> 0 bytes .../9c/b2f5ca58d50bde69bd17b9018cc0bd.v8 | Bin 7219 -> 0 bytes .../9c/d548d14a2b6991ec8352b20f91bf74.v8 | Bin 14231 -> 0 bytes .../9c/d63d8ae90f1bd77627436c1b0298f0.blob | 70 --- .../9d/d07d98015f9d334874e10deb5fd408.v8 | Bin 30740 -> 0 bytes .../9e/4f47b3cc489d6114e53da21bd582c9.blob | 32 -- .../9e/581b173ae9dcffb1daf3aeb5efbae6.blob | 401 ----------------- .../9e/b554fa6b5fe1ca823493fea4462da9.v8 | Bin 14371 -> 0 bytes .../9e/b584f8e7c8c766693885314d3df30a.v8 | Bin 695 -> 0 bytes .../9e/f94256c3b6f7c5008ed6146827253d.blob | 1 - .../9f/7cfbe2dfec8914d6a58fd243168870.blob | 58 --- .../9f/e8dafe76b5aece62e02e0010ff3dd5.blob | 78 ---- .../a0/197c7bb241997447a285863c1a9c88.blob | 48 -- .../a0/86c8c4ac27d28495dbf1f4d692c071.v8 | Bin 695 -> 0 bytes .../a1/af80cc3cab3660c4100cbb6bd3597e.v8 | Bin 13867 -> 0 bytes .../a1/cc87386ae106c470c8e3779fbc3c56.v8 | Bin 695 -> 0 bytes .../a2/34588608eb8b59c8a4a47d890f013e.v8 | Bin 46363 -> 0 bytes .../a2/5773fd2786d782ba37ef446586918a.blob | 48 -- .../a2/e8b9641d996e533cfc2e9638df894f.blob | 16 - .../a3/13b6513414ae20022e923683dda5b5.v8 | Bin 13867 -> 0 bytes .../a3/6690cc7fced904358fade50e4dfdfa.v8 | Bin 695 -> 0 bytes .../a3/f58f0064dceed7820e372029138d77.blob | 1 - .../a5/0db25e53a0927dffecb2e31e258069.v8 | Bin 695 -> 0 bytes .../a5/5e78a3f6202b80d802fe1f38840c8f.blob | 1 - .../a5/77b78bfc5e5d0335f82107b9fa5f15.blob | 402 ----------------- .../a5/b1715af07c2e0a5130305794bbddcb.blob | 48 -- .../a5/e1673e252b3c9900e1600b070d4a45.blob | 1 - .../a6/0081d4695c1702e773680a699439de.blob | 1 - .../a6/c2acc3a50ed9f69c5bf114878c39d6.v8 | Bin 695 -> 0 bytes .../a6/ffcb9e6431295ba719bdcd6387155b.blob | 48 -- .../a7/ce934e4ef968295a84ed96a1e6617d.v8 | Bin 38972 -> 0 bytes .../a7/fc0f92547489bbf27c8a5a7f9e8388.v8 | Bin 695 -> 0 bytes .../a8/18102f36c763f5b1eb2442b8fce7bb.blob | 373 ---------------- .../a8/1f31390690b9cc359db68adc23d6ea.blob | 48 -- .../a8/6fd33ae17de71653859fb3342ffdc4.v8 | Bin 2733 -> 0 bytes .../a8/e0b149b2a03347fe78c522f6d729e4.blob | 70 --- .../a8/f09b1a7e751fdc04880ea565b0231e.v8 | Bin 43979 -> 0 bytes .../aa/ec78432bbb35d45e43658653eeb0e1.v8 | Bin 13867 -> 0 bytes .../ab/06190dfe712529184c40e9a758141c.blob | 48 -- .../ab/0c310b7272d4051109cf7a6d5a1579.v8 | Bin 695 -> 0 bytes .../ab/28b6e056c7f0c215acd83f2c8e0443.v8 | Bin 695 -> 0 bytes .../ab/5fd0fe1113e15a32ca4ddea6738242.blob | 331 -------------- .../ac/008bbddccaf109e6126d61c0061dc2.blob | 48 -- .../ac/aee0bb74254e5cc6f724a1c9de67f9.blob | 21 - .../ad/3a03f7e06e0d9e3d5c1586a12a1c1c.v8 | Bin 14231 -> 0 bytes .../ad/9130b58e86e7e4410ab7fed2eceb3a.v8 | Bin 695 -> 0 bytes .../ad/bd9255927c3fbdd29fb5a8d4ba0ff4.blob | 48 -- .../ae/2d2aec0524bfb1d0845a316230d8eb.blob | 21 - .../ae/630249c865921263c92364b0526dac.blob | 82 ---- .../ae/66897f6d1478716763e70038083d3a.blob | 48 -- .../ae/a23452e6dcc3d3bb3a2dc2367fd899.v8 | Bin 13276 -> 0 bytes .../af/12cb1a107d0a7247e90da3b32018ce.blob | 18 - .../af/92c8fba16f8def6c68f356df576808.v8 | Bin 11089 -> 0 bytes .../af/a72eb75aecc490fa568cc4a0557b9a.blob | 21 - .../af/c9e44fc601fa07790cbbec520598f2.v8 | Bin 10363 -> 0 bytes .../b0/133cf6d56f976873927ef06b268c73.blob | 48 -- .../b0/16dafe59f952adafd7b85c77c41687.v8 | Bin 38580 -> 0 bytes .../b0/2a64fad9062b2b728c2a794612fb0f.blob | 1 - .../b0/41641e1715a113a66ca3235c815b48.v8 | Bin 14231 -> 0 bytes .../b0/4207c59fb79a8a3e302ca1d796bf7b.blob | 1 - .../b0/86d2fb0983a6352ddf2babde0e9cfc.blob | 1 - .../b0/9b1cca2e299c3c6f2f43ecaaf551a8.v8 | Bin 51815 -> 0 bytes .../b0/ab409659de1871ddf8ddeb74132cc2.blob | 1 - .../b0/b516c4c0ce8fa1778f99b0b3f1601c.blob | 69 --- .../b0/cd4954e6376e5092bd583015b4b3b2.v8 | Bin 42102 -> 0 bytes .../b0/daa860589ae5ef6856e46f4d5c302b.blob | 1 - .../b1/459b1cc13f62b3bd47e804e69f5f9b.v8 | Bin 19334 -> 0 bytes .../b2/1a38c4c840405ea07541984f1f56fc.v8 | Bin 695 -> 0 bytes .../b2/53dd098f20d673cf982d273a542fbc.blob | 30 -- .../b2/67e6d02a91c02f9281eb52183093c7.blob | 48 -- .../b2/8ccf768fb14cb1e52de4dac5558488.blob | 48 -- .../b2/aa891a92508362eaab47257a119b4c.blob | 21 - .../b2/bdbe36bd2ee3ca394d55ec4674ff62.blob | 1 - .../b3/388ea673543e8b9a080e326cd209fb.blob | 348 --------------- .../b3/a72fa8af67420a7aa79ba508e81004.v8 | Bin 24051 -> 0 bytes .../b3/caa5306232c4185c2d13ab2771b448.v8 | Bin 695 -> 0 bytes .../b3/cdcd6255fc514f2534e1b88eafe286.v8 | Bin 46801 -> 0 bytes .../b3/d52f9ecdc7dc3e17d0b25417454f70.blob | 48 -- .../b4/1a057cca68196910effab5fb7a7013.blob | 384 ---------------- .../b4/2f85977f7ac36ad2e3fa8c672181ee.blob | 1 - .../b4/30063bd0ec0314c38e9c3ea7a3941f.blob | 1 - .../b4/58c6e5fa7bd39b9239ab0eef099c17.blob | 52 --- .../b4/768f405f8d1fc0ebb1f7c0f4aa4799.blob | 48 -- .../b4/9c0e4bb6f70ae5d8d7d9700c02a328.v8 | Bin 13867 -> 0 bytes .../b5/1e0a54ebeb9213665970d54b375f41.v8 | Bin 695 -> 0 bytes .../b5/3943d561e48f670936dcb43feb5f93.v8 | Bin 13867 -> 0 bytes .../b5/85181b3d6ad137b3990bea4344036a.blob | 48 -- .../b5/8c9ee141b7f3fb6fc2d3b13b97de12.blob | 79 ---- .../b5/905228b954b3ee07c338f7bb08ecb1.v8 | Bin 40318 -> 0 bytes .../b5/ad781704927c676f95f771d029894e.v8 | Bin 13276 -> 0 bytes .../b6/00160697430a4e56e270e1e2f3907b.v8 | Bin 13276 -> 0 bytes .../b7/92cd580cf2c959029267e19cfd1e77.blob | 31 -- .../b7/e861b13f2abfbb36d1db5335b5ded6.blob | 397 ----------------- .../b7/f2a13566373976a5751e607f2d1ec1.blob | 59 --- .../b8/36ae95e5c75edc2da36e127936ee7f.v8 | Bin 14229 -> 0 bytes .../ba/98e699325b7238b558ad192fec6084.blob | 401 ----------------- .../ba/e309e6429b7e35ffebac82e77e6de4.blob | 395 ----------------- .../ba/e78593cb012beaffbf71908b66453b.blob | 399 ----------------- .../bb/26535d5c53d10f55e9060db434781c.blob | 18 - .../bb/4ea3225343cae7bf9468c8e28995ad.blob | 347 --------------- .../bc/1bbfc054f628516806f678bc6d4bd4.v8 | Bin 695 -> 0 bytes .../bc/24a1dc9f6e91f33fd8d83ac99259e7.v8 | Bin 695 -> 0 bytes .../bc/2fe6a89b09ad93de8b8044713f5c17.blob | 48 -- .../bd/230a5b5614b8bfa426dec86a437783.v8 | Bin 25600 -> 0 bytes .../bd/2fa3bd2fbe49840b5f50a057c7c5a3.v8 | Bin 13276 -> 0 bytes .../bd/47600fd1dbf1fa73c4d0b613168bc8.v8 | Bin 44641 -> 0 bytes .../bd/487aece62bdedd480f436c4054580e.v8 | Bin 7221 -> 0 bytes .../bd/49be52f8b44142d91895af4e607671.v8 | Bin 695 -> 0 bytes .../be/5dae851d4b7e5c4223445c5a249ab2.blob | 1 - .../bf/e5a923fc404ef5c436f83f69a7b129.blob | 348 --------------- .../bf/e91ddb85d1dba3d0361e798c2614c1.v8 | Bin 695 -> 0 bytes .../c0/0d72f8c0deca9c4f5c6fed5315249c.v8 | Bin 715 -> 0 bytes .../c0/6a8663bae0582986748f58dbd267f6.v8 | Bin 14231 -> 0 bytes .../c0/6f00d2d29994c976a0a4dc961eabeb.blob | 54 --- .../c0/be0e7fca2013563a97796cbe999367.v8 | Bin 45436 -> 0 bytes .../c0/d0e83f97a3ee21a5f750fa6d4079c2.blob | 21 - .../c1/17dd6b46d9412fde72b729ae30dae2.v8 | Bin 14346 -> 0 bytes .../c1/9b92822b1db01b4523403843d37bb1.blob | 395 ----------------- .../c1/d0faf04b31891d545613042b76ff8e.v8 | Bin 21203 -> 0 bytes .../c2/1f17a379b7ea70ff69a62e065ba475.v8 | Bin 695 -> 0 bytes .../c2/d441783a95aa8c98a4847f624e9dff.blob | 48 -- .../c2/ea13080ddf16a1b6a7a9e0b18f6c0c.v8 | Bin 43557 -> 0 bytes .../c2/ed89ac470a1eb93bdf654e0093897f.blob | 21 - .../c3/306fe059b7a5a1f183dcc3e3da15f2.blob | 42 -- .../c4/218098489a558b857e991f018fbe71.blob | 5 - .../c4/4a68879942b9fcef5d0f94da5151d2.blob | 43 -- .../c5/217569aea0200615b1b7ed23b36b5a.blob | 48 -- .../c5/762185e9da283511e814a54f895f47.blob | 30 -- .../c5/c2bfe76d44e6166e1f9a470aa47e6b.v8 | Bin 14346 -> 0 bytes .../c6/0e3634023d2e4418e9e8e6b9bf1cc8.v8 | Bin 39693 -> 0 bytes .../c6/51350d73d2cd62e285c9d7c458abd5.v8 | Bin 45853 -> 0 bytes .../c6/9e53a931ef87d30e255241434434f2.v8 | Bin 13276 -> 0 bytes .../c7/22373d9d474e966f3bcb54855aeafb.v8 | Bin 695 -> 0 bytes .../c7/a16976af73178c7e3e277c708ce48c.v8 | Bin 14231 -> 0 bytes .../c8/20070ce2d2f7e75a83e0bbfc52ab02.blob | 48 -- .../c8/fb9ede61fea3775f7ec68e7c33726d.v8 | Bin 695 -> 0 bytes .../c9/2324fb7b588511914c8a344f370867.blob | 58 --- .../c9/c2b8afcd5bd575bc103184c352a44a.blob | 61 --- .../c9/d6cf420b922309bad95a307407c079.v8 | Bin 695 -> 0 bytes .../c9/f82e5316da900e584fdaa9257fc613.blob | 47 -- .../c9/fd8831db3356963c938e7acfefe1ec.v8 | Bin 695 -> 0 bytes .../ca/9ba5e18a5892662c896c26e304e0ca.blob | 59 --- .../ca/9d4994d7fca3d9a2ccc42c859634ac.blob | 41 -- .../ca/a231c9de68c8cb28f26dfe110ce09b.v8 | Bin 45635 -> 0 bytes .../cb/ae7176dfde0ff2ae4a2273cbff5c63.v8 | Bin 14231 -> 0 bytes .../cb/caa280ba1fb8028792d367c2f58254.v8 | Bin 30013 -> 0 bytes .../cc/50977c050345d929ec8ee662179915.blob | 366 ---------------- .../cc/98318d923d5d94d8a992b34bf208de.blob | 21 - .../cd/0455f92f893515c9065dcc8e6c3d2a.v8 | Bin 695 -> 0 bytes .../cd/2cf34e990509dca142aface3b3fb51.blob | 1 - .../cd/b8f17460802ea8bea245fbddd940f9.v8 | Bin 695 -> 0 bytes .../ce/04fe9eddc91d9662324310bd5027a9.v8 | Bin 13276 -> 0 bytes .../ce/9e7ab58bdc8b78b0e747a36d151878.v8 | Bin 14231 -> 0 bytes .../ce/c2778c883a97a64788174101fa02a2.blob | 1 - .../ce/df7ec962546c64903ef345f88b1f54.blob | 1 - .../ce/e0dfb5229651a644dd2b3ed26f8b84.blob | 1 - .../ce/e62ff419f7cd1b96cb7e68096f7e03.blob | 382 ---------------- .../cf/1f8f89bf18e73dd32753cc4e4cdedb.blob | 1 - .../cf/a378829bbe21905006cf91016d84fe.blob | 25 -- .../cf/d2265479c0655ad87b748ecdd8f836.blob | 48 -- .../d0/12e0ab134ae075ec4bf46d50d896b7.v8 | Bin 34532 -> 0 bytes .../d0/25d79ee6d9d06383ae69e458c06b8a.blob | 1 - .../d0/43bfd2827513b100162682f9aef63b.v8 | Bin 695 -> 0 bytes .../d0/6ab988707192ef6ad7063cdf500eb1.blob | 1 - .../d1/e6d40c4ed7154c6db56a2a39c2ebcc.blob | 21 - .../d2/14f256f35330e852bab72b304b1ad1.blob | 192 -------- .../d2/3ec36232a4d2961207b9bf9093d2cb.v8 | Bin 14229 -> 0 bytes .../d3/a4ed80d287bf235ba2c50a615cf5c0.blob | 67 --- .../d4/61c968f993e25f016dbf1dffdaf223.v8 | Bin 29306 -> 0 bytes .../d4/8c890d5dd3fc255e452d6dd72a4884.v8 | Bin 12845 -> 0 bytes .../d4/deaee22761c23adb08b08aaa6dca80.blob | 21 - .../d4/fd7b4b397572a1e27c7b14362c8b59.blob | 382 ---------------- .../d5/655dddf1dc33ee8ac9c58302a9b9d6.v8 | Bin 695 -> 0 bytes .../d5/738fceac3d270893a384a62f677754.blob | 397 ----------------- .../d5/8212eb6713e17dd8fbfb0ce5747542.v8 | Bin 13276 -> 0 bytes .../d5/891ffa6671a7e2d5eef94665fbdc80.blob | 1 - .../d5/c601b43979ccafd85167985f2c34a6.blob | 48 -- .../d5/c86984432160c8095f8e2c612ae830.v8 | Bin 13276 -> 0 bytes .../d6/2056937b3fd4120848bf97b356f6a6.v8 | Bin 41578 -> 0 bytes .../d6/ad0b1f6d3de6692fa5967366e4d046.v8 | Bin 10998 -> 0 bytes .../d7/382c7967598dc517734ec22763c991.blob | 69 --- .../d7/6456096d72c72c522bb89f684f23a6.v8 | Bin 45436 -> 0 bytes .../d8/2dedfc01580f3db3ff6ec82c3e681e.v8 | Bin 20450 -> 0 bytes .../d8/d5e8804a4279b4f0c63ea34b757f74.blob | 403 ----------------- .../d9/169652d07489b7aa48b9e28e0a47d4.blob | 44 -- .../d9/f2a478ecc8bb51a5803f37612fe029.blob | 65 --- .../da/2fa2748fa48cbd49c0d0006f779a74.blob | 372 ---------------- .../da/4095f946392ff118d175672bf7f4e7.blob | 3 - .../da/783df310e9fc41ab3b994f3ec09b57.blob | 21 - .../db/17b7239073e5be33eaad83b0e10574.v8 | Bin 5246 -> 0 bytes .../db/1c5675ffb3574bb47f326937269805.blob | 337 -------------- .../db/2bc968e37577c216d562c87a27eff0.blob | 32 -- .../db/80c4e8d53684c5cb7b45a8348542d9.v8 | Bin 13276 -> 0 bytes .../db/fb3949b02a0088cb650e7fd76ad6e0.v8 | Bin 695 -> 0 bytes .../dc/63ca56a08dcb5e31bd953be618c02e.blob | 1 - .../dc/82ac2c5b2c6ec3d484addce498fdd4.blob | 403 ----------------- .../dc/bc01516f98e7efddb238acae35a1da.blob | 69 --- .../dd/ec0cbacf84f2fdccabac74a48d50de.blob | 348 --------------- .../de/bc7f8f52c4274f1180c6f64b79e521.v8 | Bin 13276 -> 0 bytes .../de/ce7b2773b4615aefbfcfe1b5baa942.blob | 389 ----------------- .../de/d0de96066cc7faba79beb98e13a11c.blob | 1 - .../df/3054bf6c28d0cef312d92ec51c58ae.blob | 1 - .../df/65502a3a666fe9e083f18cb8211e09.blob | 72 --- .../df/d1db5681ccc75372de8a6da5397fb3.blob | 1 - .../df/e651ad8c1b272b269262261b04390f.v8 | Bin 13867 -> 0 bytes .../e0/49597da0d4c31285e88eae4897f0d3.v8 | Bin 695 -> 0 bytes .../e0/6c41070d0524b3ce406fb9d4973407.blob | 48 -- .../e0/6ff67b40ff633ed4f4ae8b0f54a7bf.blob | 1 - .../e0/b7b5d0a839a18ed890f02b85b7368f.v8 | Bin 14229 -> 0 bytes .../e0/c0c141e63a06601be55c2d55707e69.v8 | Bin 695 -> 0 bytes .../e0/d8cc0775b19de3d2b9aca050a7d169.blob | 394 ----------------- .../e1/06564657f6ea6a2217d0a8d19cfda1.blob | 48 -- .../e1/64a050ae129153c0c7ebc55fd95c9a.blob | 36 -- .../e1/cb17d4628d7fd6981f13187a2745e9.blob | 48 -- .../e2/0e4e4480d11fe4944cd5f50c5b4c1f.blob | 381 ---------------- .../e2/74e66f134eff8125868d8e0bd09edf.blob | 18 - .../e3/370480cb8974c2ffd0724787d320d2.v8 | Bin 43341 -> 0 bytes .../e3/b3bdb42886aff50912925cd3912540.blob | 48 -- .../e3/bc01836052413f36616873ec60cead.blob | 391 ----------------- .../e4/87484cbd9f67425d9d651ed36ae1c4.blob | 58 --- .../e4/bc729ce23ab3978f35a6c17f9fe613.v8 | Bin 39814 -> 0 bytes .../e4/d621a120d83386c836ebc559bc0c69.v8 | Bin 19392 -> 0 bytes .../e4/f4b082134c1cc65b1bf1d7d33282e1.v8 | Bin 695 -> 0 bytes .../e5/05dbcce0ccf407e9e44cfdbc945376.blob | 383 ---------------- .../e5/db326622d1ffefdc7c220315d5b520.blob | 337 -------------- .../e6/5b45402a128debfcefde8c0d26f2ab.blob | 1 - .../e6/69b5247fa95621c8a8d7301fb03948.v8 | Bin 695 -> 0 bytes .../e6/9fefc9bcd41f96f9658655786859a6.v8 | Bin 695 -> 0 bytes .../e6/c6a2382ed3b51beba43bbce5220607.v8 | Bin 38971 -> 0 bytes .../e7/1626d0c358361d4abc9fa2c41d6fe5.blob | 66 --- .../e7/4766c400219757bc51d7df00321be4.v8 | Bin 695 -> 0 bytes .../e7/813ca235439316a2d8df63111ea405.v8 | Bin 45635 -> 0 bytes .../e7/fc02d24dfc10575aed7e2b332d731d.blob | 1 - .../e8/0dbd3ebba69cb844eb5ca77eb9cd91.v8 | Bin 34522 -> 0 bytes .../e8/b4d72ed44b85ab4b07188fdc9565ec.blob | 69 --- .../e9/24fe03d773b5303081b668cb6362fe.blob | 48 -- .../e9/290d1feb0179aaa499d85bdf8836bb.blob | 399 ----------------- .../ea/4bdc930340d2e05687110aebd7fee5.txt | 2 - .../ea/7982a0c71ba960413c1a032543d9a7.v8 | Bin 10885 -> 0 bytes .../ea/f080c3d16868fb117dc969ff848491.v8 | Bin 695 -> 0 bytes .../ea/fca8902a725c6c3a4117c5963d64ae.blob | 25 -- .../eb/7ad79dc789bc8b581827c43b0eeab0.blob | 21 - .../eb/d24c1ad7e09ded9d85627c45c37005.blob | 1 - .../ec/5c376c361e9d060a4700f8f222c16c.blob | 408 ----------------- .../ec/7a33740e7e73c6eddb36bacba60d68.v8 | Bin 695 -> 0 bytes .../ec/d3858a0ca41572ff408562f7db8527.v8 | Bin 13867 -> 0 bytes .../ed/1d38d2c63dfc7044151b4123fbc9cf.v8 | Bin 42107 -> 0 bytes .../ed/9bc1606a4bf9df861bc07f4cd1f5f5.blob | 1 - .../ed/db5dc33d374fd5452108a0d9c14a8e.blob | 65 --- .../ed/eaba34efed1782427e5a5c2e3daddb.v8 | Bin 43557 -> 0 bytes .../ee/1e71af0737db2fa9b4cf9bfbbfa389.v8 | Bin 13867 -> 0 bytes .../ee/50c1c06d0e510dc4715da198ff6636.blob | 78 ---- .../ef/5b06e75a5e23e840eaf1fd2def8eba.blob | 19 - .../ef/6cb86d9b2fa0ebde7439610c09e540.v8 | Bin 13276 -> 0 bytes .../ef/8b05173a8d6aa9d882c1672683d0fd.blob | 1 - .../ef/c163f13be74b11750c818ba8220c28.blob | 54 --- .../f0/1623aa794fae6965c20983287373cf.v8 | Bin 13867 -> 0 bytes .../f0/27d4e8ada0b63a0a22f4472ff1d19d.v8 | Bin 687 -> 0 bytes .../f0/3e9e25bc211e6d77a4cd0b9a4ecfa9.blob | 48 -- .../f0/59082d6191adfeb7d7ebafbad83b9d.blob | 7 - .../f0/8c9d9415eae2fe841a5af94d5e35e9.v8 | Bin 44426 -> 0 bytes .../f0/d0a613a98c02b32dcfa90e775f5f04.v8 | Bin 695 -> 0 bytes .../f0/faaeef2fac88f0d6c166f1b21a8d9a.blob | 1 - .../f1/0c3182f8e478ea091fd54c07881303.v8 | Bin 16615 -> 0 bytes .../f2/4fbb5ea6cded3a3fed7f384f5200d4.v8 | Bin 695 -> 0 bytes .../f2/5d68bf90933022d73ba1109cbcec61.v8 | Bin 695 -> 0 bytes .../f2/ac2f61d4c8b3ba6b1999ee8264096c.v8 | Bin 13867 -> 0 bytes .../f2/b3a42485cfc4c4d0f231d263b3a399.blob | 65 --- .../f3/28d0c3c1ba4050ac9b134ec5e384e3.blob | 48 -- .../f3/2c49bf88a2db2a8e77eba4adaebba8.v8 | Bin 14229 -> 0 bytes .../f3/c605e8e6ed7159f5bfcbc551d9924c.v8 | Bin 36796 -> 0 bytes .../f4/2ad578288c7b6efcfd75352d36b36f.blob | 48 -- .../f4/40296b1bc5c38ac38899f5824bad4d.v8 | Bin 695 -> 0 bytes .../f4/69119d5c27e41ecaed6fa2cda109ab.blob | 66 --- .../f4/78193b030cb1f13a7847811f542e37.blob | 18 - .../f4/8d0441efd00c0d58516d9ee198c7eb.v8 | Bin 14231 -> 0 bytes .../f4/9b8c83e567c85dcf1a52b3322ebb41.v8 | Bin 695 -> 0 bytes .../f4/d54c6d93079dfd20b1af7f97a58402.blob | 48 -- .../f4/d6b3321a6c353e98db066805f94576.blob | 7 - .../f4/fad9740bb7d3b0d656c4da8166de7a.v8 | Bin 45436 -> 0 bytes .../f5/0ddb32a090e0283d9f120a8c557899.v8 | Bin 14229 -> 0 bytes .../f5/a1da22ef2e95c680fbd430198e5cad.v8 | Bin 51814 -> 0 bytes .../f5/b37bf2da779de59cedc89056df006a.blob | 1 - .../f5/c58c55e20681440be0043cd4e59436.blob | 70 --- .../f6/14354b414c7f4812e1a77e35ce45ab.v8 | Bin 18980 -> 0 bytes .../f6/200792c5d399a36a0d6d23338c3f1c.v8 | Bin 695 -> 0 bytes .../f6/4e755a831b85702a1e3ac3dca21590.v8 | Bin 13867 -> 0 bytes .../f6/aa83c55103f94efbdf825b02fb3756.blob | 21 - .../f7/1787eec3ab55486189cac4a55c2c0a.blob | 1 - .../f7/86b82ab63d92dda2784ea7240889cb.blob | 69 --- .../f7/d6cc4875d3c46431fff9e56454c84b.v8 | Bin 695 -> 0 bytes .../f8/205a9124f77881259cc5d7c025f499.blob | 1 - .../f8/71d1a38d1b63572d7a179a54c179b0.v8 | Bin 153816 -> 0 bytes .../f8/795242b6f66f1e97573fd12e443db7.v8 | Bin 13276 -> 0 bytes .../f8/7c91f25fa0e747d752f7fcce1f7f42.blob | 362 --------------- .../f9/30fcf4058ed55e49e0bec373398efe.blob | 42 -- .../f9/3db6f5e213500c47bd155a6a199d83.v8 | Bin 13276 -> 0 bytes .../f9/a59d47196b388f54f676e8dfd3305b.v8 | Bin 695 -> 0 bytes .../f9/f2fb346e841a6fe51b359edbbfeffb.blob | 69 --- .../fa/403480b2d152ab9cc59592c1cf5695.v8 | Bin 1320 -> 0 bytes .../fa/6ea7eff376f16e247e81142cb4fdf3.v8 | Bin 34522 -> 0 bytes .../fa/f2554bd5bb1208a02c22121a3bcb17.blob | 21 - .../fb/5cda155a4ab9732a17f09f3a034827.blob | 1 - .../fb/abd6de0f02138f70d3ee6a00864cc6.v8 | Bin 695 -> 0 bytes .../fb/dd6bcd3802738f60a4931a3333287e.blob | 348 --------------- .../fc/05817c146b700d2da8e6f7b397ab9b.blob | 1 - .../fc/495ba37df8d43e1e06a1e8942644bf.v8 | Bin 19517 -> 0 bytes .../fc/5e570d8c7dff51178b404791aa78e1.blob | 65 --- .../fc/c15c0b4297321460f7a0071469e725.v8 | Bin 695 -> 0 bytes .../fd/380b477b68b5c59e2bad552c8ccf14.v8 | Bin 9199 -> 0 bytes .../fd/bda82ec7d7a2b65108ecfa93ee8c40.blob | 48 -- .../fd/dadcf747c8223b237ec3c307941afb.v8 | Bin 13867 -> 0 bytes .../fe/11286d959e3b7eb9142cb3aeb662e3.v8 | Bin 14229 -> 0 bytes .../fe/3ff4beae837f625d2df4d02e9125f4.blob | 1 - .../fe/8d4db571cc3d201fd33186d18c6d61.blob | 371 ---------------- .../fe/b2a1ef0daff3c5efb9bc454762bab5.blob | 45 -- .../ff/319ebe775e1edc87794fe8b68803d2.blob | 44 -- .../ff/620db99845d238259d4073a9e0098f.blob | 21 - .../ff/9ffc07e5e837a6b9d1cc444f04d4f5.v8 | Bin 40735 -> 0 bytes .../ff/c35a0b257f05234d9e65e3117ba5f3.v8 | Bin 3198 -> 0 bytes .../ff/eac6980103fb556abf93aa6f1845d4.blob | 35 -- .../ff/efbf88e4ec49e210c32051833ee0d2.blob | 48 -- 809 files changed, 53217 deletions(-) delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/00/57013cc48d5df1619e89c81bac0e19.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/00/69477ebca643d2cfc59eef40976b4a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/00/a93ffeb683289be3a1cf2b5ac3881f.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/00/b2b012b0dbca7b07a7ed5655fc9579.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/01/8d93749aadc0aa7de3acbeecb1c311.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/01/a40ced117609dac9e5b1f192cea0e1.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/01/bfb61dc44662113751f6aa5ece14ed.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/01/cd168a25f678aa0eb20431d8193c26.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/03/2a34de971efa8d20c009468dbe016d.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/03/9f4989550415eb82c049b515585916.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/03/a6fae4eef91bf8bc852ccebcc688a5.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/03/ea3c9a30498269ad686adebec60b51.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/04/16b46c604d054da145d1125d697c83.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/04/9332e68d4c97c8f5b826069ba44aef.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/04/c4f13959e19f566e9ed8b9e76d5794.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/04/cb854e92734b2c0098244d915f8035.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/05/a39fc4718cdfce9f1513e343dcfa18.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/05/a80eda6be743c5caa37a0f33e89303.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/06/9ad152d02f01945f9c2a9f542060d0.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/06/bb0e78d622a0cdcbb6e0573e8b85fb.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/06/ebfd9cf3755cafb7ace39ec76044a0.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/07/9c511843130e0a356c7f0967ecedce.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/09/fdbd4edf08489bf68defc081b982f5.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/0a/bab1788a6b41bf60ea9882c5fbfeed.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/0b/4a200cd37ad219f6de13b88f65eaca.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/0b/64d5f86722c1287c9fb0c04bba9c9d.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/0b/ba6d6c3ebb2176bd76d1ca5944ad32.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/0b/d489282c30baeef64fa7b880659862.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/0c/5e868ce7f691b9b75f5819d67a719e.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/0c/c0d43d015e20a2250cd0e59a516ec1.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/0c/e3378d21feb552a2bffa24bef63c99.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/0d/3163a4bca2417f1991430b5d62fce0.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/0d/9215d29accb3ff59ee7a80e1238e38.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/0e/57baf77c3acffb02945087905d7505.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/0e/b17f1e14436b677f355b6d1e97db3b.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/0f/e60682561ac046f9c6bd000bea5d23.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/10/15bacef8e4d77b3dc8a5cd0c1fc606.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/11/028c83a3d237ddfb9ccc19401312c4.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/11/b5eac72d55e43ea17d84e692ea843f.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/12/3a42adc585eb11a8e38721fa49d3c0.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/12/fb53641455ba665467c9c7fed89c9d.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/13/038851ba0276f51e74540f5eca07f3.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/13/51ccb6b1a04c4d373affeb601709d9.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/13/9ec74c05eaad99ee4df076a465dcc3.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/14/045b4a4dc956acf5d66a52f87e8831.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/14/215984616f78efc5e11322369545d0.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/14/5f2dadf37c2c03beefd306f2ae5c26.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/14/83d4445c761fba545aeb0a025610fd.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/14/a2b46bf43dcd3b5800faecf4fd2047.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/14/f79ffe624d00deeaa525d125ed0a03.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/15/039cbb879826f2ceeaf4aa91a909e1.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/15/44e05120c5fc798763455a535f5f9b.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/15/e8d2f3e22a3335f34693eb6912a5aa.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/15/e9c467b43f951a7cbe0e65c7802af1.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/15/ef71b4e42fbd238b4f8db8b8c4fddd.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/16/10414963c5638b4b20a49220c1e3b5.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/16/a5479e5e5b631974365c1a785caffa.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/17/0ba2f2b52a2f2dda93a32ffac8fd49.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/17/0c520f15fce66c8e1fcfcc775291c9.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/17/45ced2685429f07812f0dbe0849755.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/17/57073927aeeb90c172f3f6037e97d0.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/17/6837d2d5c1fad2a042138b26f8fa02.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/17/6e5cd264d41310cd577b21db72dfb9.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/17/7af2c2382d36b262217f68199cf35f.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/17/a61e0c13ea4b54821330d1cad567ac.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/18/56dbf38724100bb2a050512d45c038.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/18/c82086164c9bb68f7f453ea0417c02.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/19/2be36bf88733405950b4f189992875.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/19/b0dee6d5f0dde1eefa0909d090bfa7.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/19/d457716ec71478cd1fe19f2676a8a4.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/1a/385df5b40bbe272347d6ae50011f6f.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/1a/b67078f0b60207aee20d7cfe811840.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/1a/ca5de7f07d46e479945f42c19f9645.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/1b/0e4e0f3f67b246cf3cdabe940a29e3.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/1b/26f8c1fc588c9bba17f216f9967a56.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/1b/8e52ecaa713f759c2786d055f63699.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/1c/24ba9ada253fa132ecdde27b5f0f0a.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/1c/34e7dc4a9c011b2d4136e5d47556cd.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/1c/548de57aab7d9ae42d3d6b222c457d.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/1c/844af0ea560958dbcabf267d0a81f4.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/1c/9209e5ea7b2d7e53ffdf940d1980dd.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/1c/eca3a75fcaba628ca30710389715e7.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/1d/d34e0331d33e8f5379e3fa6fceac6b.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/1e/4f757fdaebcc893cbada131ecd143e.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/1f/0c3fa247244554961a4d0ab42fed5e.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/1f/82a7cc5dfdad6195655d36a3ab5341.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/1f/b6044d7ff901bf850e0316dd94324a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/1f/d43e42c3b02ec4a919c064133c7f59.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/20/0a106b2bc603ecafd6ac8f5df09217.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/21/47dc40bf9d30cc852e5caf5399b53c.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/21/587c53a0c2bb381af563343d087244.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/21/7107c57cb09eb676c7ea4fc93e43ea.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/21/b8b311f44f2832943693723af32da6.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/21/cdf2486557ac9a9fd8658fdd6e2158.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/22/57710e28688dd6cb28c807849ada13.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/22/baae1aea5f948ac8545905e55568df.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/22/fda74d05384c3804703ddf3e33c3a6.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/23/1b79ca700836e4ab58b3a5a071f294.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/23/35179e8f2df73c0c05ce48e90bb895.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/23/ccdad5d09f72774a6ad16d786dac64.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/23/f8a3c483a018f807e46ce01e447ade.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/24/147b628f1b7d89e8253d558ec518df.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/25/e728a93b1946b5392904ee269ac9f8.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/26/15464e70f54e71b5d08f4133033273.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/26/41cca34bc4f6c7727f6456b4943a52.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/26/81e0b763cd4948ce80deb0806c0d49.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/26/86f2c16d27b7f05a5f4464d561eb0d.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/27/1d8ccc7aa2e57cb4c3ea67e13a248f.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/27/6855d09498f68ea2f3de0fd478d61d.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/27/7afc3e12b84c2f74d7e4919d497d2e.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/27/8bea23b419e85098a2e6289ee1db63.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/27/d2c9d16f85a4cb32c045331593f3b6.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/27/d74a7dc3bc13de06c95f03fbdf3fcb.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/27/ea5b59d26c40366ffdc524c3cfbfd0.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/28/8e752e33831668ffa9c708aec61f9f.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/28/a2e4040906c9fe36e1cf14ca5c28fc.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/28/b86643dca37b56c8dfa69cf703b0c9.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/29/8ab67538dcc9c4825145e3d58c7f4b.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/29/918c50ebe62ba7679d2d5ab037f4fd.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/29/bf746c2e86ee29277cc63baa67ab9a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/2a/38d5c3f9eec7452e5be5cc091597c4.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/2a/9f56f6cfb0b739fd5d1226b5251432.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/2a/ce7e2349b04b11189c5c0540c99300.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/2c/08e74716cae7c874edffb779b502f7.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/2c/32dc27ddd68bde8529c67780d2ffec.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/2c/896e1d0651c2b52e11af394c42dab7.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/2d/0d8cba3e356be3146e661d515bf0b1.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/2d/649190ccdb6d738d37784b6a39ae2c.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/2d/738aca731944a17d6a1ca39aea341d.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/2d/a1092c8f30c277570c86c3a5df24c9.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/2d/a810de093fecc8475df47f64b88458.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/2d/b4a8b4777c1195f8ce9f8acb391d47.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/2e/6cefd4195e207ec05dacd78d55f6c5.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/2e/88df76cf89906aa01e44e376f40c08.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/2e/aac76e64a192dac1a547ac855aa4eb.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/2f/1f68d9b034c4209b5154deb7c46951.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/30/6942e00ecc320424eadedc488536ad.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/30/6d7dd753855b346365326136662cee.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/30/7ca2ec95d5a6e1b0aa5019fb03454a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/30/ba7d4e6cf8c6d510746d279a69b3af.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/30/fe6e19fec9385bc56563b1393182fd.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/31/141b09e3bcfccef2623aabf683650e.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/31/5467d2555da78cf13673a1011694c6.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/32/147f673352a0e73db4adf9e1556279.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/32/73c3c2742f26e8acf7e9180149ebb8.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/33/4ab4471d562a8472b1e085e60e9d7a.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/34/bc53627ff4bd6836250ab128d23482.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/35/7bb6f799eb259e4542b26d36135c06.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/36/0d407238b27e481c32bca1dc362af1.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/36/2bca671fd59d503086d12c94d92b46.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/36/2f861a680217a9c28d6e8d157a8ebe.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/36/8094c6bd18320cb3e7a7ee27c32d25.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/36/8e72350e8631ab11189e9ce096b799.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/36/a698f995fbb8e56f42e18b3ed530e0.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/36/baaf9ef53ede108e95aea491e3a2f7.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/36/bcf117233edd9905525fc3508eab7f.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/37/2b49082edbb22f5ae17d88cda122e3.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/37/891645c97b4738fdeb435d26dbf07f.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/37/dad6d5657e0a48dce59f672b947578.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/37/e1e4eee7dbf28b9df63cf8fd482e08.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/38/93ed96e7eaef61b60f5cfec2ed06a3.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/38/ea893d4ea7fe6efce02a24cb149c0d.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/39/7a8cf5208eb116a647402e5c6cefe1.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/3a/1ca916534085bd3e0906e594c1cb55.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/3a/2383380c6f6c7a532f24e022ea3ff4.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/3a/afb86f8d44e796b0b38deea52d3d0c.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/3b/17a3defc7dbca9914c27a1ab0a5cb1.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/3b/1d86c1a49220b5d3fc7c330b7ec475.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/3b/62ab82859b659f3e241d4f49af0762.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/3b/ff8cbd80c667c2a134da568e1f628d.txt delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/3c/174366ab28814ec6bc59b9baac74b9.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/3c/5bb761cd20700de78860f8ddfdf55b.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/3d/1594f413b0fd67d308bae7219a0212.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/3d/32800ff7452d0f3aa9aef4fa5d794a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/3d/dabda015e754985e2f524210ae76e3.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/3e/4ef0d4a0ff1d5108467cc7124ec250.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/3e/cd8e355597dc0e0e566803176421fc.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/3e/dbb8a184a421eef8b6967dbb8894b8.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/3f/b42653ed52a6bdf5330633f19ddbfe.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/3f/bdd28ba238e2be7e52e363e908dded.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/40/2f7e68fe79052f2b7da979a8cb34ba.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/40/63fff8140c4b405685de60dda3ff99.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/40/a5a18d55d9f25e1df36da53cb6a608.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/41/08908a0e81d5b2b2680bc6e5628427.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/41/2a697d5922fb0f81ae825e131c6c2c.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/41/4ce7ba711f863ff3a60523c682b866.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/41/c23e76bb12f7b1ad064fd5a15367a7.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/42/349b314f7230b925cf2393760dac09.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/42/9eea19a1899f7bff9149b49db47307.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/42/a68f2f09fdbe5a1c4a8e972b492b59.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/42/e33a4e2c4c628235c66a11033e78cc.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/43/11774c9b42c80702ac4af68a3d54e1.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/43/f50e9b912366f5553ae99dda6c036b.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/44/3fd7af9cb66138e60bb6fb19e688a2.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/44/7ddde564ed84a0ffdbf2af309728e0.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/44/d74c56ae29e75bae06496e33739080.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/45/07a7338e0278cfb0fd0e8d0ec697b8.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/45/3d0f73fb82f045cb99aa22d611c709.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/45/61d4d2da7a65704cae062fdc6da90b.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/45/935c5cfce274336efa2f2bf1f45c7f.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/45/d18a09f752f5b02c768ae66a140023.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/46/04d532f3515d0da9230ff313eb9b17.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/46/21882fd332457d98d699086ec2f164.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/46/31b12006264ff1670fedae09320702.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/46/62f28af4c2c22ed8e875f5956612f4.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/46/d6abaa961b3d63e7affe5e2ebbd2e1.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/47/fa09246f9577af56dc6f7edd96b1b0.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/48/873d2922871338ce6a7474efe30c98.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/48/9b013d7baefd1da17b451080f4a62c.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/49/e44652b34fcb9f7d0425dd3953596a.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/49/eebf685b7ec589e0527d8d0d4f9fde.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/4a/18b07467a86cbeef8e025da8747b5d.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/4a/1e06676e875c6b8454c61f4c7a71b8.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/4a/e503e2bebcbe11f52ef5d386958910.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/4a/eab1691ecbfdf63b28e9365fbf53bf.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/4b/11e2ea04999c340887a42f0fa6ea62.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/4b/2851eec2e98499636bf469f8563676.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/4b/a0592e0b64ae24b61c9262e3f871df.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/4b/a459c709a670d6c9ad4d7157fb1e47.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/4b/f8be3b11b148cfe626f350ecf04864.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/4c/0cbe7413d2c8fbdec09a9041e1ed71.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/4c/403047791c0725ba1d2fba928df3c9.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/4c/ab9edbefcabd9ac140e8a8b9d73385.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/4d/c9827d60e773ab1291c02c5c64e9f6.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/4d/fde562f0a611e2e1c488fa9d3a2c72.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/4e/e2a5e5deaea6e46aebdfe9f2b34007.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/4f/1c760f5bf3f35275750a2fa5edef48.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/4f/5d03c58f6a57df69ae2f4b1278ee63.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/4f/667d37ede284cb4198aa00d0edb305.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/4f/7f60365f3064ed6dbdfb0c769170ed.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/4f/e9d85a8566e768fc604d2421c34c5c.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/50/27458dde8b5d374a98d328e786c63a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/50/39577bfb1b1bf6ce4aa34c69ab2f1e.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/50/4882bf5cf851dcf58383a98cb8674e.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/51/171cf9c68e4e4da82f30bdde26b7cc.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/51/3d29d82a3c06609761c480852d08a6.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/51/63a817c95b0f8c30ab38473d169cb4.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/52/37ee8fb51f6f93379d6155490b689f.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/52/495e2c8b53240c7a72cd45894c22ab.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/52/67008cee1f1564d7fd4c2a1e88f702.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/53/15b3379f020661602e7403ffb1b10e.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/53/291a846ac306173ac98977734fb6f5.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/53/a8dd8070b42f04d0d831d99da546e4.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/53/ae187ec78eca3043cdcf64e5645045.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/54/64a885fdf56c21c3c61210299745f9.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/55/1a66b944eaa030fcccb2a8da02ed04.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/55/5518d03597cc0860377f6662092097.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/55/99663523766f09abfe273f043dc5ad.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/55/9ab0101987fd2fa332368d81af7228.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/55/e65f93c7ff0111da7a377b44ef4418.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/56/c7b5fb6aa436095bb73a93a42bb8dc.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/57/0e46cef4aaf3e1bcdf2d88d29c729d.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/57/6bbad77de8f4046ab94132b28a6792.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/57/fdbfbbb2a7b321711e327582093fe8.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/58/4bb0c33e62dc22e53c5c3cde9d2f22.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/58/559f0ffb6a326ceaae5277fb6e51b1.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/58/eb2dc531195768f92a9461f5638177.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/58/ee869a1f030ca7f3522f3d2d1c6746.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/59/173cbf55c6b658669cb668440cf77c.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/59/faec212dadf19c2a1bfb81df378340.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5a/1bc699d4a4675eddff7b01cade482a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5a/3c3d0ab2d7ed71f72ec6b85d59914b.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5a/901ad5a14098389d8d6d7ac6e0245a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5a/a29a683b45a6cb5163b6aff8fc7748.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5b/5699431e3d3e340c23b162198d9336.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5b/e30788997289d3a52b8e7c3c2715c8.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5c/0fe6c1558a18c385918b6f50be2a1c.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5c/108c4199961dc9aa4f6ce1eebc07b2.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5c/6e7a8c5500439acbf29cebba3f8961.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5c/777e88e08fc7047442a6f0f7e4c6d5.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5c/9764d4d7ba56b33172982747cdb5b6.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5c/97d0f47fff603807f03ff443145bcd.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5c/f4f27063eb1ec5c9d7b065af856425.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5d/508cf8c72fa39b7b164fee8df96fe3.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5d/65768abd3fdc4787b863785aec81ca.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5d/83920e1fdfb90e0b9758c21730c1a1.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5d/aa0e7a588fe46c064a220acb1eff01.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5d/df45fdb18206b18a954c81363b249f.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5d/f81ca0e70f4481c4c50ca66b316963.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5e/a26eb5aee8755dcceaf9df00b22839.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5e/c3546b7a63c8f4ca474ffbd51535eb.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5e/ddf4670ad083d1575c18a8217a0de5.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5e/e0e1733c7e79e958ec037989497720.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5f/18e0eabc0063ac8c7a25cd865a048e.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5f/1b3f3ebf59665bd5ac4f4dfa33c67e.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5f/343e172d1779eb1eb72126f3f21f29.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5f/6428c994a936c35553864349e3d440.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5f/ba2b0a7eb3ea9b74ba07d367dde2f0.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5f/bc399f2d33e81a934d33792b551db4.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5f/c6c50f7624363a875dce67247624df.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5f/d210552b956249858a762c31b80aae.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/5f/dcc004665531f44eb04ef0b1858f42.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/60/a62eda4a1f1938becec5509d15c02b.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/60/ca021faef3e03ad7cc355165b68ef0.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/61/80036b607db982901d046d3960a757.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/61/8e4b7dc6dc7fa9fdac4ea57803f1f2.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/61/924ba1317d5bdcdd026807617db8e1.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/61/b8ff189925b66e76608d959e41e873.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/61/f8643ca8bda452602c30ff27207cfc.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/62/0a415bd6174a945174ade2a66ee302.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/62/2bb224bdc23900516d611571f1ecc0.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/62/471f5452d0e8969881f597caae7778.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/62/6354c296d29d3452e08583b9f84228.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/63/47f1742f799a0ad5e04957450d479f.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/63/66a25323b59d5ac9b78d461d656155.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/63/73ce5a63dec74722e0f7609e3fa157.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/63/9794535be77787c36cf09434498629.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/64/1255f75edc2761b210183436c4f4a9.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/64/129032f54ea617d884069fc055f800.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/64/70ebcf17418c1f40486d6b22fd2628.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/65/926e18c82313c3f0e3a95a83302d8f.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/65/c61e2c79f6d3f41a837ed8eb2480aa.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/65/f0573064dc375521a10842d2b9dd03.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/66/eddf704016690a5a15eb89c2ad1a39.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/67/52e040907c21a76b243a2e7d895861.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/67/5fb32fdd4edf146a95c67f42a77f2c.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/67/8366cf7663d22f2197ef498c2a3882.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/67/9c5fa4b394a9669331740979c513ae.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/67/c2f2d47432fb28604c0079c4278fae.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/67/cfed665ad8a27a01b8e1001286831a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/67/d7386baadb9d4450bbd56e7137d4d0.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/68/018f27f7708df4fd24ddfa5c5177af.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/68/bcd9b83cfc6d313ff9c7d2fbe104db.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/6c/8abd7dd7055ff5dbe040230f576d06.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/6c/9199a4070cd483572e3a4fedd13e3d.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/6c/93375fd05fcf514e25661598a203ff.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/6c/ebd5e64b28c0e65f45cbf4ccc15c16.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/6c/f9fb85bdb74619ef0b98cf8410cfd0.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/6d/7220bc30281127a5576b0825313a57.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/6d/9661b959bf92e72e5c45c2a56f1d4b.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/6d/a4476211f5bc4bd1c6976662054077.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/6d/cb25798ce3e02244d96ced2ed9d689.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/6d/d473077fea3bfd639cd4379da746e0.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/6d/debc4b1552fa7a264b6df0c8149714.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/6e/8e1a1717e8c9d8b120f39d64f0a47c.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/6e/906abea7cb9830df514513eaae0b52.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/6e/c2e2e75525833a0200cf334c8a0fc0.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/6f/2a20d85f89a027c7640f306f17d9b3.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/6f/699f163973720fe045238697cb8ec3.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/6f/a34668fd690c083de1b0e1d90d2fbd.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/70/2d3e0a89b580cdc8f755ddc192738d.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/70/3c9e91a8806df813c5f361ccef1dcc.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/70/6b296e7bbf96b168ca5b2b5c2e61eb.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/70/c264b30620e59e346149d758a75dad.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/70/fc258882c394e9ae357dcddb4a3bbb.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/71/b0ca296080aa3fa3117fd4c8e54f1e.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/72/446e9f35625c9c5eb2858966954488.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/72/68ddbd60fd585b327bfc07b8f6660c.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/72/76d0c47875a6e4c894225e99b14353.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/72/931a52d5e12b0f1a215517e010be56.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/72/b7eba33cec781f240d769b6b0d9c7e.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/73/208fcbfa1c008e0bd140ff4799636d.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/73/c8291a4a0dcee55b49ad28b4cf8949.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/73/d1a9b4245144148cc0da47660d69e8.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/74/3f0c7a19c3f9058bb8653603c2a867.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/74/6c13b9eca569a04fb252dcc0ed0f11.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/74/bc166d1e6bc14e39929f498ab19ffd.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/74/d44e5f52534547b022c76357f4b4b4.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/74/fb67308e0a39b13530580cf4ce82e3.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/75/73f47e09c4174993598ab2184619ea.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/75/bc635b28f7e35878c6c2be12ee24aa.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/75/d567a788925c6ac0207912f8d831d0.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/75/d7acf4213974e0824f1f5a48ac7058.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/76/2598f316b425d2966ded84ab4f93f1.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/76/53e1310dce71f8bb0535fa4579eada.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/76/ba1733e50482c64dcc2fba614125a1.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/76/cb7d9bbf380917df0a75c5edf0629a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/76/e1268c78e38669e01f96d4495676a9.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/77/66a06de76416213338d8563b77054b.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/77/7f80d3999546112b6e32bf82e7b44b.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/77/d197c5d6c654ef187afc80748b46ff.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/78/10f4d19bd288a3167b03af4aa0bfa0.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/78/39f54358397ca7eb511b6f197a4468.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/78/6fb293b794ba36e7ae09c3d3618f3e.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/79/2a3c9c62193454dfbc5c2953e65f94.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/79/fdef30b8b2fd543f74b090165af628.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/7a/1f4aa02ebbc9637c154f1ff7489878.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/7a/4fc2de8957fa2b4ac7e14b21b2c7f8.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/7a/d0d3186d803581b2821e65f1bd368d.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/7b/5ec2025f131039f1f956a1abd168b6.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/7b/8faf8474397137354858213a1198f1.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/7b/e725167b798579571700af40fb8742.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/7c/d76d042ce21413d08f2bcfb97ec476.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/7d/f626ae5c9f1f3617ee44b8852ea7b6.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/7e/28c954c94fa5546687a1c421358c47.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/7e/3081255b93943c311f7b4af7a772e2.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/7e/d06d605e5eca1c126434bf7e54597e.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/7e/f9b762c8c62f4bd00ecd69dac70cd0.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/7f/6bff423d0ad3482ca274c329b71160.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/80/35b87afd87891bd0065f6bb0bfe374.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/80/47d0acfe0d899552043db75a76ded5.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/80/a10a72dd1a77fa72d1ccf0479b9407.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/81/4fe621b89f8d7cbf12dd2675478334.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/81/6b78c030a57dbafb6dc35446af57b6.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/81/81bb47122b055ca713795945d47080.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/81/8a788b6b296e05aac7e9c0f3bee7a6.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/81/c959a51d09c0aefbbaec7f2e2294bd.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/81/cc3005104c4c9e65f7c4f9768ebfa5.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/82/0474e2e098c448e3628ec9c31f3ec6.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/82/87222615d6a4441bfd3ce703a7e5ad.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/82/95e9ab5e621d7eb2054cd04b50d9fc.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/82/cd0858a9977225a17ac7f27a4d2946.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/83/377cb5032b7fa035d34cda01202a5c.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/83/3bce9152245a022028722fe7877ae2.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/83/66632e3cc7a015931398178ced87b0.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/83/86cae347757d2073941cc10ffbfe59.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/83/8fffdab7d181d55752b83fd3c27ff6.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/84/124ea3fd0555c5ee250fcb9e2e61bb.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/84/20d934ae4d819f13801a8ac7896fc8.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/84/5cd1670e439c250d7eeaa8733275ab.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/85/4405aebeca1143004a806f4452188a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/85/e3293028d2abb62f6abd53d957bae6.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/86/00cc390098457a93a862efa08df2ab.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/86/22a4ce119700b6f448f0473cceb9e7.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/86/581330c6d8b8305827b4bb2c68dc2e.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/86/85072559a62344f9aaa4df4f416512.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/86/ca1d4279ca2b9ca22d6cc4c575e93f.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/87/05cd336efd1c14e804ec90d84f784f.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/87/9ac3c8cf7d9d180b7dcf0cc6487d17.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/87/9cdade3aed6904238f11aaf00a9a25.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/87/f4aef3f54ab5de20272e5e4db18401.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/87/fe4efb3c6392625f30ad3d4c549ee2.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/88/340713f6cb6d89ad1dd0246181e0a5.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/88/924b685df56461a341b8821fd89413.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/88/b3ea81922247d0f33f709bdad933c5.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/88/bbbd9b6f73ad385b1fadb306e6dd38.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/89/02bb3e82eed9949a202662936afe27.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/89/4997ea06aca421bf452e85f8d3588b.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/89/55049274cb86f043da45edd191ef99.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/89/645c5e68e0726264ccce29741df15a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/8a/07603cf786e9e4acbd9ecc5da96085.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/8b/665a3c2e890633b647b1e30d1acbbd.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/8b/9646010bcab273413d2969346a0782.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/8b/f0d4ccf7aaf2db7d3b7fe55f12ee8d.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/8b/fe59e8cbed37b8291cde32b2a8fba3.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/8c/67e83b5dc65856037ecc528ba46759.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/8c/957d14b685c30c97a24e6a297035d4.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/8c/99b31dae93facc09738c0b585f53a2.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/8c/99e45c5a5b8afbf271f7a4d10bb1b8.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/8d/05ec1536759f0d1bd7b5c826d874ff.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/8d/0e7bd8e5e2d4968cd5ce44fd75da1e.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/8d/20d6e0d0924fabf1814aa5f1aee5af.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/8d/23bfefc7138b13a23ea44c81ed4809.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/8d/760e335117840be126c8e695bd0118.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/8d/b2e05380ac4e80db77fb22859b7bbc.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/8d/bb4f15f07c9d3f5ea8f6c0d8832da5.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/8e/7297c5761c28238dc75ed81cb63020.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/8e/9685d226af37f145fa432390eed68a.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/8e/f82b016830bbecc0ae349b1fd55951.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/8f/7eed6c44711501cc1f647a0f1b40ea.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/8f/8158fa47c2680f495f839ebd6929e2.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/8f/906c1fc14d39e9b1c2dda6247d538b.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/90/22c8654ec1e844705eaebaf09897e9.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/90/28b9402e61aff0badd2cd2b0264be5.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/90/53196b729dc3c6cfbc0fa371ac4bcb.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/90/789507bd5eb8ec9d2c900784defc06.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/90/e85b76d4bdf3d9a61216aa1159304c.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/90/eba0bbc1dd73375d0cd58c36caeaef.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/91/13ad494aa8bd06100a2760fbd2ad3a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/91/1cee8da8f916d29c374ba4855f8afb.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/91/7103297e818544c0d280e41c9a7668.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/92/22d57860d7a97559b5ddad4ed55e6a.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/92/28b8d51516d3d04d378238bdece3ee.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/93/32f1d7f8f96541fbc3b7323ddc6c14.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/93/6b886e0ed26648590b51925712029f.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/93/c7160e0bcfa0f11fc4d493f1731b2e.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/93/f3cc7dedd0edea18067cfdb98e1e87.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/94/78b287174ecbbcef0f175771dba002.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/95/1f57160433c76d24a035633e3029d1.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/95/990cd6561b648dbb7c02b43cdd3db2.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/95/fe9c4e533f6a16bf838e744076804e.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/96/2f35d3eb3abf4744dfb56e85bb69b7.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/97/dfcd0b9a84ca9de929b5cee9fb5de0.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/98/380a47622e6cd8d3db6b96772ebc43.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/98/3b77f67d2ecdda85677e07c75f3107.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/98/5767358048da5bd699b6a143bb6744.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/98/8445ac5a82dee18d1a5ff004cf7166.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/99/080f1711850486b94a1eaa2ff98404.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/99/14b340a60e09c962a0406fd495c781.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/99/4d04ee923fd96e776481971b0312ad.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/99/51203e5da990ed7d6bcee312da2905.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/99/5f105569cf4d0a1f7db1f84c3efd2f.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/9a/2dff90d632d6fb399a2a37933d5e02.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/9a/8644fbbe89328559412cae23051b40.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/9a/aa2ab74ed3af0f8482d328bfb41a36.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/9a/dd113ef65e1a65595560d961b71ab8.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/9c/2015843184ec8af2811610cc277665.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/9c/31236af0bc6d580a6703f01521f9a4.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/9c/b2f5ca58d50bde69bd17b9018cc0bd.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/9c/d548d14a2b6991ec8352b20f91bf74.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/9c/d63d8ae90f1bd77627436c1b0298f0.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/9d/d07d98015f9d334874e10deb5fd408.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/9e/4f47b3cc489d6114e53da21bd582c9.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/9e/581b173ae9dcffb1daf3aeb5efbae6.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/9e/b554fa6b5fe1ca823493fea4462da9.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/9e/b584f8e7c8c766693885314d3df30a.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/9e/f94256c3b6f7c5008ed6146827253d.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/9f/7cfbe2dfec8914d6a58fd243168870.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/9f/e8dafe76b5aece62e02e0010ff3dd5.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a0/197c7bb241997447a285863c1a9c88.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a0/86c8c4ac27d28495dbf1f4d692c071.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a1/af80cc3cab3660c4100cbb6bd3597e.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a1/cc87386ae106c470c8e3779fbc3c56.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a2/34588608eb8b59c8a4a47d890f013e.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a2/5773fd2786d782ba37ef446586918a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a2/e8b9641d996e533cfc2e9638df894f.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a3/13b6513414ae20022e923683dda5b5.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a3/6690cc7fced904358fade50e4dfdfa.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a3/f58f0064dceed7820e372029138d77.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a5/0db25e53a0927dffecb2e31e258069.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a5/5e78a3f6202b80d802fe1f38840c8f.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a5/77b78bfc5e5d0335f82107b9fa5f15.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a5/b1715af07c2e0a5130305794bbddcb.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a5/e1673e252b3c9900e1600b070d4a45.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a6/0081d4695c1702e773680a699439de.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a6/c2acc3a50ed9f69c5bf114878c39d6.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a6/ffcb9e6431295ba719bdcd6387155b.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a7/ce934e4ef968295a84ed96a1e6617d.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a7/fc0f92547489bbf27c8a5a7f9e8388.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a8/18102f36c763f5b1eb2442b8fce7bb.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a8/1f31390690b9cc359db68adc23d6ea.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a8/6fd33ae17de71653859fb3342ffdc4.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a8/e0b149b2a03347fe78c522f6d729e4.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/a8/f09b1a7e751fdc04880ea565b0231e.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/aa/ec78432bbb35d45e43658653eeb0e1.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ab/06190dfe712529184c40e9a758141c.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ab/0c310b7272d4051109cf7a6d5a1579.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ab/28b6e056c7f0c215acd83f2c8e0443.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ab/5fd0fe1113e15a32ca4ddea6738242.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ac/008bbddccaf109e6126d61c0061dc2.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ac/aee0bb74254e5cc6f724a1c9de67f9.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ad/3a03f7e06e0d9e3d5c1586a12a1c1c.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ad/9130b58e86e7e4410ab7fed2eceb3a.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ad/bd9255927c3fbdd29fb5a8d4ba0ff4.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ae/2d2aec0524bfb1d0845a316230d8eb.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ae/630249c865921263c92364b0526dac.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ae/66897f6d1478716763e70038083d3a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ae/a23452e6dcc3d3bb3a2dc2367fd899.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/af/12cb1a107d0a7247e90da3b32018ce.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/af/92c8fba16f8def6c68f356df576808.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/af/a72eb75aecc490fa568cc4a0557b9a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/af/c9e44fc601fa07790cbbec520598f2.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b0/133cf6d56f976873927ef06b268c73.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b0/16dafe59f952adafd7b85c77c41687.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b0/2a64fad9062b2b728c2a794612fb0f.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b0/41641e1715a113a66ca3235c815b48.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b0/4207c59fb79a8a3e302ca1d796bf7b.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b0/86d2fb0983a6352ddf2babde0e9cfc.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b0/9b1cca2e299c3c6f2f43ecaaf551a8.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b0/ab409659de1871ddf8ddeb74132cc2.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b0/b516c4c0ce8fa1778f99b0b3f1601c.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b0/cd4954e6376e5092bd583015b4b3b2.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b0/daa860589ae5ef6856e46f4d5c302b.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b1/459b1cc13f62b3bd47e804e69f5f9b.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b2/1a38c4c840405ea07541984f1f56fc.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b2/53dd098f20d673cf982d273a542fbc.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b2/67e6d02a91c02f9281eb52183093c7.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b2/8ccf768fb14cb1e52de4dac5558488.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b2/aa891a92508362eaab47257a119b4c.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b2/bdbe36bd2ee3ca394d55ec4674ff62.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b3/388ea673543e8b9a080e326cd209fb.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b3/a72fa8af67420a7aa79ba508e81004.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b3/caa5306232c4185c2d13ab2771b448.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b3/cdcd6255fc514f2534e1b88eafe286.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b3/d52f9ecdc7dc3e17d0b25417454f70.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b4/1a057cca68196910effab5fb7a7013.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b4/2f85977f7ac36ad2e3fa8c672181ee.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b4/30063bd0ec0314c38e9c3ea7a3941f.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b4/58c6e5fa7bd39b9239ab0eef099c17.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b4/768f405f8d1fc0ebb1f7c0f4aa4799.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b4/9c0e4bb6f70ae5d8d7d9700c02a328.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b5/1e0a54ebeb9213665970d54b375f41.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b5/3943d561e48f670936dcb43feb5f93.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b5/85181b3d6ad137b3990bea4344036a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b5/8c9ee141b7f3fb6fc2d3b13b97de12.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b5/905228b954b3ee07c338f7bb08ecb1.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b5/ad781704927c676f95f771d029894e.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b6/00160697430a4e56e270e1e2f3907b.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b7/92cd580cf2c959029267e19cfd1e77.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b7/e861b13f2abfbb36d1db5335b5ded6.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b7/f2a13566373976a5751e607f2d1ec1.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/b8/36ae95e5c75edc2da36e127936ee7f.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ba/98e699325b7238b558ad192fec6084.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ba/e309e6429b7e35ffebac82e77e6de4.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ba/e78593cb012beaffbf71908b66453b.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/bb/26535d5c53d10f55e9060db434781c.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/bb/4ea3225343cae7bf9468c8e28995ad.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/bc/1bbfc054f628516806f678bc6d4bd4.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/bc/24a1dc9f6e91f33fd8d83ac99259e7.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/bc/2fe6a89b09ad93de8b8044713f5c17.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/bd/230a5b5614b8bfa426dec86a437783.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/bd/2fa3bd2fbe49840b5f50a057c7c5a3.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/bd/47600fd1dbf1fa73c4d0b613168bc8.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/bd/487aece62bdedd480f436c4054580e.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/bd/49be52f8b44142d91895af4e607671.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/be/5dae851d4b7e5c4223445c5a249ab2.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/bf/e5a923fc404ef5c436f83f69a7b129.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/bf/e91ddb85d1dba3d0361e798c2614c1.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c0/0d72f8c0deca9c4f5c6fed5315249c.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c0/6a8663bae0582986748f58dbd267f6.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c0/6f00d2d29994c976a0a4dc961eabeb.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c0/be0e7fca2013563a97796cbe999367.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c0/d0e83f97a3ee21a5f750fa6d4079c2.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c1/17dd6b46d9412fde72b729ae30dae2.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c1/9b92822b1db01b4523403843d37bb1.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c1/d0faf04b31891d545613042b76ff8e.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c2/1f17a379b7ea70ff69a62e065ba475.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c2/d441783a95aa8c98a4847f624e9dff.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c2/ea13080ddf16a1b6a7a9e0b18f6c0c.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c2/ed89ac470a1eb93bdf654e0093897f.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c3/306fe059b7a5a1f183dcc3e3da15f2.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c4/218098489a558b857e991f018fbe71.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c4/4a68879942b9fcef5d0f94da5151d2.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c5/217569aea0200615b1b7ed23b36b5a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c5/762185e9da283511e814a54f895f47.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c5/c2bfe76d44e6166e1f9a470aa47e6b.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c6/0e3634023d2e4418e9e8e6b9bf1cc8.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c6/51350d73d2cd62e285c9d7c458abd5.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c6/9e53a931ef87d30e255241434434f2.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c7/22373d9d474e966f3bcb54855aeafb.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c7/a16976af73178c7e3e277c708ce48c.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c8/20070ce2d2f7e75a83e0bbfc52ab02.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c8/fb9ede61fea3775f7ec68e7c33726d.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c9/2324fb7b588511914c8a344f370867.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c9/c2b8afcd5bd575bc103184c352a44a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c9/d6cf420b922309bad95a307407c079.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c9/f82e5316da900e584fdaa9257fc613.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/c9/fd8831db3356963c938e7acfefe1ec.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ca/9ba5e18a5892662c896c26e304e0ca.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ca/9d4994d7fca3d9a2ccc42c859634ac.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ca/a231c9de68c8cb28f26dfe110ce09b.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/cb/ae7176dfde0ff2ae4a2273cbff5c63.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/cb/caa280ba1fb8028792d367c2f58254.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/cc/50977c050345d929ec8ee662179915.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/cc/98318d923d5d94d8a992b34bf208de.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/cd/0455f92f893515c9065dcc8e6c3d2a.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/cd/2cf34e990509dca142aface3b3fb51.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/cd/b8f17460802ea8bea245fbddd940f9.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ce/04fe9eddc91d9662324310bd5027a9.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ce/9e7ab58bdc8b78b0e747a36d151878.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ce/c2778c883a97a64788174101fa02a2.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ce/df7ec962546c64903ef345f88b1f54.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ce/e0dfb5229651a644dd2b3ed26f8b84.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ce/e62ff419f7cd1b96cb7e68096f7e03.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/cf/1f8f89bf18e73dd32753cc4e4cdedb.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/cf/a378829bbe21905006cf91016d84fe.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/cf/d2265479c0655ad87b748ecdd8f836.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d0/12e0ab134ae075ec4bf46d50d896b7.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d0/25d79ee6d9d06383ae69e458c06b8a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d0/43bfd2827513b100162682f9aef63b.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d0/6ab988707192ef6ad7063cdf500eb1.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d1/e6d40c4ed7154c6db56a2a39c2ebcc.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d2/14f256f35330e852bab72b304b1ad1.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d2/3ec36232a4d2961207b9bf9093d2cb.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d3/a4ed80d287bf235ba2c50a615cf5c0.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d4/61c968f993e25f016dbf1dffdaf223.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d4/8c890d5dd3fc255e452d6dd72a4884.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d4/deaee22761c23adb08b08aaa6dca80.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d4/fd7b4b397572a1e27c7b14362c8b59.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d5/655dddf1dc33ee8ac9c58302a9b9d6.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d5/738fceac3d270893a384a62f677754.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d5/8212eb6713e17dd8fbfb0ce5747542.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d5/891ffa6671a7e2d5eef94665fbdc80.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d5/c601b43979ccafd85167985f2c34a6.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d5/c86984432160c8095f8e2c612ae830.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d6/2056937b3fd4120848bf97b356f6a6.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d6/ad0b1f6d3de6692fa5967366e4d046.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d7/382c7967598dc517734ec22763c991.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d7/6456096d72c72c522bb89f684f23a6.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d8/2dedfc01580f3db3ff6ec82c3e681e.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d8/d5e8804a4279b4f0c63ea34b757f74.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d9/169652d07489b7aa48b9e28e0a47d4.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/d9/f2a478ecc8bb51a5803f37612fe029.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/da/2fa2748fa48cbd49c0d0006f779a74.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/da/4095f946392ff118d175672bf7f4e7.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/da/783df310e9fc41ab3b994f3ec09b57.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/db/17b7239073e5be33eaad83b0e10574.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/db/1c5675ffb3574bb47f326937269805.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/db/2bc968e37577c216d562c87a27eff0.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/db/80c4e8d53684c5cb7b45a8348542d9.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/db/fb3949b02a0088cb650e7fd76ad6e0.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/dc/63ca56a08dcb5e31bd953be618c02e.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/dc/82ac2c5b2c6ec3d484addce498fdd4.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/dc/bc01516f98e7efddb238acae35a1da.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/dd/ec0cbacf84f2fdccabac74a48d50de.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/de/bc7f8f52c4274f1180c6f64b79e521.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/de/ce7b2773b4615aefbfcfe1b5baa942.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/de/d0de96066cc7faba79beb98e13a11c.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/df/3054bf6c28d0cef312d92ec51c58ae.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/df/65502a3a666fe9e083f18cb8211e09.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/df/d1db5681ccc75372de8a6da5397fb3.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/df/e651ad8c1b272b269262261b04390f.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e0/49597da0d4c31285e88eae4897f0d3.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e0/6c41070d0524b3ce406fb9d4973407.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e0/6ff67b40ff633ed4f4ae8b0f54a7bf.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e0/b7b5d0a839a18ed890f02b85b7368f.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e0/c0c141e63a06601be55c2d55707e69.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e0/d8cc0775b19de3d2b9aca050a7d169.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e1/06564657f6ea6a2217d0a8d19cfda1.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e1/64a050ae129153c0c7ebc55fd95c9a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e1/cb17d4628d7fd6981f13187a2745e9.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e2/0e4e4480d11fe4944cd5f50c5b4c1f.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e2/74e66f134eff8125868d8e0bd09edf.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e3/370480cb8974c2ffd0724787d320d2.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e3/b3bdb42886aff50912925cd3912540.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e3/bc01836052413f36616873ec60cead.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e4/87484cbd9f67425d9d651ed36ae1c4.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e4/bc729ce23ab3978f35a6c17f9fe613.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e4/d621a120d83386c836ebc559bc0c69.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e4/f4b082134c1cc65b1bf1d7d33282e1.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e5/05dbcce0ccf407e9e44cfdbc945376.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e5/db326622d1ffefdc7c220315d5b520.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e6/5b45402a128debfcefde8c0d26f2ab.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e6/69b5247fa95621c8a8d7301fb03948.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e6/9fefc9bcd41f96f9658655786859a6.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e6/c6a2382ed3b51beba43bbce5220607.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e7/1626d0c358361d4abc9fa2c41d6fe5.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e7/4766c400219757bc51d7df00321be4.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e7/813ca235439316a2d8df63111ea405.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e7/fc02d24dfc10575aed7e2b332d731d.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e8/0dbd3ebba69cb844eb5ca77eb9cd91.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e8/b4d72ed44b85ab4b07188fdc9565ec.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e9/24fe03d773b5303081b668cb6362fe.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/e9/290d1feb0179aaa499d85bdf8836bb.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ea/4bdc930340d2e05687110aebd7fee5.txt delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ea/7982a0c71ba960413c1a032543d9a7.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ea/f080c3d16868fb117dc969ff848491.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ea/fca8902a725c6c3a4117c5963d64ae.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/eb/7ad79dc789bc8b581827c43b0eeab0.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/eb/d24c1ad7e09ded9d85627c45c37005.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ec/5c376c361e9d060a4700f8f222c16c.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ec/7a33740e7e73c6eddb36bacba60d68.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ec/d3858a0ca41572ff408562f7db8527.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ed/1d38d2c63dfc7044151b4123fbc9cf.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ed/9bc1606a4bf9df861bc07f4cd1f5f5.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ed/db5dc33d374fd5452108a0d9c14a8e.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ed/eaba34efed1782427e5a5c2e3daddb.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ee/1e71af0737db2fa9b4cf9bfbbfa389.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ee/50c1c06d0e510dc4715da198ff6636.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ef/5b06e75a5e23e840eaf1fd2def8eba.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ef/6cb86d9b2fa0ebde7439610c09e540.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ef/8b05173a8d6aa9d882c1672683d0fd.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ef/c163f13be74b11750c818ba8220c28.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f0/1623aa794fae6965c20983287373cf.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f0/27d4e8ada0b63a0a22f4472ff1d19d.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f0/3e9e25bc211e6d77a4cd0b9a4ecfa9.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f0/59082d6191adfeb7d7ebafbad83b9d.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f0/8c9d9415eae2fe841a5af94d5e35e9.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f0/d0a613a98c02b32dcfa90e775f5f04.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f0/faaeef2fac88f0d6c166f1b21a8d9a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f1/0c3182f8e478ea091fd54c07881303.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f2/4fbb5ea6cded3a3fed7f384f5200d4.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f2/5d68bf90933022d73ba1109cbcec61.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f2/ac2f61d4c8b3ba6b1999ee8264096c.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f2/b3a42485cfc4c4d0f231d263b3a399.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f3/28d0c3c1ba4050ac9b134ec5e384e3.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f3/2c49bf88a2db2a8e77eba4adaebba8.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f3/c605e8e6ed7159f5bfcbc551d9924c.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f4/2ad578288c7b6efcfd75352d36b36f.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f4/40296b1bc5c38ac38899f5824bad4d.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f4/69119d5c27e41ecaed6fa2cda109ab.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f4/78193b030cb1f13a7847811f542e37.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f4/8d0441efd00c0d58516d9ee198c7eb.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f4/9b8c83e567c85dcf1a52b3322ebb41.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f4/d54c6d93079dfd20b1af7f97a58402.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f4/d6b3321a6c353e98db066805f94576.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f4/fad9740bb7d3b0d656c4da8166de7a.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f5/0ddb32a090e0283d9f120a8c557899.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f5/a1da22ef2e95c680fbd430198e5cad.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f5/b37bf2da779de59cedc89056df006a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f5/c58c55e20681440be0043cd4e59436.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f6/14354b414c7f4812e1a77e35ce45ab.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f6/200792c5d399a36a0d6d23338c3f1c.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f6/4e755a831b85702a1e3ac3dca21590.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f6/aa83c55103f94efbdf825b02fb3756.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f7/1787eec3ab55486189cac4a55c2c0a.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f7/86b82ab63d92dda2784ea7240889cb.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f7/d6cc4875d3c46431fff9e56454c84b.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f8/205a9124f77881259cc5d7c025f499.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f8/71d1a38d1b63572d7a179a54c179b0.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f8/795242b6f66f1e97573fd12e443db7.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f8/7c91f25fa0e747d752f7fcce1f7f42.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f9/30fcf4058ed55e49e0bec373398efe.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f9/3db6f5e213500c47bd155a6a199d83.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f9/a59d47196b388f54f676e8dfd3305b.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/f9/f2fb346e841a6fe51b359edbbfeffb.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/fa/403480b2d152ab9cc59592c1cf5695.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/fa/6ea7eff376f16e247e81142cb4fdf3.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/fa/f2554bd5bb1208a02c22121a3bcb17.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/fb/5cda155a4ab9732a17f09f3a034827.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/fb/abd6de0f02138f70d3ee6a00864cc6.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/fb/dd6bcd3802738f60a4931a3333287e.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/fc/05817c146b700d2da8e6f7b397ab9b.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/fc/495ba37df8d43e1e06a1e8942644bf.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/fc/5e570d8c7dff51178b404791aa78e1.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/fc/c15c0b4297321460f7a0071469e725.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/fd/380b477b68b5c59e2bad552c8ccf14.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/fd/bda82ec7d7a2b65108ecfa93ee8c40.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/fd/dadcf747c8223b237ec3c307941afb.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/fe/11286d959e3b7eb9142cb3aeb662e3.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/fe/3ff4beae837f625d2df4d02e9125f4.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/fe/8d4db571cc3d201fd33186d18c6d61.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/fe/b2a1ef0daff3c5efb9bc454762bab5.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ff/319ebe775e1edc87794fe8b68803d2.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ff/620db99845d238259d4073a9e0098f.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ff/9ffc07e5e837a6b9d1cc444f04d4f5.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ff/c35a0b257f05234d9e65e3117ba5f3.v8 delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ff/eac6980103fb556abf93aa6f1845d4.blob delete mode 100644 exercises/55 - Face Detection Censorship/.parcel-cache/ff/efbf88e4ec49e210c32051833ee0d2.blob diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/00/57013cc48d5df1619e89c81bac0e19.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/00/57013cc48d5df1619e89c81bac0e19.blob deleted file mode 100644 index 4192cedf9..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/00/57013cc48d5df1619e89c81bac0e19.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["video","document","querySelector","canvas","ctx","getContext","faceCanvas","faceCtx","faceDetector","window","FaceDetector","optionsInputs","querySelectorAll","console","log","options","SIZE","SCALE","populateVideo","stream","navigator","mediaDevices","getUserMedia","width","height","srcObject","play","videoWidth","videoHeight","detect","faces","forEach","drawFace","censor","requestAnimationFrame","face","top","left","boundingBox","clearRect","strokeStyle","lineWidth","strokeRect","imageSmoothingEnabled","drawImage","x","y","then","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","clear","hmrApply","v","hmrAcceptRun","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":"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","file":"pixelated-face.d380445c.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/00/69477ebca643d2cfc59eef40976b4a.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/00/69477ebca643d2cfc59eef40976b4a.blob deleted file mode 100644 index f384ec377..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/00/69477ebca643d2cfc59eef40976b4a.blob +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/00/a93ffeb683289be3a1cf2b5ac3881f.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/00/a93ffeb683289be3a1cf2b5ac3881f.v8 deleted file mode 100644 index b0851599bd27d6074da6d3f7dcda410c4c846aae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcma)4O>@&Q6m)`{q@}%tfwSig*I+x2zu*E>>LCMkm}$9j(Z^Gwjx8BUP80G6`B&hE zOwQ=0-Id<%N`J0C3^WWShaihd87;B|Q<{=FElXBpA}Y&dF6L>TFTh_DyM~}BXvzep zMI7hzC=o@1EaEvOQIsXAh+raQjo*k{!;kR0MPtK9v{c)W;z}xoX7)ff#4;mW7vdHT zlNN25Cc!MI2*cnbI%H026Hpe$ zhH9f>d~m*XFs4R7_9em?Ro@<34U;2eiNEyVWlgLL;^2C1bc4aB@4IhqIXn?}L=YoS zgb%NdCn{-B=@&Q5Oso^q@}%-fwO0aYp@f4!v&_)Lk8$D({kgYk9DGsEg4Bp6Y@9tKcIw6 z&giCnZ+G8&(x0mj0|i6DA;@N=jFK$Il%`}(%aRpY9hGG~ujgr=C*ZG$SwRrdlH_Sd z$}EfLd78}1q|Ty@=NXNYB;zotMT6gnUBQp=yFqQjCp1)h+KG)kM5=)z8Hupt)tw04{~j|MJ;Sr~PwRWNZE*$9ah z_;%YN4EGGCq(x~z;}(K4u4Be>j+{rxk<5xH%UR87S>Ozd97Zka4ov4K%XyqT*1Sj< zbruUkqG;bo<0yqojvY#lk_j~L-g numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/03/2a34de971efa8d20c009468dbe016d.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/03/2a34de971efa8d20c009468dbe016d.blob deleted file mode 100644 index 415676635..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/03/2a34de971efa8d20c009468dbe016d.blob +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - Censorship - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/03/9f4989550415eb82c049b515585916.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/03/9f4989550415eb82c049b515585916.v8 deleted file mode 100644 index edfe5a5c4054431dbcb74f54ec38b29662e7f8c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcma)4O>Yx16imW4NlSZa1qV*6C$1s;y;-<`N>@Zch17E6;*aOV)y7_IZ<>&Q#GeE= zL^ttvJvL{wF2B9go;GYFQ%E+LG{sEm^+ z%6TCQmM2`qWfij-6=fFlG=s5_4SpkT2|uRaEgCz0L`$`uQd~%-&`ci4npkFJ>!!Ft z!=yz!&C_ra)`VgB5gjrowF<9MS#9i6w$oN_uptilM0m}c2McG?&aK{KHH`g6HBw;> zf!nqSgC_;k%As6O0Ir(~MwL z=EyQCvV!LkpH&4d;hbZOilbr@?Yp-Um}c9`S#Fi7#|=@f_V>KG{m|v4zHI+uP|KuzI}7^!I8Klf*5%u z0(f~iQA>kDZ;s3mt`5u%UmS0G9|XHTTpj}6YK~tu?|jO8IR6){)@DT<3>S^2q=8du zzes9`+19%g2v+Eb-u2+bI^w+hz{wTf_6`dID}Ukq_p99iMs~ZRy4lzF+)9o&Lim5+ T2c33G{_ODSaeBMU*S-EUh&BwAz%rYxm%MhGu584;4q z=LIKeQD7D`mM;jI<2)jg!$hhIzfr%2AG7Zct(!ffW5&%Gu9Vhjrw?>P9k;6SGu)!( z%AuR3NjMEl$}#+i9=TUWhu5f`v2LxJS);aCQIBFOJI$L12j|KyojG77OuCJ(l*SSQ zziSW%PYQ0dN9{l34nh*8NlY@9&xzm(&$whfk~GO<$`_0?7}c~nC<_|pS(I>@7a0;< zP|gHF&Qn2278NO62y9Rb)Lfx^_qGR@O7p4}D9SGS0qOkQnbvZ=hjY{VruCoxuf1oe zHwMNB=UWeBX3b+)B8*XY?V&R;IYN#G%O1R}sPkbQUazgGG2C>0cg-yaC*qDuYSoDd z;MMU&sVqvfJuxGAab#}9>U7ilAlUce>KO3W2>fb9+oimRi+{mNV{7VRw5klF6`U#e zMKMe5uG|kHsL@li@4?V{>O1#=S2f=Djtc^(e&O=>a6f>t+ttiehx(p7CGbYd?jLl6 S&RVU0w)pfoz5UheUjHvLSlW^R diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/03/ea3c9a30498269ad686adebec60b51.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/03/ea3c9a30498269ad686adebec60b51.v8 deleted file mode 100644 index a3e5f6c5b4f029a07490df47cd8bbd6cc74cfe1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31140 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 diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/04/9332e68d4c97c8f5b826069ba44aef.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/04/9332e68d4c97c8f5b826069ba44aef.blob deleted file mode 100644 index 4c6d00696..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/04/9332e68d4c97c8f5b826069ba44aef.blob +++ /dev/null @@ -1,379 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/09/fdbd4edf08489bf68defc081b982f5.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/09/fdbd4edf08489bf68defc081b982f5.v8 deleted file mode 100644 index f43d3ceb2c45d09834d3fd40e3b7742a619bec87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcma)4O>Yx16imamX-j))1xK`c;#!jI+M5_Ipwbl)P$9M4xcK9_aka4*+uJ7OPxBAJ z4N=bc=9#hI%-DZUKkPZ^8wGha=4?c&5~-lP5RA!brALgFg)Zo1LLi&-Fi*PCXiN)I zsSzEcuK09IRo{1|=@=)>?4gK%Le@XlC^{^FiL@F2Zu;}DnV zr3n~@w9GH^noG<-Vni8@v-u_3;Cz^ycG#LFHaw!b&`I;=KESaFv*0#Z4TouC8)LDC zEUsFF{*yvF8_~wkxPp9KXhF-0j0vTJR~04IL^3(isHRLZ1qTb>Zj^)}Ar&n|NwgG9 zPt=GMRH>5DlCp}!iNY4GLMsi1cW--eYOHKJg{n@`H%Rhx<2o<#7LHvP+b(|kzxJM? zeQ+??IA2B>2=5+Ki7-H$+QZ=Ba0>;V&3f>n;UVVZ{BrKy0`rH|cWQ3d-w`)lb8mJ; z1~0cKYU5G6<&HUk^DT3w?shl5&$9I%oNWVMJB44J>Qc&EIQbW>c7DMl9NaZd@CJ@d z_+o_TepRpcAzNVNZry|Z5P3}QvuGB0-P=qv7=+bAxMow|^I#NSX`TK- U8g$fI^RvUJ$LX!lUibF?0z!+}yZ`_I diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/0a/bab1788a6b41bf60ea9882c5fbfeed.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/0a/bab1788a6b41bf60ea9882c5fbfeed.v8 deleted file mode 100644 index 1ae6700c9b90edbc7faab4f78045678365974e37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14346 zcmeHOTW=f36_#X5vK6~Vk|q!B%Vr?JKmd|6vv(RT?Alf%)JX$dhF@9>b6at3a+lp* z+E$6Y6zF@N@>~@C8Tl7|?SE;{ESD5-(vY?(#7+ePly>LL<(%()bLO1ke{ZB{XMevq z?J4wY+Q1E5XPsV~HE4she%DWANBuryy*Aq3-_O{q1GN2;b^0nrzdYvU+k0tJsHFIc zF|6(m8k+39iKQzDLHm9?5r za+T%HS1RXe-sI{eP7;;XpR<=N7g^jZn(DR6M4YR<>DpG^I$%Os_f?@p5vPfDPbGPp zTW;p@Qwy4s6- zsuL#)?MfA~ey2b?1jLfaEPVy8j&@Z7KCbc2HS~EUaS&%JN?(uP?4VDpHxJ~=xTia{+F%oX5+|b5m+Bi} zuCGf&ti2{^_fwQ5VIDe|xi{rr_#Au2+ zIC4VHJ!Jb^5-{qP%V%Dst*75@nCCmn?fJuu~ZMD2x4v6Ca?9A z_%D5>`FCURiQd7?T)L#&mS=^%F;ianF%{O>*cXf{5xUZ4o+2DG z=3){?9NUiTu=B#2*2Wx>Hq6sJj~`bQy^!{diZ#*R`*lt@+wm4K?Z5spV%i_?ugJ8f zowo86Q?trbmSWm>6!*Mm_WP-ZzGll_9QtayHRT;E5Sf}?K(}VmA>C4}B!~Q_5Zon@ z&kUuABo&bz+M!SIB;EeW%wtPu2lZPQ?jAzcJ^8^l0&I=`t+WQ%C>c$^OocjH( z6*<+EJFncq)a(LxFpE~vhc9qQxeY-GRg|zG3LF+NNaQPFdrVD4A8W}dqX{=SI?KNt zRZE+XQ+(=s5(~!yAaA_yHyT@{9$IJRq#{9rcyG7s|)_rMpLjQT-(=?F3fJAphj zWLZ;mMgI-q&}j#f(p3_VZ9>ZT-&=bY{CsH*%1_JU>FYY2MC0V71%GD}3PJGbcKP!?*HoMnhr!DIwi{92&BtpH+14@!I~I{v}wPn*7O~;y|cNAwpmeRaLT_aS;6X6 zrv8P_n_}z;$T};kbD)?zk%%yMm2^EpBQE)1b8rP{bV2aCF-{Zwu)QqNnupVAg!-_; z3Ps4Y-)ouD-9uJhO{N0n^~r(81)EXX1XA?Z%SzPJY0tqH%zjiKHqU!l5#1S1qO2Y) zD?6U6PNys_R8?Th3jLT^m<>qKqj2zqQ!L<=UF zWoY5q(^*z9^*Y50rp6Zm&Lq1Ka7Lk7z~KdeGj(#QfGd+}P^j}Hab#J4TL8F&dBDxf zO#|-7`xgSvbd+5LIFrnq0nXIx6yQvaF9MuNb|K)5LPNmmqjX7dcW3do1$6`-5em1R zT;lp6aU-U{+O`iBX*gMUc3@6j>~BEjWnAESy}!rQa?T#gpBzAxua;e@i*KA>LJ64$`=xng2k zW{F|Hru)4mb*qey5ePTwF7$6ytK| z2QdZOa~hhS<5Ff=EnhIPptl&ybYi{yb&ZbnXPme8<;@Sdv?)rM8?8I*`|Ic)UDXLs z7AN_c=2jcW=oZ81>#fHz`uMvUXBsxkIq+K|VS32ri0S+xjlNle&)Dib@EHYH=zbCS zrj=pTzaDLbS7YPZHLZQD^Q~l@YpF(KtJxJTt%?=8H(SXF*-0xI8_%w3+Db<8)yF#D zN=pr9ymv9T8;-2BT=(V!`%E~rTKC3Dl=fHzg4M=ZZW)u~>~DO5_VgFb^tU - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/0b/64d5f86722c1287c9fb0c04bba9c9d.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/0b/64d5f86722c1287c9fb0c04bba9c9d.v8 deleted file mode 100644 index db7ec106f8cf235f1a720316de5aadf4838c1e1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14229 zcmeHOTW=f36_#Y`Vnwdeq{%~@hs{7hfB+rn1AkTg1&&WgnLtp!t|IwaVE?3KoIHWBKbs9kcrQNxn^PO+bW%!?aG1@si z%r5%^{fad7hF+)Leup+l1Gj!Vhu^b^zTB5)jLAOr+T!*C{uNY2m_KE8ei|H=& zu7;xAaxI-x;sus&IF4o6wrM!r=YbOtL18GyJYisNVAHfX6PU=gdsJ}SB095LJ80*u zEhTa#w-2Y~R+ZRkDY5M+=2ApEM@LB4H%QaAwFNzNO@DAc2+2ryp?F&B) zLXotZ&r^}4&DSDjaoS{}9Y&Ez>M!XzP5mV7XH9V-5=?sfumhpW0TjV|2QX?SUB2M)L(>SFBNj>z<_$-u~5Q z)-5-UGU0<^0P<~}6T%J0_dE}Kz8#2wP;&$wWwY_hx#)`sfaYJ8MsdFv^FdcU8zX!@ z7(jddurIn{B+xDw0UdNRw3E@KEx-(G5$#o;@A5Fs9)}6~(+#4r(Wi+ox^xTaGq>DD2=#GfaW3=l_HoeHuE=%IqVCraBL}240jnQ85D1BH%A9iV)X;^#I zN#dT+&Vduay35DUXh4&&eEd<-`Z!EP5MPwfKPa9*;q7va!;RW-6TKfses{pdSHM_b z<_bzr(Lp@O`h)B^PI?r?*Y3uQcG2B1{UT%uO)igz+rwJEkrxMOH%y;M?mEp`ZV80+ zL`LJ`2HH(8do1pz4_X_;J+NI32PP#J<~D+M2 zd+<*rA$?qIttQDF?dK4RvOkDRSh3|%rehs@t`l$)P{SaG?Q$2>z#+s%J3ZQmmS^ao zw9QbSQ5qKpbA;vl9P2JNEat+t1H$37hBKDn7|mGj&l-&;{4$z~hM%TrJ4~NH{o+(Y z;bD3i`KPOZoYqb@N<2@({A8c66G(Ri80 z5gaomhplUl;bv<~ve&cRdQQ>)=vB5asHCx~Tsk@FmAP?I%gyTBJ!l#bIv0!@Oo5BUhfD)5b*yA%b zLzSMwV!!5&bS5U;8bfz{N`&uO+=5^qGo4ZkoScB^hH07fI=7~^F+-#c^)j#H#}&IS zq&=lzRkT-$58egWX%W-@DXM0Lr7Xp?H|6(y`jg+22YnSkRC1px z`B!LE)ocOxsk;`@9~Gu=Lmr^jh%Pnxb zC&|(w%=C1Z2+kNGfkg#&xa<0yVnT#5CQGCVSLciyf-%T=`ph*=!7R!1f_Xmo@KlgE z%ck(;TE9*uz5gSE`{&=r1oy+oD-xV4fnAt`s@Vc_Ph<|x$c{e>qw`;^j*&+#1fvzuxVJO9Zcs! zW?}y0jlMjUQh$_II)+R}+mH-~lxK|Y$iE>9yzD||xX7r{O-M=oYinPFpU<>m{;6p! zzNkZ37)I?D{GD*9#=xTo`P*;z^A8sD%d&kBvd&@D()5WYjn`08D%A(j9)-Xx!)u-1j-nXuU|6zmiEzT{nG50Sh7%k~%X3KhSkca0_aD0po1AIlKcj zx-e${ZhKjxRZk~l`ueEM36;Qj&~K@7&m&e|txo~UgX%UEFGk~^bCExdR>%?hefCs;w%coE=KedhvB*=ZVZ`W(Qi2Dw$h<(Vz0 zn%NwiJTHdL0o?H{;AZBf!Z} zIw!c_Oyg|}lKL#b1iRG2mg8Y7paQgQK&%XWlrIRx7# zHwP3>w9=dYVLs1O-coQ-a}q|Kv|bK6V?kv#D0#l4PtrWUV-+hRZRt4G;%+ zD0Vz*nLd0leWh&A@njWGDQ9U`OI~+**VEZYr{iqTzrS8K2+0eFtwXde;A&3#@DpIb z0B-t}w*|N0+R`mv*n_Kx^H!iV?9thAP47uxNfn9|$57$qUajYLq#)&eJJ%gb%xWe%Bz&9xjrTpb=W4tOGPw#2%b6u|` - - - - - Censorship - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/0b/d489282c30baeef64fa7b880659862.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/0b/d489282c30baeef64fa7b880659862.v8 deleted file mode 100644 index 0c0f5b5f038a6a6a276d6f1a5831ba60666d93a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13276 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 diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/0c/c0d43d015e20a2250cd0e59a516ec1.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/0c/c0d43d015e20a2250cd0e59a516ec1.blob deleted file mode 100644 index f3367b95c..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/0c/c0d43d015e20a2250cd0e59a516ec1.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["video","document","querySelector","canvas","ctx","getContext","strokeStyle","lineWidth","faceCanvas","faceCtx","faceDetector","window","FaceDetector","populateVideo","stream","navigator","mediaDevices","getUserMedia","width","height","srcObject","play","console","log","videoWidth","videoHeight","detect","faces","forEach","drawFace","requestAnimationFrame","face","top","left","boundingBox","then","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","clear","hmrApply","v","hmrAcceptRun","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":"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","file":"pixelated-face.690060ff.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/0c/e3378d21feb552a2bffa24bef63c99.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/0c/e3378d21feb552a2bffa24bef63c99.blob deleted file mode 100644 index 062ca094b..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/0c/e3378d21feb552a2bffa24bef63c99.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["video","document","querySelector","canvas","ctx","getContext","faceCanvas","faceCtx","faceDetector","window","FaceDetector","populateVideo","stream","navigator","mediaDevices","getUserMedia","width","height","srcObject","play","console","log","videoWidth","videoHeight","detect","faces","forEach","drawFace","censor","requestAnimationFrame","face","top","left","boundingBox","clearRect","strokeStyle","lineWidth","strokeRect","drawImage","x","y","then","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","clear","hmrApply","v","hmrAcceptRun","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":"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","file":"pixelated-face.ae4da779.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/0d/3163a4bca2417f1991430b5d62fce0.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/0d/3163a4bca2417f1991430b5d62fce0.blob deleted file mode 100644 index 195d69b5b..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/0d/3163a4bca2417f1991430b5d62fce0.blob +++ /dev/null @@ -1,49 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('.face'); -const faceCtx = canvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); // Write a fucntion that will populate the users video - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - video.srcObject = stream; - await video.play(); // size the canvases to be the same size as the video - - console.log(video.videoWidth, video.videoHeight); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - faceCanvas.width = video.videoWidth; - faceCanvas.height = video.videoHeight; -} - -async function detect() { - const faces = await faceDetector.detect(video); // ask the browser when the next animation frame is, and tell it to run detect for us - - faces.forEach(drawFace); - requestAnimationFrame(detect); -} - -function drawFace(face) { - const { - width, - height, - top, - left - } = face.boundingBox; - ctx.clearRect(0, 0, canvas.width, canvas.height); - ctx.strokeStyle = '#ffc600'; - ctx.lineWidth = 2; - ctx.strokeRect(left, top, width, height); -} - -function censor({ - boundingBox: face -}) {} - -populateVideo().then(detect); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/0d/9215d29accb3ff59ee7a80e1238e38.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/0d/9215d29accb3ff59ee7a80e1238e38.blob deleted file mode 100644 index 8c7e22b8a..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/0d/9215d29accb3ff59ee7a80e1238e38.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["video","document","querySelector","canvas","ctx","getContext","faceCanvas","faceCtx","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","forEach","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","console","clear","hmrApply","v","hmrAcceptRun","window","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","log","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":"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","file":"pixelated-face.66840505.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/0e/57baf77c3acffb02945087905d7505.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/0e/57baf77c3acffb02945087905d7505.blob deleted file mode 100644 index e7b702143..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/0e/57baf77c3acffb02945087905d7505.blob +++ /dev/null @@ -1,66 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('.face'); -const faceCtx = faceCanvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); -const SIZE = 10; // Write a fucntion that will populate the users video - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - video.srcObject = stream; - await video.play(); // size the canvases to be the same size as the video - - console.log(video.videoWidth, video.videoHeight); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - faceCanvas.width = video.videoWidth; - faceCanvas.height = video.videoHeight; -} - -async function detect() { - const faces = await faceDetector.detect(video); // ask the browser when the next animation frame is, and tell it to run detect for us - - faces.forEach(drawFace); - faces.forEach(censor); - requestAnimationFrame(detect); -} - -function drawFace(face) { - const { - width, - height, - top, - left - } = face.boundingBox; - ctx.clearRect(0, 0, canvas.width, canvas.height); - ctx.strokeStyle = '#ffc600'; - ctx.lineWidth = 2; - ctx.strokeRect(left, top, width, height); -} - -function censor({ - boundingBox: face -}) { - faceCtx.imageSmoothingEnabled = false; - faceCtx.clearRect(0, 0, faceCanvas.width, faceCanvas.height); // draw the small face - - faceCtx.drawImage( // 5 source args - video, // where does the source come from? - face.x, // where do we start the source pull from? - face.y, face.width, face.height, // 4 draw args - face.x, // where should we start drawing the x and y? - face.y, SIZE, SIZE); // draw the small face back on, but scale up - - faceCtx.drawImage(faceCanvas, // source - face.x, // where do we start the source pull from? - face.y, SIZE, SIZE, // Drawing args - face.x, face.y, face.width, face.height); -} - -populateVideo().then(detect); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/0e/b17f1e14436b677f355b6d1e97db3b.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/0e/b17f1e14436b677f355b6d1e97db3b.blob deleted file mode 100644 index 0009db084..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/0e/b17f1e14436b677f355b6d1e97db3b.blob +++ /dev/null @@ -1,73 +0,0 @@ -const faceDetector = new window.FaceDetector(); -const video = document.querySelector('video.webcam'); -const canvas = document.querySelector('canvas.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('canvas.face'); -const faceCtx = faceCanvas.getContext('2d'); -const SCALE = 1.2; -const SIZE = 10; - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - video.srcObject = stream; - await video.play(); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - faceCanvas.width = video.videoWidth; - faceCanvas.height = video.videoHeight; -} - -async function detect() { - const faces = await faceDetector.detect(video); // ctx.drawImage(video, 0, 0, canvas.width, canvas.height); - - ctx.clearRect(0, 0, canvas.width, canvas.height); // paintFace(faces); - - faces.forEach(drawFace); // faces.forEach(censor); - // faces.forEach(censor); - // faces[0] && createImageOfFace(faces[0].boundingBox); - // drawMouth(faces[0]); - - requestAnimationFrame(detect); -} - -function censor({ - boundingBox: face -}) { - faceCtx.imageSmoothingEnabled = false; - faceCtx.clearRect(0, 0, faceCanvas.width, faceCanvas.height); // First draw it small - - faceCtx.drawImage(video, // Where should I grab the photo from? - face.x, // from what x and y should I start capturing from? - face.y, face.width, // how wide and high should I capture from? - face.height, face.x, // now to draw it, where should I start x and y? - face.y, SIZE, // how wide and high should it be? - SIZE); - const width = face.width * SCALE; - const height = face.height * SCALE; // then draw it back on, but scaled up - - faceCtx.drawImage(faceCanvas, // Where should I grab the photo from? - face.x, // from what x and y should I start capturing from? - face.y, // from what x and y should I start capturing from? - SIZE, SIZE, // Drawing - face.x - (width - face.width) / 2, face.y - (height - face.height) / 2, width, height); -} - -function drawFace(face) { - const { - width, - height, - top, - left - } = face.boundingBox; - ctx.strokeStyle = '#ffc600'; - ctx.lineWidth = 1; - ctx.strokeRect(left, top, width, height); - ctx.stroke(); -} - -populateVideo().then(detect); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/0f/e60682561ac046f9c6bd000bea5d23.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/0f/e60682561ac046f9c6bd000bea5d23.blob deleted file mode 100644 index fa80360f3..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/0f/e60682561ac046f9c6bd000bea5d23.blob +++ /dev/null @@ -1,65 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('.face'); -const faceCtx = canvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); -const SIZE = 10; // Write a fucntion that will populate the users video - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - video.srcObject = stream; - await video.play(); // size the canvases to be the same size as the video - - console.log(video.videoWidth, video.videoHeight); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - faceCanvas.width = video.videoWidth; - faceCanvas.height = video.videoHeight; -} - -async function detect() { - const faces = await faceDetector.detect(video); // ask the browser when the next animation frame is, and tell it to run detect for us - - faces.forEach(drawFace); - faces.forEach(censor); - requestAnimationFrame(detect); -} - -function censor({ - boundingBox: face -}) { - faceCtx.imageSmoothingEnabled = false; // draw the small face - - faceCtx.drawImage( // 5 source args - video, // where does the source come from? - face.x, // where do we start the source pull from? - face.y, face.width, face.height, // 4 draw args - face.x, // where should we start drawing the x and y? - face.y, SIZE, SIZE); // draw the small face back on, but scale up - - faceCtx.drawImage(faceCanvas, // source - face.x, // where do we start the source pull from? - face.y, SIZE, SIZE, // Drawing args - face.x, face.y, face.width, face.height); -} - -function drawFace(face) { - const { - width, - height, - top, - left - } = face.boundingBox; - ctx.clearRect(0, 0, canvas.width, canvas.height); - ctx.strokeStyle = '#ffc600'; - ctx.lineWidth = 2; - ctx.strokeRect(left, top, width, height); -} - -populateVideo().then(detect); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/10/15bacef8e4d77b3dc8a5cd0c1fc606.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/10/15bacef8e4d77b3dc8a5cd0c1fc606.v8 deleted file mode 100644 index 9d3a3e52683f71dac98608cd7de2ed6d705d0882..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 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 diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/11/b5eac72d55e43ea17d84e692ea843f.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/11/b5eac72d55e43ea17d84e692ea843f.v8 deleted file mode 100644 index dbe1252d13664f3d18baa7b5f2454a1163ce08d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 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 diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/13/51ccb6b1a04c4d373affeb601709d9.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/13/51ccb6b1a04c4d373affeb601709d9.blob deleted file mode 100644 index d24dcc445..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/13/51ccb6b1a04c4d373affeb601709d9.blob +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - Censorship - - - - -

- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/13/9ec74c05eaad99ee4df076a465dcc3.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/13/9ec74c05eaad99ee4df076a465dcc3.v8 deleted file mode 100644 index 35c6d035ffd1f733f2bc61d05880896fdc4a9274..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45436 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 e?$)q*Z`6C$PLr_v$@F4n`NiJK8>yl3r_$vB diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/14/045b4a4dc956acf5d66a52f87e8831.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/14/045b4a4dc956acf5d66a52f87e8831.blob deleted file mode 100644 index d945e909c..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/14/045b4a4dc956acf5d66a52f87e8831.blob +++ /dev/null @@ -1,73 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('.face'); -const faceCtx = faceCanvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); -const optionsInputs = document.querySelectorAll('.controls input[type="range"]'); -console.log(optionsInputs); -const options = { - SIZE: 10, - SCALE: 1.35 -}; // Write a fucntion that will populate the users video - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - video.srcObject = stream; - await video.play(); // size the canvases to be the same size as the video - - console.log(video.videoWidth, video.videoHeight); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - faceCanvas.width = video.videoWidth; - faceCanvas.height = video.videoHeight; -} - -async function detect() { - const faces = await faceDetector.detect(video); // ask the browser when the next animation frame is, and tell it to run detect for us - - faces.forEach(drawFace); - faces.forEach(censor); - requestAnimationFrame(detect); -} - -function drawFace(face) { - const { - width, - height, - top, - left - } = face.boundingBox; - ctx.clearRect(0, 0, canvas.width, canvas.height); - ctx.strokeStyle = '#ffc600'; - ctx.lineWidth = 2; - ctx.strokeRect(left, top, width, height); -} - -function censor({ - boundingBox: face -}) { - faceCtx.imageSmoothingEnabled = false; - faceCtx.clearRect(0, 0, faceCanvas.width, faceCanvas.height); // draw the small face - - faceCtx.drawImage( // 5 source args - video, // where does the source come from? - face.x, // where do we start the source pull from? - face.y, face.width, face.height, // 4 draw args - face.x, // where should we start drawing the x and y? - face.y, options.SIZE, options.SIZE); // draw the small face back on, but scale up - - const width = face.width * options.SCALE; - const height = face.height * options.SCALE; - faceCtx.drawImage(faceCanvas, // source - face.x, // where do we start the source pull from? - face.y, options.SIZE, options.SIZE, // Drawing args - face.x - (width - face.width) / 2, face.y - (height - face.height) / 2, width, height); -} - -populateVideo().then(detect); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/14/215984616f78efc5e11322369545d0.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/14/215984616f78efc5e11322369545d0.v8 deleted file mode 100644 index 923632a1aa28a05d65990f398c1bf7542643af9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13276 zcmd^GTW=f36{aNWVnwdg+#b@G%|Ji_10;86?=(=zwXH;G5(Ke~ytGp1w&dF6F1x#w zr4o585cCJ+xexsnMgB!!`(N5K%jIf$k%qKQp=k{Rl6U9KnK|b>=gj$L{qOrR+BrPT zt_A}A3ODtp-XOg}mo#zHX#aK?@t*iRA%ia3K0Hjw>tnQiL3%?GqmRyM{`N^6Wg^PH zAZb^mkI=8jPuqd%8Ju~BK^)Ae#fZZkhhWpPi0?X{jx@^ttW&$agLck4 z(jwP(`*_xFRg0aL7Tb5TH;b9EKEh(vQ4d_9TO(Bry>(93*$(8 zBBC@-(r!3t1@NZX&HBCZLheLWvCRiF+bVX9PS>$LFyr}HUl8`h8ZEePErs#+uQ#)9 zyJ>_927v*{cXW<1H(loYzTq<`5CJCE7&^*fla+HZ5D@^4U6n!cpda&LPduL>d_5RI zdxLNwdSN8cE*AkA_A<1Sk)$Ia4C@i;SDx?kFwLHZ3Hrl3L}PP65+-^LMp#$0qy}_v zFr>YZy-0d!qlLCabP=OnCbQ{fhIVNZzlKmpyCQ-Z7io<4ibv_=I{LUr(o8e7C*36O z3+)1O0z`ND_&Etk5|)oYDMlZMi3sA$^7)6w^JlzM&T&|)k2cT;VZ?evF2070^;Pbm z^b{S$!)!3jj^m_Hz=jVGDrJ4gre+s;tFZZ4?HYv({MP{P+i!b6>vg)sG9+E3={42$pA*4qk}Rw zLs_FVE==kQn=x+ao?+V5gQ)_{p;{Y(kBu13MeZ+}%@+KnBo$4Trf54%Uwr%Jsf5Dg z^eSSftAL!;PiiHer(u4wS-zMC`biz#0QHj{v?TB`II`s^i1sdwi%d~@VRF&Vd4ee|FGE_ zgqI=*XCpsbynGV~oPF}f$>+b;A1Z6A{L!wX`$a-+M6H<6n!yY%7 z#e`2>gYp0~0?iySB@SaoB_4mT2Kv$j!~AjJ_6XjD1H)7RQ`g4~7#p3zdVL#sA|E@h zfc7(hoZ`BZ0EXPhEZ?RCn4G}l797ll?m+hOd<#2pQV(X1xAPGWPj0G6O6&a}1zqj) zNznc9{)$1TqTY&dPz}2!9Mqykd2*TVV+u`?g9SE-7kC!&2=IV{nGO+^a99f=g(_ii zdfmpI7F(MyWG;3c4m76gxw4R1OyU~b!uP3Rnf8rc+&s+xch8N!%BiX-efx9c#D5v- z0H*}ZNsPAS?{JvB>H)!2H0ERjI@^D4?rZSpp*G5YY8s6%8*sV|qfQ%sPdJde@aR$g z_WS+(2aWkvIld3%RT#B3eQHSaH89iVm_eL|lJ#wCiR{b53o#z7Y5g#2bVbC9=U33oh0OwhcAa|76w<1VgqfB0R<_N$!pRJJ5eLdL_eK=RjfN-)Nii0 zDyN3Idc!`f%$UrQKLygOd<4?@wwtnw=|8aZStfy8dTZ6{NL zY>}20DsEG9LQDq!nTGCHH<&)&P}4PswT((C=)A*|(L5V`eH&9@PAd#w;i^3eB&E<;UtaEV9~~|5k!q4@AH{dz zBg+b)@bWRmIbpdgZ0zaeVxjcaFLPf_$(2ba_t}rzGd`ORaaG&BC@rXDmPrd|C$m{W zHS1JXPz}Bfa4Ok_fKv+10`B1gz^Nv=Q^4ia2axX$H!PlW>I(pOJP){exoN=t^z>H1 zsrt%AfK$o58Q@g2P619e_%^_)WETQXDKrM0>}&G`XV2no6SzSd7})TLZP>1F*Z~pX zZPUdRnsv`HJvEPTSOYe-ByBI(n*wKgdSY6JZetU;62tY0Z87*k^_8fX-0St+jTNN5@8&C^im}$NQ0{7p4?JXdQCXH+Vmz)r2b(%4_;ytQv{UggrR$YHMZ?riL@V|uhFX-^VH>9yrn)1wTF@fqx` z^(bTf-RPNy&2jIbMPrg-2^_R;0n_(0^hVTl=hd}CU{j2p54>h zb=~YG - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/14/83d4445c761fba545aeb0a025610fd.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/14/83d4445c761fba545aeb0a025610fd.blob deleted file mode 100644 index 0d5ac0ed9..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/14/83d4445c761fba545aeb0a025610fd.blob +++ /dev/null @@ -1,408 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/14/f79ffe624d00deeaa525d125ed0a03.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/14/f79ffe624d00deeaa525d125ed0a03.blob deleted file mode 100644 index 6b0a58e13..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/14/f79ffe624d00deeaa525d125ed0a03.blob +++ /dev/null @@ -1,395 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/17/6e5cd264d41310cd577b21db72dfb9.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/17/6e5cd264d41310cd577b21db72dfb9.v8 deleted file mode 100644 index 06714a910835d85051c855950ba6d470218d2f7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45436 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 dHEiA+^VLhYz?!C#-7yh*o5U za^yxVjfZiCg5r*lH*wQ5BTdXmFBXx=?LKQcGHr7K+@vw>>ylS~Q&`S%v6ZB>1^CofUKkr>665=Rf^ld(TKO z4GgxN*^3nHg}(d_rDO&E|Z7yE-4*mky8QQM^ diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/17/a61e0c13ea4b54821330d1cad567ac.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/17/a61e0c13ea4b54821330d1cad567ac.v8 deleted file mode 100644 index 26f164aebd06fe3f4ab9cc56b6656c577b7c88ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14229 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 YKz`Rte!&8+ju&4EgE|&evWDCL1@`hixBvhE diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/18/56dbf38724100bb2a050512d45c038.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/18/56dbf38724100bb2a050512d45c038.blob deleted file mode 100644 index bfa24e9f7..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/18/56dbf38724100bb2a050512d45c038.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["video","document","querySelector","canvas","ctx","getContext","faceCanvas","faceCtx","faceDetector","window","FaceDetector","SIZE","populateVideo","stream","navigator","mediaDevices","getUserMedia","width","height","srcObject","play","console","log","videoWidth","videoHeight","detect","faces","forEach","drawFace","censor","requestAnimationFrame","face","top","left","boundingBox","clearRect","strokeStyle","lineWidth","strokeRect","drawImage","x","y","SCALE","imageSmoothingEnabled","then","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","clear","hmrApply","v","hmrAcceptRun","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAMA,KAAK,GAAGC,QAAQ,CAACC,aAAT,CAAuB,SAAvB,CAAd;AACA,MAAMC,MAAM,GAAGF,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAAf;AACA,MAAME,GAAG,GAAGD,MAAM,CAACE,UAAP,CAAkB,IAAlB,CAAZ;AACA,MAAMC,UAAU,GAAGL,QAAQ,CAACC,aAAT,CAAuB,OAAvB,CAAnB;AACA,MAAMK,OAAO,GAAGJ,MAAM,CAACE,UAAP,CAAkB,IAAlB,CAAhB;AACA,MAAMG,YAAY,GAAG,IAAIC,MAAM,CAACC,YAAX,EAArB;AACA,MAAMC,IAAI,GAAG,EAAb,C,CAEA;;AACA,eAAeC,aAAf,GAA+B;AAC7B,QAAMC,MAAM,GAAG,MAAMC,SAAS,CAACC,YAAV,CAAuBC,YAAvB,CAAoC;AACvDhB,IAAAA,KAAK,EAAE;AAAEiB,MAAAA,KAAK,EAAE,IAAT;AAAeC,MAAAA,MAAM,EAAE;AAAvB;AADgD,GAApC,CAArB;AAGAlB,EAAAA,KAAK,CAACmB,SAAN,GAAkBN,MAAlB;AACA,QAAMb,KAAK,CAACoB,IAAN,EAAN,CAL6B,CAM7B;;AACAC,EAAAA,OAAO,CAACC,GAAR,CAAYtB,KAAK,CAACuB,UAAlB,EAA8BvB,KAAK,CAACwB,WAApC;AACArB,EAAAA,MAAM,CAACc,KAAP,GAAejB,KAAK,CAACuB,UAArB;AACApB,EAAAA,MAAM,CAACe,MAAP,GAAgBlB,KAAK,CAACwB,WAAtB;AACAlB,EAAAA,UAAU,CAACW,KAAX,GAAmBjB,KAAK,CAACuB,UAAzB;AACAjB,EAAAA,UAAU,CAACY,MAAX,GAAoBlB,KAAK,CAACwB,WAA1B;AACD;;AAED,eAAeC,MAAf,GAAwB;AACtB,QAAMC,KAAK,GAAG,MAAMlB,YAAY,CAACiB,MAAb,CAAoBzB,KAApB,CAApB,CADsB,CAEtB;;AACA0B,EAAAA,KAAK,CAACC,OAAN,CAAcC,QAAd;AACAF,EAAAA,KAAK,CAACC,OAAN,CAAcE,MAAd;AACAC,EAAAA,qBAAqB,CAACL,MAAD,CAArB;AACD;;AAED,SAASG,QAAT,CAAkBG,IAAlB,EAAwB;AACtB,QAAM;AAAEd,IAAAA,KAAF;AAASC,IAAAA,MAAT;AAAiBc,IAAAA,GAAjB;AAAsBC,IAAAA;AAAtB,MAA+BF,IAAI,CAACG,WAA1C;AACA9B,EAAAA,GAAG,CAAC+B,SAAJ,CAAc,CAAd,EAAiB,CAAjB,EAAoBhC,MAAM,CAACc,KAA3B,EAAkCd,MAAM,CAACe,MAAzC;AACAd,EAAAA,GAAG,CAACgC,WAAJ,GAAkB,SAAlB;AACAhC,EAAAA,GAAG,CAACiC,SAAJ,GAAgB,CAAhB;AACAjC,EAAAA,GAAG,CAACkC,UAAJ,CAAeL,IAAf,EAAqBD,GAArB,EAA0Bf,KAA1B,EAAiCC,MAAjC;AACD;;AAED,SAASW,MAAT,CAAgB;AAAEK,EAAAA,WAAW,EAAEH;AAAf,CAAhB,EAAuC;AACrC;AACAxB,EAAAA,OAAO,CAACgC,SAAR,EACE;AACAvC,EAAAA,KAFF,EAES;AACP+B,EAAAA,IAAI,CAACS,CAHP,EAGU;AACRT,EAAAA,IAAI,CAACU,CAJP,EAKEV,IAAI,CAACd,KALP,EAMEc,IAAI,CAACb,MANP,EAOE;AACAa,EAAAA,IAAI,CAACS,CARP,EAQU;AACRT,EAAAA,IAAI,CAACU,CATP,EAUE9B,IAVF,EAWEA,IAXF,EAFqC,CAerC;;AACA,QAAMM,KAAK,GAAGc,IAAI,CAACd,KAAL,GAAayB,KAA3B;AACA,QAAMxB,MAAM,GAAGa,IAAI,CAACb,MAAL,GAAcwB,KAA7B;AACAnC,EAAAA,OAAO,CAACoC,qBAAR,GAAgC,KAAhC,CAlBqC,CAoBrC;;AACApC,EAAAA,OAAO,CAACgC,SAAR,CACEjC,UADF,EACc;AACZyB,EAAAA,IAAI,CAACS,CAFP,EAEU;AACRT,EAAAA,IAAI,CAACU,CAHP,EAGU;AACR9B,EAAAA,IAJF,EAKEA,IALF,EAME;AACAoB,EAAAA,IAAI,CAACS,CAAL,GAAS,CAACvB,KAAK,GAAGc,IAAI,CAACd,KAAd,IAAuB,CAPlC,EAQEc,IAAI,CAACU,CAAL,GAAS,CAACvB,MAAM,GAAGa,IAAI,CAACb,MAAf,IAAyB,CARpC,EASED,KATF,EAUEC,MAVF;AAYD;;AAEDN,aAAa,GAAGgC,IAAhB,CAAqBnB,MAArB;;AC1EA,IAAIoB,qBAAqB,GAAG,kCAA5B;AAA+D,IAAIC,UAAU,GAAG,4BAAjB;AAE/D,IAAIC,SAAS,GAAGC,MAAM,CAACC,MAAP,CAAcC,MAA9B;;AAEA,SAASA,MAAT,CAAgBC,UAAhB,EAA4B;AAC1BJ,EAAAA,SAAS,CAACK,IAAV,CAAe,IAAf,EAAqBD,UAArB;AACA,OAAKE,GAAL,GAAW;AACTC,IAAAA,IAAI,EAAEN,MAAM,CAACC,MAAP,CAAcM,OADX;AAETC,IAAAA,gBAAgB,EAAE,EAFT;AAGTC,IAAAA,iBAAiB,EAAE,EAHV;AAITC,IAAAA,MAAM,EAAE,UAASC,EAAT,EAAa;AACnB,WAAKH,gBAAL,CAAsBI,IAAtB,CAA2BD,EAAE,IAAI,YAAW,CAAE,CAA9C;AACD,KANQ;AAOTE,IAAAA,OAAO,EAAE,UAASF,EAAT,EAAa;AACpB,WAAKF,iBAAL,CAAuBG,IAAvB,CAA4BD,EAA5B;AACD;AATQ,GAAX;AAYAX,EAAAA,MAAM,CAACC,MAAP,CAAcM,OAAd,GAAwB,IAAxB;AACD;;AAEDP,MAAM,CAACC,MAAP,CAAcC,MAAd,GAAuBA,MAAvB;AACA,IAAIY,aAAJ,EAAmBC,cAAnB;AAEA,IAAIC,MAAM,GAAGhB,MAAM,CAACC,MAAP,CAAce,MAA3B;;AACA,IAAI,CAAC,CAACA,MAAD,IAAW,CAACA,MAAM,CAACC,eAApB,KAAwC,OAAOC,SAAP,KAAqB,WAAjE,EAA8E;AAC5E,MAAIC,QAAQ,GAAG,MAA4BC,QAAQ,CAACD,QAApD;AACA,MAAIE,QAAQ,GAAGD,QAAQ,CAACC,QAAT,KAAsB,QAAtB,GAAiC,KAAjC,GAAyC,IAAxD;AACA,MAAIC,EAAE,GAAG,IAAIJ,SAAJ,CACPG,QAAQ,GAAG,KAAX,GAAmBF,QAAnB,GAA8B,GAA9B,aAA2D,GADpD,CAAT;;AAGAG,EAAAA,EAAE,CAACC,SAAH,GAAe,UAASC,KAAT,EAAgB;AAC7BV,IAAAA,aAAa,GAAG,EAAhB;AACAC,IAAAA,cAAc,GAAG,EAAjB;AAEA,QAAIT,IAAI,GAAGmB,IAAI,CAACC,KAAL,CAAWF,KAAK,CAAClB,IAAjB,CAAX;;AAEA,QAAIA,IAAI,CAACqB,IAAL,KAAc,QAAlB,EAA4B;AAC1B;AACAC,MAAAA,kBAAkB;AAElB,UAAIC,MAAM,GAAGvB,IAAI,CAACuB,MAAL,CAAYC,MAAZ,EACX;AACAC,MAAAA,KAAK,IAAIA,KAAK,CAACC,OAAN,KAAkBnC,qBAFhB,CAAb,CAJ0B,CAS1B;;AACA,UAAIoC,OAAO,GAAG,KAAd;AACAJ,MAAAA,MAAM,CAAClD,OAAP,CAAeoD,KAAK,IAAI;AACtB,YAAI,CAACA,KAAK,CAACG,KAAX,EAAkB;AAChB,cAAIC,SAAS,GAAGC,cAAc,CAACC,MAAM,CAACC,aAAR,EAAuBP,KAAK,CAACQ,EAA7B,CAA9B;;AACA,cAAIJ,SAAJ,EAAe;AACbF,YAAAA,OAAO,GAAG,IAAV;AACD;AACF;AACF,OAPD;;AASA,UAAIA,OAAJ,EAAa;AACX5D,QAAAA,OAAO,CAACmE,KAAR;AAEAX,QAAAA,MAAM,CAAClD,OAAP,CAAe,UAASoD,KAAT,EAAgB;AAC7BU,UAAAA,QAAQ,CAACJ,MAAM,CAACC,aAAR,EAAuBP,KAAvB,CAAR;AACD,SAFD;AAIAhB,QAAAA,cAAc,CAACpC,OAAf,CAAuB,UAAS+D,CAAT,EAAY;AACjCC,UAAAA,YAAY,CAACD,CAAC,CAAC,CAAD,CAAF,EAAOA,CAAC,CAAC,CAAD,CAAR,CAAZ;AACD,SAFD;AAGD,OAVD,MAUO;AACLjF,QAAAA,MAAM,CAAC2D,QAAP,CAAgBwB,MAAhB;AACD;AACF;;AAED,QAAItC,IAAI,CAACqB,IAAL,KAAc,OAAlB,EAA2B;AACzBtD,MAAAA,OAAO,CAACwE,KAAR,CACE,kBAAkBvC,IAAI,CAACwC,SAAL,CAAeC,OAAjC,GAA2C,IAA3C,GAAkDzC,IAAI,CAACwC,SAAL,CAAeE,KADnE;AAIApB,MAAAA,kBAAkB;AAElB,UAAIqB,OAAO,GAAGC,kBAAkB,CAAC5C,IAAD,CAAhC;AACArD,MAAAA,QAAQ,CAACkG,IAAT,CAAcC,WAAd,CAA0BH,OAA1B;AACD;AACF,GAnDD;AAoDD;;AAED,SAASrB,kBAAT,GAA8B;AAC5B,MAAIqB,OAAO,GAAGhG,QAAQ,CAACoG,cAAT,CAAwBvD,UAAxB,CAAd;;AACA,MAAImD,OAAJ,EAAa;AACXA,IAAAA,OAAO,CAACK,MAAR;AACAjF,IAAAA,OAAO,CAACC,GAAR,CAAY,2BAAZ;AACD;AACF;;AAED,SAAS4E,kBAAT,CAA4B5C,IAA5B,EAAkC;AAChC,MAAI2C,OAAO,GAAGhG,QAAQ,CAACsG,aAAT,CAAuB,KAAvB,CAAd;AACAN,EAAAA,OAAO,CAACV,EAAR,GAAazC,UAAb,CAFgC,CAIhC;;AACA,MAAIiD,OAAO,GAAG9F,QAAQ,CAACsG,aAAT,CAAuB,KAAvB,CAAd;AACA,MAAIC,UAAU,GAAGvG,QAAQ,CAACsG,aAAT,CAAuB,KAAvB,CAAjB;AACAR,EAAAA,OAAO,CAACU,SAAR,GAAoBnD,IAAI,CAACoD,SAAL,CAAeX,OAAnC;AACAS,EAAAA,UAAU,CAACC,SAAX,GAAuBnD,IAAI,CAACoD,SAAL,CAAeV,KAAtC;AAEAC,EAAAA,OAAO,CAACQ,SAAR,GACE,2NACA,mFADA,GAEA,yEAFA,GAGA,qEAHA,GAIAV,OAAO,CAACU,SAJR,GAKA,QALA,GAMA,OANA,GAOAD,UAAU,CAACC,SAPX,GAQA,QARA,GASA,QAVF;AAYA,SAAOR,OAAP;AACD;;AAED,SAASU,UAAT,CAAoB1D,MAApB,EAA4BsC,EAA5B,EAAgC;AAC9B,MAAIqB,OAAO,GAAG3D,MAAM,CAAC2D,OAArB;;AACA,MAAI,CAACA,OAAL,EAAc;AACZ,WAAO,EAAP;AACD;;AAED,MAAIC,OAAO,GAAG,EAAd;AACA,MAAIC,CAAJ,EAAOC,CAAP,EAAUC,GAAV;;AAEA,OAAKF,CAAL,IAAUF,OAAV,EAAmB;AACjB,SAAKG,CAAL,IAAUH,OAAO,CAACE,CAAD,CAAP,CAAW,CAAX,CAAV,EAAyB;AACvBE,MAAAA,GAAG,GAAGJ,OAAO,CAACE,CAAD,CAAP,CAAW,CAAX,EAAcC,CAAd,CAAN;;AAEA,UAAIC,GAAG,KAAKzB,EAAR,IAAe0B,KAAK,CAACC,OAAN,CAAcF,GAAd,KAAsBA,GAAG,CAACA,GAAG,CAACG,MAAJ,GAAa,CAAd,CAAH,KAAwB5B,EAAjE,EAAsE;AACpEsB,QAAAA,OAAO,CAACjD,IAAR,CAAakD,CAAb;AACD;AACF;AACF;;AAED,MAAI7D,MAAM,CAACe,MAAX,EAAmB;AACjB6C,IAAAA,OAAO,GAAGA,OAAO,CAACO,MAAR,CAAeT,UAAU,CAAC1D,MAAM,CAACe,MAAR,EAAgBuB,EAAhB,CAAzB,CAAV;AACD;;AAED,SAAOsB,OAAP;AACD;;AAED,SAASpB,QAAT,CAAkBxC,MAAlB,EAA0B8B,KAA1B,EAAiC;AAC/B,MAAI6B,OAAO,GAAG3D,MAAM,CAAC2D,OAArB;;AACA,MAAI,CAACA,OAAL,EAAc;AACZ;AACD;;AAED,MAAIA,OAAO,CAAC7B,KAAK,CAACQ,EAAP,CAAP,IAAqB,CAACtC,MAAM,CAACe,MAAjC,EAAyC;AACvC,QAAIL,EAAE,GAAG,IAAI0D,QAAJ,CAAa,SAAb,EAAwB,QAAxB,EAAkC,SAAlC,EAA6CtC,KAAK,CAACuC,MAAnD,CAAT;AACAvC,IAAAA,KAAK,CAACG,KAAN,GAAc,CAAC0B,OAAO,CAAC7B,KAAK,CAACQ,EAAP,CAAtB;AACAqB,IAAAA,OAAO,CAAC7B,KAAK,CAACQ,EAAP,CAAP,GAAoB,CAAC5B,EAAD,EAAKoB,KAAK,CAACwC,IAAX,CAApB;AACD,GAJD,MAIO,IAAItE,MAAM,CAACe,MAAX,EAAmB;AACxByB,IAAAA,QAAQ,CAACxC,MAAM,CAACe,MAAR,EAAgBe,KAAhB,CAAR;AACD;AACF;;AAED,SAASK,cAAT,CAAwBnC,MAAxB,EAAgCsC,EAAhC,EAAoC;AAClC,MAAIqB,OAAO,GAAG3D,MAAM,CAAC2D,OAArB;;AAEA,MAAI,CAACA,OAAL,EAAc;AACZ;AACD;;AAED,MAAI,CAACA,OAAO,CAACrB,EAAD,CAAR,IAAgBtC,MAAM,CAACe,MAA3B,EAAmC;AACjC,WAAOoB,cAAc,CAACnC,MAAM,CAACe,MAAR,EAAgBuB,EAAhB,CAArB;AACD;;AAED,MAAIzB,aAAa,CAACyB,EAAD,CAAjB,EAAuB;AACrB;AACD;;AAEDzB,EAAAA,aAAa,CAACyB,EAAD,CAAb,GAAoB,IAApB;AAEA,MAAIiC,MAAM,GAAGvE,MAAM,CAACwE,KAAP,CAAalC,EAAb,CAAb;AAEAxB,EAAAA,cAAc,CAACH,IAAf,CAAoB,CAACX,MAAD,EAASsC,EAAT,CAApB;;AAEA,MAAIiC,MAAM,IAAIA,MAAM,CAACnE,GAAjB,IAAwBmE,MAAM,CAACnE,GAAP,CAAWG,gBAAX,CAA4B2D,MAAxD,EAAgE;AAC9D,WAAO,IAAP;AACD;;AAED,SAAOR,UAAU,CAACtB,MAAM,CAACC,aAAR,EAAuBC,EAAvB,CAAV,CAAqCmC,IAArC,CAA0C,UAASnC,EAAT,EAAa;AAC5D,WAAOH,cAAc,CAACC,MAAM,CAACC,aAAR,EAAuBC,EAAvB,CAArB;AACD,GAFM,CAAP;AAGD;;AAED,SAASI,YAAT,CAAsB1C,MAAtB,EAA8BsC,EAA9B,EAAkC;AAChC,MAAIiC,MAAM,GAAGvE,MAAM,CAACwE,KAAP,CAAalC,EAAb,CAAb;AACAtC,EAAAA,MAAM,CAACM,OAAP,GAAiB,EAAjB;;AACA,MAAIiE,MAAJ,EAAY;AACVA,IAAAA,MAAM,CAACnE,GAAP,CAAWC,IAAX,GAAkBL,MAAM,CAACM,OAAzB;AACD;;AAED,MAAIiE,MAAM,IAAIA,MAAM,CAACnE,GAAjB,IAAwBmE,MAAM,CAACnE,GAAP,CAAWI,iBAAX,CAA6B0D,MAAzD,EAAiE;AAC/DK,IAAAA,MAAM,CAACnE,GAAP,CAAWI,iBAAX,CAA6B9B,OAA7B,CAAqC,UAASgG,EAAT,EAAa;AAChDA,MAAAA,EAAE,CAAC1E,MAAM,CAACM,OAAR,CAAF;AACD,KAFD;AAGD;;AAED,SAAON,MAAM,CAACwE,KAAP,CAAalC,EAAb,CAAP;AACAtC,EAAAA,MAAM,CAACsC,EAAD,CAAN;AAEAiC,EAAAA,MAAM,GAAGvE,MAAM,CAACwE,KAAP,CAAalC,EAAb,CAAT;;AACA,MAAIiC,MAAM,IAAIA,MAAM,CAACnE,GAAjB,IAAwBmE,MAAM,CAACnE,GAAP,CAAWG,gBAAX,CAA4B2D,MAAxD,EAAgE;AAC9DK,IAAAA,MAAM,CAACnE,GAAP,CAAWG,gBAAX,CAA4B7B,OAA5B,CAAoC,UAASgG,EAAT,EAAa;AAC/CA,MAAAA,EAAE;AACH,KAFD;;AAGA,WAAO,IAAP;AACD;AACF","file":"pixelated-face.a449358b.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/18/c82086164c9bb68f7f453ea0417c02.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/18/c82086164c9bb68f7f453ea0417c02.blob deleted file mode 100644 index a43e059f6..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/18/c82086164c9bb68f7f453ea0417c02.blob +++ /dev/null @@ -1,409 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/19/d457716ec71478cd1fe19f2676a8a4.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/19/d457716ec71478cd1fe19f2676a8a4.v8 deleted file mode 100644 index 518874a628b6974486276dbd231cda4a1a720443..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14229 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 WT`%&|P diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/1a/385df5b40bbe272347d6ae50011f6f.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/1a/385df5b40bbe272347d6ae50011f6f.blob deleted file mode 100644 index 85156efb2..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/1a/385df5b40bbe272347d6ae50011f6f.blob +++ /dev/null @@ -1,66 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('.face'); -const faceCtx = canvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); -const SIZE = 1000; // Write a fucntion that will populate the users video - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - video.srcObject = stream; - await video.play(); // size the canvases to be the same size as the video - - console.log(video.videoWidth, video.videoHeight); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - faceCanvas.width = video.videoWidth; - faceCanvas.height = video.videoHeight; -} - -async function detect() { - const faces = await faceDetector.detect(video); // ask the browser when the next animation frame is, and tell it to run detect for us - - faces.forEach(drawFace); - faces.forEach(censor); - requestAnimationFrame(detect); -} - -function drawFace(face) { - const { - width, - height, - top, - left - } = face.boundingBox; - ctx.clearRect(0, 0, canvas.width, canvas.height); - ctx.strokeStyle = '#ffc600'; - ctx.lineWidth = 2; - ctx.strokeRect(left, top, width, height); -} - -function censor({ - boundingBox: face -}) { - faceCtx.imageSmoothingEnabled = false; - faceCtx.clearRect(0, 0, faceCanvas.width, faceCanvas.height); // draw the small face - - faceCtx.drawImage( // 5 source args - video, // where does the source come from? - face.x, // where do we start the source pull from? - face.y, face.width, face.height, // 4 draw args - face.x, // where should we start drawing the x and y? - face.y, SIZE, SIZE); // draw the small face back on, but scale up - - faceCtx.drawImage(faceCanvas, // source - face.x, // where do we start the source pull from? - face.y, SIZE, SIZE, // Drawing args - face.x, face.y, face.width, face.height); -} - -populateVideo().then(detect); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/1a/b67078f0b60207aee20d7cfe811840.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/1a/b67078f0b60207aee20d7cfe811840.v8 deleted file mode 100644 index e211e90ee69abe60ea88259820c1e8d11da388d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45436 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 diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/1a/ca5de7f07d46e479945f42c19f9645.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/1a/ca5de7f07d46e479945f42c19f9645.v8 deleted file mode 100644 index a15825aa1ece7640b7e870e304d02133afc280c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11819 zcmchd|7#mZ5XIA2k!4pdX$U3_#)L(LQWD{qQc4IVZA?f)(n6DdA(Xo3(?-5HXl z*~Wi-J5tNMTUhPwOhbP&=AJ(HW@n$~_Vm|IX}W_!eKED>v%}%R@Zf%uPfwHK;qbx3 z*X6uQ?W<&Jt_=oNa`whtTO|41mZmpJrqiq#&%Uin(pJV_0%%G1;ibXQ>v=;=@6mXP`^0gPP zyd^A|qhv-f1t8g1!$`@nup#N5#N9RbWP1ugcc6Af%1Bqz9g4e)uiQ(u4^l?@kfwmf zhcpGiXiI^vIt3gh*UD_9^|>bkaJ4i793^vnI|f(Y5U#tUWJVy-AdsewqhwUr&OmL4 zl*};OV_QEdi`t(1CL7$?T{VuBj0;XBN>m>3{plij?|2JA5Ybcw%y-T?|w(g zwKChwCx<8N<^YJKA>b$(=W8)sc}G|_N6C!f8~}-Q&p1kkg$;eBHbhEhw9f&!x3ASi zQZg~@>PI!BEp6cAjhaEqNFOI^M!b)an$ea7+v+56lw2#bxk>`>EC7Wx1{@``eEo$h zZwqVYD47wM1t5?nj-zB$*v>t*9a1u*Wfs7VNuNC&CF8=DzEfMGf=4o>-_!6x%1Fk` z|G~%iYDQZE^wkOAD7jXqzf6E5TdzBGf=n6%j*@}CCc~8jVc{HQB;yM;gOtoL-LtG1 zm1mx(DBRSc8bwM*g-iC0nn6ltnEun)K6tDKl9GX8Q@^Si%{2-$q(=f+*7!}@I1)I< zIsI{D75)%b;d(P1f(++M(Yu8kUWVD3mecw2wZzYB-Z6l~q_);#s~1r-<+o6062B^>o9c9bPYc9Eslcm5Bcbku_>QZg`X>aE&Tvv8(Q zr)59QZ1rmCE!f}ExQ8iHMw+TWh^cVl7HS45*~j{q!SGE{DC)ai4xgToMAv@+lCN%X zBRy?~8&Y!J!i-(D4^jphxEtxJpaRYH_xS*$EA#`e8Hq`3`Ts5Nsmb|KDIsHpjOgj(tUp$Z>D82D|72vdnlw^=FWd$QI$pC z1Adk-0^mnF&w$aKXUs-kj)Qf(srEuj-kf1C(g1*$WtOy7^~@HaHTSv T|NJ<6R(gJ(eQ@~^ncw&uCO+^8 diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/1b/0e4e0f3f67b246cf3cdabe940a29e3.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/1b/0e4e0f3f67b246cf3cdabe940a29e3.v8 deleted file mode 100644 index bbc65af8dc15a89b232114a1bf94be05ccab39a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105 zcmey*o3F&CqEb>>kg6nUq-UUKpqrRekddfoq-SUqoL^d$oa&ocpv0=8Qj}O8qQqL3 zm{XdXuf&m?SWu9emtO41pu)hQ#9jIeAUyy8 diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/1b/26f8c1fc588c9bba17f216f9967a56.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/1b/26f8c1fc588c9bba17f216f9967a56.v8 deleted file mode 100644 index 94f1551ddc8fe29beb4247a931575a06e4f16ce4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10989 zcmchd|7%l86vbWJrm>`=BE^*=G6WIP&@Icdh%A07vM#zTt1kW^)-f5AS6<$W$xB=5 zAFsFF<(>&lX69a2e=8-YpLgz^duHaPUp8yg>UNvY6K8(h?d|k-?%8rOvc28jPxoKe z^J(9`uoJV^?N05{E3euCbTs=E?LO;*W{+ziyDUMxv`nh`_ZQu0{W~NMfiu(+YSY6dBpVKzU_-SqQISGs;vPou7SY9c9_ z7zN@lQ87ZWI6>v+)=wCWu`0Xgu+#R<({j3kTTPUGzBz1 zq$vPKDg_okDLM+Y!zr-RZ;k^I0FE>Qz)3{_7*~XS2ZNN{_ei1vB~2Tk{Im%L02p1h z9a6&1#?UoS>Z)BnM}UIaSf z>EAfLIXqc*4ggLX0>Gt00F0Z$vVlQLZh!PP0GM=U087mb7{90ukrIZIw*e4;RTD|c z#847|@wb|hU%6Lm1}QUrd{8s;eGJr$R1$3X^DH_CT=bP(E3GEPn^)WfN@uChm^1rKMMdSy?eltfA@%6daSmTUpDDJ4IiZB zvc-Ko{|-L>R5MZufE|fGDN2AV;RNWMCcvI+mc4WWkcL?aBxSTYV06_CQf4yls2QYW zhG`uY)u28K+@fG-SB)YiqeAN$jNjA@QZmDIp60HDhiV`x85lS9M$Pbh6lX|Z34{kI z&hTCd?BhNCer6Tk3#+gd9P!W-Uh+RFn(Ax5l6{!XNj;gLel79OlJ6Kmq|3XKNJ=Kg zUC}P8WKgVTGNi+e%B6;TVWo+DT<7krdOqk+G*f5Cfvf`RlCWezkuq8`Ft*hUQZmC_ zsO(`ewBc__Kr?C@DVY{pXkh%TW{{E@rZaZM!0x%jqVGcQ<^hymFVQCddKot*J-&e9 z7tVC(P1fs~o4#;^!baELU+OB7lB*auHBvKtQ*p+Dnn6nTvHXkLt32KmQ=(wlW@TGQ zqR;;iq)^@9M!F@yO=?R3V@vIWlwNO+ia|39tmcKyS6Q)zyX;z;Bt4R&Zayj08@SQe zEp;RZLwfs%kK0~v;y$Fi0T>JYZ;f0r9ED!ZV}I8V=fb9tgVL`69~G(`?9e-K<$8XY z=nfdtlL5N3mtbIX(znH50ijyqX`~E1oxcOb87*Nyz)0<6@F7ioFcuD;>;1Z#)ujvM zXELWj&16?W)=fDS1bWdyytHye#x)`2_@J zlSTkg{^cNUhqjAv)P6jTbU7Pd&gZ?hn8@gKSs`WJ@|Dpg0LDdO&A=cfGnOr9aHJPd za8eggFr0%qIB~Fk(5jft!glK)g3x>)jfA$*8lzY(peq&2h*LCALvn5 Fz5)R~;(q`D diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/1b/8e52ecaa713f759c2786d055f63699.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/1b/8e52ecaa713f759c2786d055f63699.blob deleted file mode 100644 index eb3ff85db..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/1b/8e52ecaa713f759c2786d055f63699.blob +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/1c/24ba9ada253fa132ecdde27b5f0f0a.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/1c/24ba9ada253fa132ecdde27b5f0f0a.v8 deleted file mode 100644 index 18f2d55597dfb0003087a122630300e991280531..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcma)4O>Yx16imW4NlSZa1?SZh;uf;sn}rLgbVUSING&%m{&-GYZS2MNrV07yT)+)c z&iLk;dG^fMe=a`sH4G$&u!u<&WkrfP%}GM5ip>fURaKgZBrnShf+ev_2>C3JqY8^G ziy2FEv8>hkPQu=FNkJGim2m@39)jexn+xu!g{G zTZF-rf@$SYxzD(TkmfU1A;wuuOOXm%2$t}a#wo2zj&TCR6>0a%IE~VoPf1CXl!eG+ zEVDd|M2?I^eiqI-wx~ENCeglo+k*?KSkrOjwU53>yq`PW8HV?8raRYm?$iIZ_YBoq z!)Wh(<6uOMe)J{62$gRSt%mUdvLu-I;6+2M3*+#5Y4i%iweQ}V+3^4X diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/1c/34e7dc4a9c011b2d4136e5d47556cd.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/1c/34e7dc4a9c011b2d4136e5d47556cd.blob deleted file mode 100644 index bdd3f5622..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/1c/34e7dc4a9c011b2d4136e5d47556cd.blob +++ /dev/null @@ -1,400 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/1c/eca3a75fcaba628ca30710389715e7.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/1c/eca3a75fcaba628ca30710389715e7.blob deleted file mode 100644 index 14077d713..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/1c/eca3a75fcaba628ca30710389715e7.blob +++ /dev/null @@ -1,67 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('.face'); -const faceCtx = faceCanvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); -const SIZE = 10; -const SCALE = 1.5; // Write a fucntion that will populate the users video - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - video.srcObject = stream; - await video.play(); // size the canvases to be the same size as the video - - console.log(video.videoWidth, video.videoHeight); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - faceCanvas.width = video.videoWidth; - faceCanvas.height = video.videoHeight; -} - -async function detect() { - const faces = await faceDetector.detect(video); // ask the browser when the next animation frame is, and tell it to run detect for us - - faces.forEach(drawFace); - faces.forEach(censor); - requestAnimationFrame(detect); -} - -function drawFace(face) { - const { - width, - height, - top, - left - } = face.boundingBox; - ctx.clearRect(0, 0, canvas.width, canvas.height); - ctx.strokeStyle = '#ffc600'; - ctx.lineWidth = 2; - ctx.strokeRect(left, top, width, height); -} - -function censor({ - boundingBox: face -}) { - faceCtx.imageSmoothingEnabled = false; - faceCtx.clearRect(0, 0, faceCanvas.width, faceCanvas.height); // draw the small face - - faceCtx.drawImage( // 5 source args - video, // where does the source come from? - face.x, // where do we start the source pull from? - face.y, face.width, face.height, // 4 draw args - face.x, // where should we start drawing the x and y? - face.y, SIZE, SIZE); // draw the small face back on, but scale up - - faceCtx.drawImage(faceCanvas, // source - face.x, // where do we start the source pull from? - face.y, SIZE, SIZE, // Drawing args - face.x, face.y, face.width, face.height); -} - -populateVideo().then(detect); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/1d/d34e0331d33e8f5379e3fa6fceac6b.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/1d/d34e0331d33e8f5379e3fa6fceac6b.blob deleted file mode 100644 index 1e433efbd..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/1d/d34e0331d33e8f5379e3fa6fceac6b.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["video","document","querySelector","canvas","ctx","getContext","faceCanvas","faceCtx","faceDetector","window","FaceDetector","populateVideo","stream","navigator","meidaDevices","getUserMedia","width","height","console","log","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","forEach","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","clear","hmrApply","v","hmrAcceptRun","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":"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","file":"pixelated-face.ad67e403.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/1e/4f757fdaebcc893cbada131ecd143e.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/1e/4f757fdaebcc893cbada131ecd143e.blob deleted file mode 100644 index 81c069304..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/1e/4f757fdaebcc893cbada131ecd143e.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["video","document","querySelector","canvas","ctx","getContext","faceCanvas","faceCtx","faceDetector","window","FaceDetector","SIZE","SCALE","populateVideo","stream","navigator","mediaDevices","getUserMedia","width","height","srcObject","play","console","log","videoWidth","videoHeight","detect","faces","forEach","drawFace","censor","requestAnimationFrame","face","top","left","boundingBox","clearRect","strokeStyle","lineWidth","strokeRect","imageSmoothingEnabled","drawImage","x","y","then","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","clear","hmrApply","v","hmrAcceptRun","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAMA,KAAK,GAAGC,QAAQ,CAACC,aAAT,CAAuB,SAAvB,CAAd;AACA,MAAMC,MAAM,GAAGF,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAAf;AACA,MAAME,GAAG,GAAGD,MAAM,CAACE,UAAP,CAAkB,IAAlB,CAAZ;AACA,MAAMC,UAAU,GAAGL,QAAQ,CAACC,aAAT,CAAuB,OAAvB,CAAnB;AACA,MAAMK,OAAO,GAAGD,UAAU,CAACD,UAAX,CAAsB,IAAtB,CAAhB;AACA,MAAMG,YAAY,GAAG,IAAIC,MAAM,CAACC,YAAX,EAArB;AACA,MAAMC,IAAI,GAAG,GAAb;AACA,MAAMC,KAAK,GAAG,CAAd,C,CAEA;;AACA,eAAeC,aAAf,GAA+B;AAC7B,QAAMC,MAAM,GAAG,MAAMC,SAAS,CAACC,YAAV,CAAuBC,YAAvB,CAAoC;AACvDjB,IAAAA,KAAK,EAAE;AAAEkB,MAAAA,KAAK,EAAE,IAAT;AAAeC,MAAAA,MAAM,EAAE;AAAvB;AADgD,GAApC,CAArB;AAGAnB,EAAAA,KAAK,CAACoB,SAAN,GAAkBN,MAAlB;AACA,QAAMd,KAAK,CAACqB,IAAN,EAAN,CAL6B,CAM7B;;AACAC,EAAAA,OAAO,CAACC,GAAR,CAAYvB,KAAK,CAACwB,UAAlB,EAA8BxB,KAAK,CAACyB,WAApC;AACAtB,EAAAA,MAAM,CAACe,KAAP,GAAelB,KAAK,CAACwB,UAArB;AACArB,EAAAA,MAAM,CAACgB,MAAP,GAAgBnB,KAAK,CAACyB,WAAtB;AACAnB,EAAAA,UAAU,CAACY,KAAX,GAAmBlB,KAAK,CAACwB,UAAzB;AACAlB,EAAAA,UAAU,CAACa,MAAX,GAAoBnB,KAAK,CAACyB,WAA1B;AACD;;AAED,eAAeC,MAAf,GAAwB;AACtB,QAAMC,KAAK,GAAG,MAAMnB,YAAY,CAACkB,MAAb,CAAoB1B,KAApB,CAApB,CADsB,CAEtB;;AACA2B,EAAAA,KAAK,CAACC,OAAN,CAAcC,QAAd;AACAF,EAAAA,KAAK,CAACC,OAAN,CAAcE,MAAd;AACAC,EAAAA,qBAAqB,CAACL,MAAD,CAArB;AACD;;AAED,SAASG,QAAT,CAAkBG,IAAlB,EAAwB;AACtB,QAAM;AAAEd,IAAAA,KAAF;AAASC,IAAAA,MAAT;AAAiBc,IAAAA,GAAjB;AAAsBC,IAAAA;AAAtB,MAA+BF,IAAI,CAACG,WAA1C;AACA/B,EAAAA,GAAG,CAACgC,SAAJ,CAAc,CAAd,EAAiB,CAAjB,EAAoBjC,MAAM,CAACe,KAA3B,EAAkCf,MAAM,CAACgB,MAAzC;AACAf,EAAAA,GAAG,CAACiC,WAAJ,GAAkB,SAAlB;AACAjC,EAAAA,GAAG,CAACkC,SAAJ,GAAgB,CAAhB;AACAlC,EAAAA,GAAG,CAACmC,UAAJ,CAAeL,IAAf,EAAqBD,GAArB,EAA0Bf,KAA1B,EAAiCC,MAAjC;AACD;;AAED,SAASW,MAAT,CAAgB;AAAEK,EAAAA,WAAW,EAAEH;AAAf,CAAhB,EAAuC;AACrCzB,EAAAA,OAAO,CAACiC,qBAAR,GAAgC,KAAhC;AACAjC,EAAAA,OAAO,CAAC6B,SAAR,CAAkB,CAAlB,EAAqB,CAArB,EAAwB9B,UAAU,CAACY,KAAnC,EAA0CZ,UAAU,CAACa,MAArD,EAFqC,CAGrC;;AACAZ,EAAAA,OAAO,CAACkC,SAAR,EACE;AACAzC,EAAAA,KAFF,EAES;AACPgC,EAAAA,IAAI,CAACU,CAHP,EAGU;AACRV,EAAAA,IAAI,CAACW,CAJP,EAKEX,IAAI,CAACd,KALP,EAMEc,IAAI,CAACb,MANP,EAOE;AACAa,EAAAA,IAAI,CAACU,CARP,EAQU;AACRV,EAAAA,IAAI,CAACW,CATP,EAUEhC,IAVF,EAWEA,IAXF,EAJqC,CAiBrC;;AAEA,QAAMO,KAAK,GAAGc,IAAI,CAACd,KAAL,GAAaN,KAA3B;AACA,QAAMO,MAAM,GAAGa,IAAI,CAACb,MAAL,GAAcP,KAA7B;AACAL,EAAAA,OAAO,CAACkC,SAAR,CACEnC,UADF,EACc;AACZ0B,EAAAA,IAAI,CAACU,CAFP,EAEU;AACRV,EAAAA,IAAI,CAACW,CAHP,EAIEhC,IAJF,EAKEA,IALF,EAME;AACAqB,EAAAA,IAAI,CAACU,CAAL,GAAS,CAACxB,KAAK,GAAGc,IAAI,CAACd,KAAd,IAAuB,CAPlC,EAQEc,IAAI,CAACW,CAAL,GAAS,CAACxB,MAAM,GAAGa,IAAI,CAACb,MAAf,IAAyB,CARpC,EASED,KATF,EAUEC,MAVF;AAYD;;AAEDN,aAAa,GAAG+B,IAAhB,CAAqBlB,MAArB;;AC3EA,IAAImB,qBAAqB,GAAG,kCAA5B;AAA+D,IAAIC,UAAU,GAAG,4BAAjB;AAE/D,IAAIC,SAAS,GAAGC,MAAM,CAACC,MAAP,CAAcC,MAA9B;;AAEA,SAASA,MAAT,CAAgBC,UAAhB,EAA4B;AAC1BJ,EAAAA,SAAS,CAACK,IAAV,CAAe,IAAf,EAAqBD,UAArB;AACA,OAAKE,GAAL,GAAW;AACTC,IAAAA,IAAI,EAAEN,MAAM,CAACC,MAAP,CAAcM,OADX;AAETC,IAAAA,gBAAgB,EAAE,EAFT;AAGTC,IAAAA,iBAAiB,EAAE,EAHV;AAITC,IAAAA,MAAM,EAAE,UAASC,EAAT,EAAa;AACnB,WAAKH,gBAAL,CAAsBI,IAAtB,CAA2BD,EAAE,IAAI,YAAW,CAAE,CAA9C;AACD,KANQ;AAOTE,IAAAA,OAAO,EAAE,UAASF,EAAT,EAAa;AACpB,WAAKF,iBAAL,CAAuBG,IAAvB,CAA4BD,EAA5B;AACD;AATQ,GAAX;AAYAX,EAAAA,MAAM,CAACC,MAAP,CAAcM,OAAd,GAAwB,IAAxB;AACD;;AAEDP,MAAM,CAACC,MAAP,CAAcC,MAAd,GAAuBA,MAAvB;AACA,IAAIY,aAAJ,EAAmBC,cAAnB;AAEA,IAAIC,MAAM,GAAGhB,MAAM,CAACC,MAAP,CAAce,MAA3B;;AACA,IAAI,CAAC,CAACA,MAAD,IAAW,CAACA,MAAM,CAACC,eAApB,KAAwC,OAAOC,SAAP,KAAqB,WAAjE,EAA8E;AAC5E,MAAIC,QAAQ,GAAG,MAA4BC,QAAQ,CAACD,QAApD;AACA,MAAIE,QAAQ,GAAGD,QAAQ,CAACC,QAAT,KAAsB,QAAtB,GAAiC,KAAjC,GAAyC,IAAxD;AACA,MAAIC,EAAE,GAAG,IAAIJ,SAAJ,CACPG,QAAQ,GAAG,KAAX,GAAmBF,QAAnB,GAA8B,GAA9B,aAA2D,GADpD,CAAT;;AAGAG,EAAAA,EAAE,CAACC,SAAH,GAAe,UAASC,KAAT,EAAgB;AAC7BV,IAAAA,aAAa,GAAG,EAAhB;AACAC,IAAAA,cAAc,GAAG,EAAjB;AAEA,QAAIT,IAAI,GAAGmB,IAAI,CAACC,KAAL,CAAWF,KAAK,CAAClB,IAAjB,CAAX;;AAEA,QAAIA,IAAI,CAACqB,IAAL,KAAc,QAAlB,EAA4B;AAC1B;AACAC,MAAAA,kBAAkB;AAElB,UAAIC,MAAM,GAAGvB,IAAI,CAACuB,MAAL,CAAYC,MAAZ,EACX;AACAC,MAAAA,KAAK,IAAIA,KAAK,CAACC,OAAN,KAAkBnC,qBAFhB,CAAb,CAJ0B,CAS1B;;AACA,UAAIoC,OAAO,GAAG,KAAd;AACAJ,MAAAA,MAAM,CAACjD,OAAP,CAAemD,KAAK,IAAI;AACtB,YAAI,CAACA,KAAK,CAACG,KAAX,EAAkB;AAChB,cAAIC,SAAS,GAAGC,cAAc,CAACC,MAAM,CAACC,aAAR,EAAuBP,KAAK,CAACQ,EAA7B,CAA9B;;AACA,cAAIJ,SAAJ,EAAe;AACbF,YAAAA,OAAO,GAAG,IAAV;AACD;AACF;AACF,OAPD;;AASA,UAAIA,OAAJ,EAAa;AACX3D,QAAAA,OAAO,CAACkE,KAAR;AAEAX,QAAAA,MAAM,CAACjD,OAAP,CAAe,UAASmD,KAAT,EAAgB;AAC7BU,UAAAA,QAAQ,CAACJ,MAAM,CAACC,aAAR,EAAuBP,KAAvB,CAAR;AACD,SAFD;AAIAhB,QAAAA,cAAc,CAACnC,OAAf,CAAuB,UAAS8D,CAAT,EAAY;AACjCC,UAAAA,YAAY,CAACD,CAAC,CAAC,CAAD,CAAF,EAAOA,CAAC,CAAC,CAAD,CAAR,CAAZ;AACD,SAFD;AAGD,OAVD,MAUO;AACLjF,QAAAA,MAAM,CAAC2D,QAAP,CAAgBwB,MAAhB;AACD;AACF;;AAED,QAAItC,IAAI,CAACqB,IAAL,KAAc,OAAlB,EAA2B;AACzBrD,MAAAA,OAAO,CAACuE,KAAR,CACE,kBAAkBvC,IAAI,CAACwC,SAAL,CAAeC,OAAjC,GAA2C,IAA3C,GAAkDzC,IAAI,CAACwC,SAAL,CAAeE,KADnE;AAIApB,MAAAA,kBAAkB;AAElB,UAAIqB,OAAO,GAAGC,kBAAkB,CAAC5C,IAAD,CAAhC;AACArD,MAAAA,QAAQ,CAACkG,IAAT,CAAcC,WAAd,CAA0BH,OAA1B;AACD;AACF,GAnDD;AAoDD;;AAED,SAASrB,kBAAT,GAA8B;AAC5B,MAAIqB,OAAO,GAAGhG,QAAQ,CAACoG,cAAT,CAAwBvD,UAAxB,CAAd;;AACA,MAAImD,OAAJ,EAAa;AACXA,IAAAA,OAAO,CAACK,MAAR;AACAhF,IAAAA,OAAO,CAACC,GAAR,CAAY,2BAAZ;AACD;AACF;;AAED,SAAS2E,kBAAT,CAA4B5C,IAA5B,EAAkC;AAChC,MAAI2C,OAAO,GAAGhG,QAAQ,CAACsG,aAAT,CAAuB,KAAvB,CAAd;AACAN,EAAAA,OAAO,CAACV,EAAR,GAAazC,UAAb,CAFgC,CAIhC;;AACA,MAAIiD,OAAO,GAAG9F,QAAQ,CAACsG,aAAT,CAAuB,KAAvB,CAAd;AACA,MAAIC,UAAU,GAAGvG,QAAQ,CAACsG,aAAT,CAAuB,KAAvB,CAAjB;AACAR,EAAAA,OAAO,CAACU,SAAR,GAAoBnD,IAAI,CAACoD,SAAL,CAAeX,OAAnC;AACAS,EAAAA,UAAU,CAACC,SAAX,GAAuBnD,IAAI,CAACoD,SAAL,CAAeV,KAAtC;AAEAC,EAAAA,OAAO,CAACQ,SAAR,GACE,2NACA,mFADA,GAEA,yEAFA,GAGA,qEAHA,GAIAV,OAAO,CAACU,SAJR,GAKA,QALA,GAMA,OANA,GAOAD,UAAU,CAACC,SAPX,GAQA,QARA,GASA,QAVF;AAYA,SAAOR,OAAP;AACD;;AAED,SAASU,UAAT,CAAoB1D,MAApB,EAA4BsC,EAA5B,EAAgC;AAC9B,MAAIqB,OAAO,GAAG3D,MAAM,CAAC2D,OAArB;;AACA,MAAI,CAACA,OAAL,EAAc;AACZ,WAAO,EAAP;AACD;;AAED,MAAIC,OAAO,GAAG,EAAd;AACA,MAAIC,CAAJ,EAAOC,CAAP,EAAUC,GAAV;;AAEA,OAAKF,CAAL,IAAUF,OAAV,EAAmB;AACjB,SAAKG,CAAL,IAAUH,OAAO,CAACE,CAAD,CAAP,CAAW,CAAX,CAAV,EAAyB;AACvBE,MAAAA,GAAG,GAAGJ,OAAO,CAACE,CAAD,CAAP,CAAW,CAAX,EAAcC,CAAd,CAAN;;AAEA,UAAIC,GAAG,KAAKzB,EAAR,IAAe0B,KAAK,CAACC,OAAN,CAAcF,GAAd,KAAsBA,GAAG,CAACA,GAAG,CAACG,MAAJ,GAAa,CAAd,CAAH,KAAwB5B,EAAjE,EAAsE;AACpEsB,QAAAA,OAAO,CAACjD,IAAR,CAAakD,CAAb;AACD;AACF;AACF;;AAED,MAAI7D,MAAM,CAACe,MAAX,EAAmB;AACjB6C,IAAAA,OAAO,GAAGA,OAAO,CAACO,MAAR,CAAeT,UAAU,CAAC1D,MAAM,CAACe,MAAR,EAAgBuB,EAAhB,CAAzB,CAAV;AACD;;AAED,SAAOsB,OAAP;AACD;;AAED,SAASpB,QAAT,CAAkBxC,MAAlB,EAA0B8B,KAA1B,EAAiC;AAC/B,MAAI6B,OAAO,GAAG3D,MAAM,CAAC2D,OAArB;;AACA,MAAI,CAACA,OAAL,EAAc;AACZ;AACD;;AAED,MAAIA,OAAO,CAAC7B,KAAK,CAACQ,EAAP,CAAP,IAAqB,CAACtC,MAAM,CAACe,MAAjC,EAAyC;AACvC,QAAIL,EAAE,GAAG,IAAI0D,QAAJ,CAAa,SAAb,EAAwB,QAAxB,EAAkC,SAAlC,EAA6CtC,KAAK,CAACuC,MAAnD,CAAT;AACAvC,IAAAA,KAAK,CAACG,KAAN,GAAc,CAAC0B,OAAO,CAAC7B,KAAK,CAACQ,EAAP,CAAtB;AACAqB,IAAAA,OAAO,CAAC7B,KAAK,CAACQ,EAAP,CAAP,GAAoB,CAAC5B,EAAD,EAAKoB,KAAK,CAACwC,IAAX,CAApB;AACD,GAJD,MAIO,IAAItE,MAAM,CAACe,MAAX,EAAmB;AACxByB,IAAAA,QAAQ,CAACxC,MAAM,CAACe,MAAR,EAAgBe,KAAhB,CAAR;AACD;AACF;;AAED,SAASK,cAAT,CAAwBnC,MAAxB,EAAgCsC,EAAhC,EAAoC;AAClC,MAAIqB,OAAO,GAAG3D,MAAM,CAAC2D,OAArB;;AAEA,MAAI,CAACA,OAAL,EAAc;AACZ;AACD;;AAED,MAAI,CAACA,OAAO,CAACrB,EAAD,CAAR,IAAgBtC,MAAM,CAACe,MAA3B,EAAmC;AACjC,WAAOoB,cAAc,CAACnC,MAAM,CAACe,MAAR,EAAgBuB,EAAhB,CAArB;AACD;;AAED,MAAIzB,aAAa,CAACyB,EAAD,CAAjB,EAAuB;AACrB;AACD;;AAEDzB,EAAAA,aAAa,CAACyB,EAAD,CAAb,GAAoB,IAApB;AAEA,MAAIiC,MAAM,GAAGvE,MAAM,CAACwE,KAAP,CAAalC,EAAb,CAAb;AAEAxB,EAAAA,cAAc,CAACH,IAAf,CAAoB,CAACX,MAAD,EAASsC,EAAT,CAApB;;AAEA,MAAIiC,MAAM,IAAIA,MAAM,CAACnE,GAAjB,IAAwBmE,MAAM,CAACnE,GAAP,CAAWG,gBAAX,CAA4B2D,MAAxD,EAAgE;AAC9D,WAAO,IAAP;AACD;;AAED,SAAOR,UAAU,CAACtB,MAAM,CAACC,aAAR,EAAuBC,EAAvB,CAAV,CAAqCmC,IAArC,CAA0C,UAASnC,EAAT,EAAa;AAC5D,WAAOH,cAAc,CAACC,MAAM,CAACC,aAAR,EAAuBC,EAAvB,CAArB;AACD,GAFM,CAAP;AAGD;;AAED,SAASI,YAAT,CAAsB1C,MAAtB,EAA8BsC,EAA9B,EAAkC;AAChC,MAAIiC,MAAM,GAAGvE,MAAM,CAACwE,KAAP,CAAalC,EAAb,CAAb;AACAtC,EAAAA,MAAM,CAACM,OAAP,GAAiB,EAAjB;;AACA,MAAIiE,MAAJ,EAAY;AACVA,IAAAA,MAAM,CAACnE,GAAP,CAAWC,IAAX,GAAkBL,MAAM,CAACM,OAAzB;AACD;;AAED,MAAIiE,MAAM,IAAIA,MAAM,CAACnE,GAAjB,IAAwBmE,MAAM,CAACnE,GAAP,CAAWI,iBAAX,CAA6B0D,MAAzD,EAAiE;AAC/DK,IAAAA,MAAM,CAACnE,GAAP,CAAWI,iBAAX,CAA6B7B,OAA7B,CAAqC,UAAS+F,EAAT,EAAa;AAChDA,MAAAA,EAAE,CAAC1E,MAAM,CAACM,OAAR,CAAF;AACD,KAFD;AAGD;;AAED,SAAON,MAAM,CAACwE,KAAP,CAAalC,EAAb,CAAP;AACAtC,EAAAA,MAAM,CAACsC,EAAD,CAAN;AAEAiC,EAAAA,MAAM,GAAGvE,MAAM,CAACwE,KAAP,CAAalC,EAAb,CAAT;;AACA,MAAIiC,MAAM,IAAIA,MAAM,CAACnE,GAAjB,IAAwBmE,MAAM,CAACnE,GAAP,CAAWG,gBAAX,CAA4B2D,MAAxD,EAAgE;AAC9DK,IAAAA,MAAM,CAACnE,GAAP,CAAWG,gBAAX,CAA4B5B,OAA5B,CAAoC,UAAS+F,EAAT,EAAa;AAC/CA,MAAAA,EAAE;AACH,KAFD;;AAGA,WAAO,IAAP;AACD;AACF","file":"pixelated-face.71317260.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/1f/0c3fa247244554961a4d0ab42fed5e.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/1f/0c3fa247244554961a4d0ab42fed5e.v8 deleted file mode 100644 index a7834814c2d4bf936f71e5678e7767ddac0f0591..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcma)4O>Yx16imamNlSa62+pe~t|j{sZ(_KBN>@Zch17E6@@&6tTy5;F?M)N%Z}_9I z4N=bc=9#hI%-DaV<2@=b(**L9!|8MdAr3*7lHN=z_V@z0rlx93-xlH7Qgk-EzoJo#ww7_PorGt_Nq@$huXe$}ajA>HOT-)=9dB6WfNS4WIw7y=P>W z76x1As{jMx>|<9V49Iltk+(41K^~)74_?*iL!8E!b7vP6FT1|G=4Smpaf1~)y(c1g zy*p8AN0nXenIm|)W3JTQ{-zI6v^jwDUBGLr=$ln-m+}@){{<_pTVQ~ryV?q@;aK~x zS~zs;a&rjLf&$u24-S36(7BI-UeI-Kw;=NR7tMaZ*z{rG*9&3mZGF$ZR&-TW-9P9C S9k)h5wDj~iz0LWX-oan7JlVPc diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/1f/82a7cc5dfdad6195655d36a3ab5341.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/1f/82a7cc5dfdad6195655d36a3ab5341.blob deleted file mode 100644 index c36f1a7c9..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/1f/82a7cc5dfdad6195655d36a3ab5341.blob +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/1f/b6044d7ff901bf850e0316dd94324a.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/1f/b6044d7ff901bf850e0316dd94324a.blob deleted file mode 100644 index 9e4630657..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/1f/b6044d7ff901bf850e0316dd94324a.blob +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/1f/d43e42c3b02ec4a919c064133c7f59.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/1f/d43e42c3b02ec4a919c064133c7f59.blob deleted file mode 100644 index 52148e071..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/1f/d43e42c3b02ec4a919c064133c7f59.blob +++ /dev/null @@ -1,399 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/21/b8b311f44f2832943693723af32da6.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/21/b8b311f44f2832943693723af32da6.blob deleted file mode 100644 index a4ea96710..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/21/b8b311f44f2832943693723af32da6.blob +++ /dev/null @@ -1,18 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('.face'); -const faceCtx = canvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); // Write a fucntion that will populate the users video - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: true - }); - video.srcObject = stream; - await video.play(); // size the canvases to be the same size as the video - - console.log(video.videoWidth, video.videoHeight); -} - -populateVideo(); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/21/cdf2486557ac9a9fd8658fdd6e2158.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/21/cdf2486557ac9a9fd8658fdd6e2158.v8 deleted file mode 100644 index 6eb7a94ac2b250d654717190f981edb8724e6475..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14346 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 Rz&-WiduUL>f*RIv^S`lsV!r?Y diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/22/57710e28688dd6cb28c807849ada13.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/22/57710e28688dd6cb28c807849ada13.blob deleted file mode 100644 index f7fd406f9..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/22/57710e28688dd6cb28c807849ada13.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["video","document","querySelector","canvas","ctx","getContext","faceCanvas","faceCtx","faceDetector","window","FaceDetector","populateVideo","stream","navigator","mediaDevices","getUserMedia","width","height","srcObject","play","console","log","videoWidth","videoHeight","detect","faces","then","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","forEach","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","clear","hmrApply","v","hmrAcceptRun","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":"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","file":"pixelated-face.4bd70ac7.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/22/baae1aea5f948ac8545905e55568df.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/22/baae1aea5f948ac8545905e55568df.v8 deleted file mode 100644 index ecdf0f589d8c6501058a2cb68fd2b91dd48924de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41574 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 szjP2#T6-Nhp7U?1Arof{=45~-4u zV^`S6zVrv|b06|6iv1UT?SE;{P!vsF?2(el*lmLVcE~w%X3qJ}Idi^Y{&PP@JBNqa z)j*(M;ilfy8>Bbrk|u5%?cWX~-V?t|$e@e14-XUa`WS6rkls+l=;L#mzkL!%nTWD4 zNZJ+YBlPR>({^Bb24|jO5C=1AG2$@CA=tDm;=7KgBh4~|Fqo_RzK#iTEyIGbE;R(U zJ>dzvoXRnXuUn2OY-$rseV=(w0AeN%uttW&$agLck4 z(jwP(`()N`Rg0aL7Tb5TH;b9EKEh(vQ4d_9TO(Bry>(93*$(8 zBBC@-(r!3t1@NZX&HBCZLheLWvCRiF+bVX9PS>$LFyr}HUl8`h8ZEePErs#+uQ#)9 zyJ>_927v*{cXW<1H(loYzTq<`5CJCE7&^*fla+HZ5D@^4U6n!cpda&LPkcK;_T`mGL>}6;tBS}X<7}g`wuRP!7VVXS+6ZEI|h{ooCBuw-gjIgd~Ne$@U zU`Tr*dy(|eMhk6;=pshDOlH%|4DHe+ehs0Hc0~j+F47q76_3)#b@WM(q?u-DPr6Cm z7up5n1c>hP@wX%(NmxGqv>1IHCL)M0%jX{z&!6#5ImcnGKH5MZh7s!xx%e6~)>pZM z(o=L053|8AJC2h+0rPcwF(o~8FHFA-X+n~#j z@u-G&)2lv>d+DQgZL|lms~Lesux)UMLSdk~aIx;$*dmT@dz{#2fkD-<0)yKmO~oX| zE-l)H>V`BDK=la(2}~g@i<(freCklwbZigXzKix`hWUnM-8G?jKTJ>3xJNR+$R=^4Ip>77uF-)}6Cj%IHjthA(}bU%%U5Y>+*qE5IPsc3&J zuttQ)BZbm;sJ6zH^Z8I<};d9Sm!o&-_|539w z2roqr&PIN=c=-+M6`71=>7kz-Yb@?8K_#>IA;kql~XJq!Ed>ze%Y=f5AJ zdK&&!oc!}(v{@}v=z}!m;#m;D85_#vybQzxry6!kom7jC>!fcu4m52#F$5#7%MC&GfI({p<%3`gS1|TajpMSO++O{* zWXYK-ex~j+f(7$!ZWBisR42sN4L_i|Y1tOJsra>PbK%xhFY~4-T2b`Y;7}S?6&#gQ zl(Q*u9pBYmOXs{AkAGAHeQAPW{y1=Z1aHEDVJd)0U;uYy5JPvlPF!rc!Uyuk zq$bu4kBLbDBh7{U0^Nb^g%&*GveIT#GsIBQ!Lz=IFnJ&i+;xv@3Z(B=bUlv}7@nB8shf$*|!cI4919`4r zbSE!>nHu!SRa@&MA)h>aIZU%KxM~y|Xlo28NRdollU~?~8et~->GZ2&-T9(^bG=nL zHO$o;_F-klWS0CXkY42@kj}T=l+EOVJrN32$S^DR^gWC{+SowbB+C*wxj*0}BaMP} zdnLILUAGu8Ndik=L#I~20$sNSw;hH9%IRohv;{fs)}#Lq+skG>wK~}vG{(0jaG?+n z2W=IFHBOPM$rPYGs46PS*9ip*wA(?>DlbiCj5cBQle-@Ey2rO0JL5&sn%0vVxM;uPBvo~k&91xzT;wE`>_R6gg~s~wa+mw)Xn~JZlT7<4z5^dw zRse;Uk15Ux%Uxk(PbU`(rLTUO`)W$AOftF8e%PMz*>s4j+U`YZK_#d0Y98UR25f3c+Fq_V1z&yb=;n_(DWLYa>Ht@ zL1jblpi9-a-u=ENjs11bTl@CrRW9v{9Og>z&c^;arbl~{_9S7HUR!Q8J<6~cpTXW) zk21#JkDh7REEmA-6>**&dY z*Ues1t~EEKa@6dOmNvx-)2qFtglyGI%E7aHn)Z@Xe05zndub_U%1-%T2Ft x+h@+6t4*(5MDCA8AXrV$a@(ltIjnt-_T_&Wk>6><7pTSmEP;D0xXBuA{TGd62nzrJ diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/24/147b628f1b7d89e8253d558ec518df.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/24/147b628f1b7d89e8253d558ec518df.blob deleted file mode 100644 index d00311d5a..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/24/147b628f1b7d89e8253d558ec518df.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["video","document","querySelector","canvas","ctx","getContext","faceCanvas","faceCtx","faceDetector","window","FaceDetector","SIZE","populateVideo","stream","navigator","mediaDevices","getUserMedia","width","height","srcObject","play","console","log","videoWidth","videoHeight","detect","faces","clearRect","forEach","drawFace","censor","requestAnimationFrame","boundingBox","face","imageSmoothingEnabled","drawImage","x","y","SCALE","top","left","strokeStyle","lineWidth","strokeRect","stroke","then","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","clear","hmrApply","v","hmrAcceptRun","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAMA,KAAK,GAAGC,QAAQ,CAACC,aAAT,CAAuB,SAAvB,CAAd;AACA,MAAMC,MAAM,GAAGF,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAAf;AACA,MAAME,GAAG,GAAGD,MAAM,CAACE,UAAP,CAAkB,IAAlB,CAAZ;AACA,MAAMC,UAAU,GAAGL,QAAQ,CAACC,aAAT,CAAuB,OAAvB,CAAnB;AACA,MAAMK,OAAO,GAAGJ,MAAM,CAACE,UAAP,CAAkB,IAAlB,CAAhB;AACA,MAAMG,YAAY,GAAG,IAAIC,MAAM,CAACC,YAAX,EAArB;AACA,MAAMC,IAAI,GAAG,EAAb,C,CAEA;;AACA,eAAeC,aAAf,GAA+B;AAC7B,QAAMC,MAAM,GAAG,MAAMC,SAAS,CAACC,YAAV,CAAuBC,YAAvB,CAAoC;AACvDhB,IAAAA,KAAK,EAAE;AAAEiB,MAAAA,KAAK,EAAE,IAAT;AAAeC,MAAAA,MAAM,EAAE;AAAvB;AADgD,GAApC,CAArB;AAGAlB,EAAAA,KAAK,CAACmB,SAAN,GAAkBN,MAAlB;AACA,QAAMb,KAAK,CAACoB,IAAN,EAAN,CAL6B,CAM7B;;AACAC,EAAAA,OAAO,CAACC,GAAR,CAAYtB,KAAK,CAACuB,UAAlB,EAA8BvB,KAAK,CAACwB,WAApC;AACArB,EAAAA,MAAM,CAACc,KAAP,GAAejB,KAAK,CAACuB,UAArB;AACApB,EAAAA,MAAM,CAACe,MAAP,GAAgBlB,KAAK,CAACwB,WAAtB;AACAlB,EAAAA,UAAU,CAACW,KAAX,GAAmBjB,KAAK,CAACuB,UAAzB;AACAjB,EAAAA,UAAU,CAACY,MAAX,GAAoBlB,KAAK,CAACwB,WAA1B;AACD;;AACD,eAAeC,MAAf,GAAwB;AACtB,QAAMC,KAAK,GAAG,MAAMlB,YAAY,CAACiB,MAAb,CAAoBzB,KAApB,CAApB,CADsB,CAEtB;;AACAI,EAAAA,GAAG,CAACuB,SAAJ,CAAc,CAAd,EAAiB,CAAjB,EAAoBxB,MAAM,CAACc,KAA3B,EAAkCd,MAAM,CAACe,MAAzC,EAHsB,CAItB;;AACAQ,EAAAA,KAAK,CAACE,OAAN,CAAcC,QAAd;AACAH,EAAAA,KAAK,CAACE,OAAN,CAAcE,MAAd;AACAC,EAAAA,qBAAqB,CAACN,MAAD,CAArB;AACD;;AAED,SAASK,MAAT,CAAgB;AAAEE,EAAAA,WAAW,EAAEC;AAAf,CAAhB,EAAuC;AACrC1B,EAAAA,OAAO,CAAC2B,qBAAR,GAAgC,KAAhC;AACA3B,EAAAA,OAAO,CAACoB,SAAR,CAAkB,CAAlB,EAAqB,CAArB,EAAwBrB,UAAU,CAACW,KAAnC,EAA0CX,UAAU,CAACY,MAArD,EAFqC,CAGrC;;AACAX,EAAAA,OAAO,CAAC4B,SAAR,CACEnC,KADF,EACS;AACPiC,EAAAA,IAAI,CAACG,CAFP,EAEU;AACRH,EAAAA,IAAI,CAACI,CAHP,EAIEJ,IAAI,CAAChB,KAJP,EAIc;AACZgB,EAAAA,IAAI,CAACf,MALP,EAMEe,IAAI,CAACG,CANP,EAMU;AACRH,EAAAA,IAAI,CAACI,CAPP,EAQE1B,IARF,EAQQ;AACNA,EAAAA,IATF;AAYA,QAAMM,KAAK,GAAGgB,IAAI,CAAChB,KAAL,GAAaqB,KAA3B;AACA,QAAMpB,MAAM,GAAGe,IAAI,CAACf,MAAL,GAAcoB,KAA7B,CAjBqC,CAmBrC;;AACA/B,EAAAA,OAAO,CAAC4B,SAAR,CACE7B,UADF,EACc;AACZ2B,EAAAA,IAAI,CAACG,CAFP,EAEU;AACRH,EAAAA,IAAI,CAACI,CAHP,EAGU;AACR1B,EAAAA,IAJF,EAKEA,IALF,EAME;AACAsB,EAAAA,IAAI,CAACG,CAAL,GAAS,CAACnB,KAAK,GAAGgB,IAAI,CAAChB,KAAd,IAAuB,CAPlC,EAQEgB,IAAI,CAACI,CAAL,GAAS,CAACnB,MAAM,GAAGe,IAAI,CAACf,MAAf,IAAyB,CARpC,EASED,KATF,EAUEC,MAVF;AAYD;;AACD,SAASW,QAAT,CAAkBI,IAAlB,EAAwB;AACtB,QAAM;AAAEhB,IAAAA,KAAF;AAASC,IAAAA,MAAT;AAAiBqB,IAAAA,GAAjB;AAAsBC,IAAAA;AAAtB,MAA+BP,IAAI,CAACD,WAA1C;AACA5B,EAAAA,GAAG,CAACqC,WAAJ,GAAkB,SAAlB;AACArC,EAAAA,GAAG,CAACsC,SAAJ,GAAgB,CAAhB;AACAtC,EAAAA,GAAG,CAACuC,UAAJ,CAAeH,IAAf,EAAqBD,GAArB,EAA0BtB,KAA1B,EAAiCC,MAAjC;AACAd,EAAAA,GAAG,CAACwC,MAAJ;AACD;;AAEDhC,aAAa,GAAGiC,IAAhB,CAAqBpB,MAArB;;ACzEA,IAAIqB,qBAAqB,GAAG,kCAA5B;AAA+D,IAAIC,UAAU,GAAG,4BAAjB;AAE/D,IAAIC,SAAS,GAAGC,MAAM,CAACC,MAAP,CAAcC,MAA9B;;AAEA,SAASA,MAAT,CAAgBC,UAAhB,EAA4B;AAC1BJ,EAAAA,SAAS,CAACK,IAAV,CAAe,IAAf,EAAqBD,UAArB;AACA,OAAKE,GAAL,GAAW;AACTC,IAAAA,IAAI,EAAEN,MAAM,CAACC,MAAP,CAAcM,OADX;AAETC,IAAAA,gBAAgB,EAAE,EAFT;AAGTC,IAAAA,iBAAiB,EAAE,EAHV;AAITC,IAAAA,MAAM,EAAE,UAASC,EAAT,EAAa;AACnB,WAAKH,gBAAL,CAAsBI,IAAtB,CAA2BD,EAAE,IAAI,YAAW,CAAE,CAA9C;AACD,KANQ;AAOTE,IAAAA,OAAO,EAAE,UAASF,EAAT,EAAa;AACpB,WAAKF,iBAAL,CAAuBG,IAAvB,CAA4BD,EAA5B;AACD;AATQ,GAAX;AAYAX,EAAAA,MAAM,CAACC,MAAP,CAAcM,OAAd,GAAwB,IAAxB;AACD;;AAEDP,MAAM,CAACC,MAAP,CAAcC,MAAd,GAAuBA,MAAvB;AACA,IAAIY,aAAJ,EAAmBC,cAAnB;AAEA,IAAIC,MAAM,GAAGhB,MAAM,CAACC,MAAP,CAAce,MAA3B;;AACA,IAAI,CAAC,CAACA,MAAD,IAAW,CAACA,MAAM,CAACC,eAApB,KAAwC,OAAOC,SAAP,KAAqB,WAAjE,EAA8E;AAC5E,MAAIC,QAAQ,GAAG,MAA4BC,QAAQ,CAACD,QAApD;AACA,MAAIE,QAAQ,GAAGD,QAAQ,CAACC,QAAT,KAAsB,QAAtB,GAAiC,KAAjC,GAAyC,IAAxD;AACA,MAAIC,EAAE,GAAG,IAAIJ,SAAJ,CACPG,QAAQ,GAAG,KAAX,GAAmBF,QAAnB,GAA8B,GAA9B,aAA2D,GADpD,CAAT;;AAGAG,EAAAA,EAAE,CAACC,SAAH,GAAe,UAASC,KAAT,EAAgB;AAC7BV,IAAAA,aAAa,GAAG,EAAhB;AACAC,IAAAA,cAAc,GAAG,EAAjB;AAEA,QAAIT,IAAI,GAAGmB,IAAI,CAACC,KAAL,CAAWF,KAAK,CAAClB,IAAjB,CAAX;;AAEA,QAAIA,IAAI,CAACqB,IAAL,KAAc,QAAlB,EAA4B;AAC1B;AACAC,MAAAA,kBAAkB;AAElB,UAAIC,MAAM,GAAGvB,IAAI,CAACuB,MAAL,CAAYC,MAAZ,EACX;AACAC,MAAAA,KAAK,IAAIA,KAAK,CAACC,OAAN,KAAkBnC,qBAFhB,CAAb,CAJ0B,CAS1B;;AACA,UAAIoC,OAAO,GAAG,KAAd;AACAJ,MAAAA,MAAM,CAAClD,OAAP,CAAeoD,KAAK,IAAI;AACtB,YAAI,CAACA,KAAK,CAACG,KAAX,EAAkB;AAChB,cAAIC,SAAS,GAAGC,cAAc,CAACC,MAAM,CAACC,aAAR,EAAuBP,KAAK,CAACQ,EAA7B,CAA9B;;AACA,cAAIJ,SAAJ,EAAe;AACbF,YAAAA,OAAO,GAAG,IAAV;AACD;AACF;AACF,OAPD;;AASA,UAAIA,OAAJ,EAAa;AACX7D,QAAAA,OAAO,CAACoE,KAAR;AAEAX,QAAAA,MAAM,CAAClD,OAAP,CAAe,UAASoD,KAAT,EAAgB;AAC7BU,UAAAA,QAAQ,CAACJ,MAAM,CAACC,aAAR,EAAuBP,KAAvB,CAAR;AACD,SAFD;AAIAhB,QAAAA,cAAc,CAACpC,OAAf,CAAuB,UAAS+D,CAAT,EAAY;AACjCC,UAAAA,YAAY,CAACD,CAAC,CAAC,CAAD,CAAF,EAAOA,CAAC,CAAC,CAAD,CAAR,CAAZ;AACD,SAFD;AAGD,OAVD,MAUO;AACLlF,QAAAA,MAAM,CAAC4D,QAAP,CAAgBwB,MAAhB;AACD;AACF;;AAED,QAAItC,IAAI,CAACqB,IAAL,KAAc,OAAlB,EAA2B;AACzBvD,MAAAA,OAAO,CAACyE,KAAR,CACE,kBAAkBvC,IAAI,CAACwC,SAAL,CAAeC,OAAjC,GAA2C,IAA3C,GAAkDzC,IAAI,CAACwC,SAAL,CAAeE,KADnE;AAIApB,MAAAA,kBAAkB;AAElB,UAAIqB,OAAO,GAAGC,kBAAkB,CAAC5C,IAAD,CAAhC;AACAtD,MAAAA,QAAQ,CAACmG,IAAT,CAAcC,WAAd,CAA0BH,OAA1B;AACD;AACF,GAnDD;AAoDD;;AAED,SAASrB,kBAAT,GAA8B;AAC5B,MAAIqB,OAAO,GAAGjG,QAAQ,CAACqG,cAAT,CAAwBvD,UAAxB,CAAd;;AACA,MAAImD,OAAJ,EAAa;AACXA,IAAAA,OAAO,CAACK,MAAR;AACAlF,IAAAA,OAAO,CAACC,GAAR,CAAY,2BAAZ;AACD;AACF;;AAED,SAAS6E,kBAAT,CAA4B5C,IAA5B,EAAkC;AAChC,MAAI2C,OAAO,GAAGjG,QAAQ,CAACuG,aAAT,CAAuB,KAAvB,CAAd;AACAN,EAAAA,OAAO,CAACV,EAAR,GAAazC,UAAb,CAFgC,CAIhC;;AACA,MAAIiD,OAAO,GAAG/F,QAAQ,CAACuG,aAAT,CAAuB,KAAvB,CAAd;AACA,MAAIC,UAAU,GAAGxG,QAAQ,CAACuG,aAAT,CAAuB,KAAvB,CAAjB;AACAR,EAAAA,OAAO,CAACU,SAAR,GAAoBnD,IAAI,CAACoD,SAAL,CAAeX,OAAnC;AACAS,EAAAA,UAAU,CAACC,SAAX,GAAuBnD,IAAI,CAACoD,SAAL,CAAeV,KAAtC;AAEAC,EAAAA,OAAO,CAACQ,SAAR,GACE,2NACA,mFADA,GAEA,yEAFA,GAGA,qEAHA,GAIAV,OAAO,CAACU,SAJR,GAKA,QALA,GAMA,OANA,GAOAD,UAAU,CAACC,SAPX,GAQA,QARA,GASA,QAVF;AAYA,SAAOR,OAAP;AACD;;AAED,SAASU,UAAT,CAAoB1D,MAApB,EAA4BsC,EAA5B,EAAgC;AAC9B,MAAIqB,OAAO,GAAG3D,MAAM,CAAC2D,OAArB;;AACA,MAAI,CAACA,OAAL,EAAc;AACZ,WAAO,EAAP;AACD;;AAED,MAAIC,OAAO,GAAG,EAAd;AACA,MAAIC,CAAJ,EAAOC,CAAP,EAAUC,GAAV;;AAEA,OAAKF,CAAL,IAAUF,OAAV,EAAmB;AACjB,SAAKG,CAAL,IAAUH,OAAO,CAACE,CAAD,CAAP,CAAW,CAAX,CAAV,EAAyB;AACvBE,MAAAA,GAAG,GAAGJ,OAAO,CAACE,CAAD,CAAP,CAAW,CAAX,EAAcC,CAAd,CAAN;;AAEA,UAAIC,GAAG,KAAKzB,EAAR,IAAe0B,KAAK,CAACC,OAAN,CAAcF,GAAd,KAAsBA,GAAG,CAACA,GAAG,CAACG,MAAJ,GAAa,CAAd,CAAH,KAAwB5B,EAAjE,EAAsE;AACpEsB,QAAAA,OAAO,CAACjD,IAAR,CAAakD,CAAb;AACD;AACF;AACF;;AAED,MAAI7D,MAAM,CAACe,MAAX,EAAmB;AACjB6C,IAAAA,OAAO,GAAGA,OAAO,CAACO,MAAR,CAAeT,UAAU,CAAC1D,MAAM,CAACe,MAAR,EAAgBuB,EAAhB,CAAzB,CAAV;AACD;;AAED,SAAOsB,OAAP;AACD;;AAED,SAASpB,QAAT,CAAkBxC,MAAlB,EAA0B8B,KAA1B,EAAiC;AAC/B,MAAI6B,OAAO,GAAG3D,MAAM,CAAC2D,OAArB;;AACA,MAAI,CAACA,OAAL,EAAc;AACZ;AACD;;AAED,MAAIA,OAAO,CAAC7B,KAAK,CAACQ,EAAP,CAAP,IAAqB,CAACtC,MAAM,CAACe,MAAjC,EAAyC;AACvC,QAAIL,EAAE,GAAG,IAAI0D,QAAJ,CAAa,SAAb,EAAwB,QAAxB,EAAkC,SAAlC,EAA6CtC,KAAK,CAACuC,MAAnD,CAAT;AACAvC,IAAAA,KAAK,CAACG,KAAN,GAAc,CAAC0B,OAAO,CAAC7B,KAAK,CAACQ,EAAP,CAAtB;AACAqB,IAAAA,OAAO,CAAC7B,KAAK,CAACQ,EAAP,CAAP,GAAoB,CAAC5B,EAAD,EAAKoB,KAAK,CAACwC,IAAX,CAApB;AACD,GAJD,MAIO,IAAItE,MAAM,CAACe,MAAX,EAAmB;AACxByB,IAAAA,QAAQ,CAACxC,MAAM,CAACe,MAAR,EAAgBe,KAAhB,CAAR;AACD;AACF;;AAED,SAASK,cAAT,CAAwBnC,MAAxB,EAAgCsC,EAAhC,EAAoC;AAClC,MAAIqB,OAAO,GAAG3D,MAAM,CAAC2D,OAArB;;AAEA,MAAI,CAACA,OAAL,EAAc;AACZ;AACD;;AAED,MAAI,CAACA,OAAO,CAACrB,EAAD,CAAR,IAAgBtC,MAAM,CAACe,MAA3B,EAAmC;AACjC,WAAOoB,cAAc,CAACnC,MAAM,CAACe,MAAR,EAAgBuB,EAAhB,CAArB;AACD;;AAED,MAAIzB,aAAa,CAACyB,EAAD,CAAjB,EAAuB;AACrB;AACD;;AAEDzB,EAAAA,aAAa,CAACyB,EAAD,CAAb,GAAoB,IAApB;AAEA,MAAIiC,MAAM,GAAGvE,MAAM,CAACwE,KAAP,CAAalC,EAAb,CAAb;AAEAxB,EAAAA,cAAc,CAACH,IAAf,CAAoB,CAACX,MAAD,EAASsC,EAAT,CAApB;;AAEA,MAAIiC,MAAM,IAAIA,MAAM,CAACnE,GAAjB,IAAwBmE,MAAM,CAACnE,GAAP,CAAWG,gBAAX,CAA4B2D,MAAxD,EAAgE;AAC9D,WAAO,IAAP;AACD;;AAED,SAAOR,UAAU,CAACtB,MAAM,CAACC,aAAR,EAAuBC,EAAvB,CAAV,CAAqCmC,IAArC,CAA0C,UAASnC,EAAT,EAAa;AAC5D,WAAOH,cAAc,CAACC,MAAM,CAACC,aAAR,EAAuBC,EAAvB,CAArB;AACD,GAFM,CAAP;AAGD;;AAED,SAASI,YAAT,CAAsB1C,MAAtB,EAA8BsC,EAA9B,EAAkC;AAChC,MAAIiC,MAAM,GAAGvE,MAAM,CAACwE,KAAP,CAAalC,EAAb,CAAb;AACAtC,EAAAA,MAAM,CAACM,OAAP,GAAiB,EAAjB;;AACA,MAAIiE,MAAJ,EAAY;AACVA,IAAAA,MAAM,CAACnE,GAAP,CAAWC,IAAX,GAAkBL,MAAM,CAACM,OAAzB;AACD;;AAED,MAAIiE,MAAM,IAAIA,MAAM,CAACnE,GAAjB,IAAwBmE,MAAM,CAACnE,GAAP,CAAWI,iBAAX,CAA6B0D,MAAzD,EAAiE;AAC/DK,IAAAA,MAAM,CAACnE,GAAP,CAAWI,iBAAX,CAA6B9B,OAA7B,CAAqC,UAASgG,EAAT,EAAa;AAChDA,MAAAA,EAAE,CAAC1E,MAAM,CAACM,OAAR,CAAF;AACD,KAFD;AAGD;;AAED,SAAON,MAAM,CAACwE,KAAP,CAAalC,EAAb,CAAP;AACAtC,EAAAA,MAAM,CAACsC,EAAD,CAAN;AAEAiC,EAAAA,MAAM,GAAGvE,MAAM,CAACwE,KAAP,CAAalC,EAAb,CAAT;;AACA,MAAIiC,MAAM,IAAIA,MAAM,CAACnE,GAAjB,IAAwBmE,MAAM,CAACnE,GAAP,CAAWG,gBAAX,CAA4B2D,MAAxD,EAAgE;AAC9DK,IAAAA,MAAM,CAACnE,GAAP,CAAWG,gBAAX,CAA4B7B,OAA5B,CAAoC,UAASgG,EAAT,EAAa;AAC/CA,MAAAA,EAAE;AACH,KAFD;;AAGA,WAAO,IAAP;AACD;AACF","file":"pixelated-face.a872b1b1.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/25/e728a93b1946b5392904ee269ac9f8.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/25/e728a93b1946b5392904ee269ac9f8.blob deleted file mode 100644 index 2fca3f32d..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/25/e728a93b1946b5392904ee269ac9f8.blob +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - Censorship - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/26/15464e70f54e71b5d08f4133033273.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/26/15464e70f54e71b5d08f4133033273.v8 deleted file mode 100644 index 8f8a7d93ca2a5f69b8820caaa015cd2cc334ae15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41047 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 VleTwxZ - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/26/86f2c16d27b7f05a5f4464d561eb0d.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/26/86f2c16d27b7f05a5f4464d561eb0d.blob deleted file mode 100644 index b9b56e3d0..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/26/86f2c16d27b7f05a5f4464d561eb0d.blob +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/27/1d8ccc7aa2e57cb4c3ea67e13a248f.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/27/1d8ccc7aa2e57cb4c3ea67e13a248f.v8 deleted file mode 100644 index be37d3e9d375f3a4605b71a9427dce5a0136e1f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcma)4!E)0u6ikAfq@}%-fwSig*O1tj9UCq%r5-Xshnbce7g>5r)UhQa$!S7eIfPk6iy6rhOskZ}RZ*}!6SJa7ViBkFIe}nB?aJ$_oTOR7 zFp61T#1UeaMH<1{Fr{XXzcU}ZKdtB!lhIS&E%1;sbxmCZi*W; zOj@+lGzlkRNg0M8(IInEtMCSu)yA%5J8k6#YwD0sgx9=zv~VHq!s-K7!q{(AEftm! zxNVCt*ejS;4wd_iTL=>xCwY?OGnR>r&1t$1MsOC#NE0Cl3>(@WltL6ju-P0_%#%6I zs)9$15kka_a3WH;k{tH%W(@+P)Wvwe(!@0Cy zWM!z?mb)_u8gx|edT?ePb>4m8WP^9Tp}yx^NkiJA5W5uwNZg$>mvg@J&6#tC|G5*P?fw1q zyf4u&^#*R>I_>s5w4pah>$ihYbmi}2+V7yP{r#A}K15rmv^$Uy`uPdV-#&=KREFu7 zH0j9X9{N@BwB;Kv5!@w&+B#<@r#823svD+BJ;!!2(o7;H;STmZtW)Zk#DumEBT~0q z=}N2W$|lsqrfo=zSyX49$6eb8F+=xt%W+JkNzZnv$85(orR{hYeBxM`LSRehg0iYB zDlFH+g6f`cVZ(7O%eGC!5nT9=uS<$Fn=wxsL>R<0Ex{zwv$=az3fs~#vs&9|`=p&| z^Inh~B~h2A zQXHaP_z-5$J}j43%SavVjHLd;(I!Y(2NKFtkGz~FQbWU@FYQ7LGtX$ zb4g#F4EG>L zlhnk%=`m(Y!!>lKU{>P1GKRA;)IO}YIa2gq!ukA zAdlEK9Lq5!l2gYKL^AAiQ@RisP~FtW*y9T|LsgN&)p5;c7EDZpH3oJ#)g|{VVNqKW zhAFi$@qC62(=zF0VNGjohDaOgXO>hhtA?1_U9x)CqNc*Q73mM84#PP34$7tR$n1#@yie zBL8w+E^RhWaRAc-bJKC1EKV`G>zTT4NzY@%G%RD}2h-`7S(v}S2R=__)c4X$N03Qr z8}iVQWsT5g_CJI}=Uqrjmq|Rj4k_P%ZR~0A^My9d|7seG&gyUy4Z?N{{*MI|g5c4; z{Oxyp`5zXE^QwIh65c`B((pu+#%ri%Rc-oF5@eO4mKJ9@oZwUzjWw+og!PUL+MTqe z5sXheqZg3P?sw^VOKZo07(IMBNYcPRua^sGX&lNHG9JCA-Jl)TgH-mC$yepP^GW^Y zVyRiz&{ucRgPD<0FZokQlvj^HI$w4pOFYe46J?M#9i-)&zJs<0>+5KXrfCeP{JVmt zv|eWFUuAhyj7<(%XQ^j7P|Qr9`xwLiYuQ})nP9{9;U>`NoZxk>N)vp)wJ6c5hs)9k z^`gQGMaXE-Z>iGV1uHKnQ-bpL_&`;`W>hwT6#ebI618yJbGQMsAJvD|^DZi)+r=dE z>cOJ2)m*c5%ECfr1vXEfXI%3_LwCj(nA~4ir*`+(*2i|A_B94$vlXO^3hr2yWvm)d zTI$6IWrgcjRq?$5Y?;Uci$j9zXbnuXH)bT&hMXnFvWo-rjHHsCYb2#mFHN(IrC^i zC9?=Eym&s%3aVZwSV7hJD!{2^=K@YCGz~aB2XLxRZWM5NG7SoKwjid+>u+-acQ^~U zS-DBT{qXQgz^RV1^8lxkc{9MNdYu5As_|8TQ_0Q+oKmO&Ty~Vs3GV(h-Zr3)zi87N)4*flPZo{W-IhmdjuD#P20`P_^aGJW67ox(9?t$e_2RSR4L%gz;J z(^5+m{i^Qw=G3)xzi)z?@j;Y0%O|h89xwxJ<&`*;_p7djOegu zc+wzDE;P5?I7+uDqOZ3eN9p6&GtMMz7IWaYM8f2dixJc1Ln?hU2cNRlW#Cf^F46rw z@J%X1ssC)W5nh#zr`NRdu`aiga;~`=m93^%w6H3c=w59lC1l5~q-;FBrb#O)#g`xJ zaw{z~nDXAm%x*Zc(qi4K5A0Ln&~n`?Cz0D@9tf5jXR&3BkF&q_8QROfV3vKG1MaDp O-$R267SynYoBst4S7c=X diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/27/7afc3e12b84c2f74d7e4919d497d2e.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/27/7afc3e12b84c2f74d7e4919d497d2e.blob deleted file mode 100644 index b5de76196..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/27/7afc3e12b84c2f74d7e4919d497d2e.blob +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/27/8bea23b419e85098a2e6289ee1db63.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/27/8bea23b419e85098a2e6289ee1db63.v8 deleted file mode 100644 index 237f19f34c3dd35fbc5260a190a4e645e8bcf147..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35142 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 XbI=`5<^3t0@^|dkKYbzJ< numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/28/a2e4040906c9fe36e1cf14ca5c28fc.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/28/a2e4040906c9fe36e1cf14ca5c28fc.v8 deleted file mode 100644 index b75dafef4e60b649fda1f86dff4e31fedc58bf9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20243 zcmchf{c9B07sj7eha>im*b6Fs*7p))}0!cbvZBEazy{v zq^ip&U%B3}ne0yMC&xb1|6Uyad+ys=^|72BJa^-dVptA7EZj;nuf|nfOrpxqOaC&6 zUyTSak=D#4QZh+)bKcA#B{SU0s2T1~%eoZ}T{6Q+$uQZ_x|u;rX1LRT?w0dUugXa| zY@500YG5Xkl8Lgb$7V);S z?Gy-Pp1hz8S)gQwI0YcNY=)7NVX`4@PvY(To=i^x=r+u*NSWzM+o5>7{K!2s z`ygee5A77N_|Q%PFj7;XXPyFql4Ipg4BL;95rC()BOp*RC)P1|@~krNfsz@*M1w#( zZ2~2uWIKJc9a1vGt&Yp~QB$|&$JovWFLu?8BPHWxOLxo+3V0^tu9-o~OvaX(k?&*M z%t&?rin;p(CCAFG9-JH=b?pNn(hh+@$+%dF;mIq?umwtHi2DFYv^^6j873RLWi~`g zW~BE4c(>bTA}N_DyLxG6q^1pgyf!mPnd#%bnUU{fWM-r$!K!%@1WJyTJ9#(>qI&@- zv|}JpGAmYJc=Dn$W`U9!!d?IZ?ZgR`jFRoFo9&R28Hv3BUQB!T2$YPIEj=__qJU>I zwCgl{kTR3;?0@j_!pulbfHm_32$UQvw{|cAw#v5a(g`x{7zmUMj1?K4>?;EoC^H$? z%?wg9!}a#7derPkPEmNNO*4v=jFLlk&&(htGu+yCZXMh=14+q1+0?IQhMyyup}i77 zTJxLKyApVdd-}JTQFy0}!Wn-!h>YM#)whMSQHDD`Yi7F#pCx|o_{IR@Wu+?+Ntx+N zyCnuAm0S3r_Ay3|l%kK|ZB&eNoSh|)LH|TMFNoHzR*B{SUeel==$BGrs{vgd|Q+A5NE+mCnjNwK)$ zNqgMrz`$-~hW3U5Z+9)5pVpw%ZaaV0blDs+ z2+3BCKy3}x{o

nH3Otw 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 MgO!(3MK6#28&?i$cK`qY diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/29/8ab67538dcc9c4825145e3d58c7f4b.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/29/8ab67538dcc9c4825145e3d58c7f4b.blob deleted file mode 100644 index 95a9dbe11..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/29/8ab67538dcc9c4825145e3d58c7f4b.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["video","document","querySelector","canvas","ctx","getContext","faceCanvas","faceCtx","faceDetector","window","FaceDetector","SIZE","populateVideo","stream","navigator","mediaDevices","getUserMedia","width","height","srcObject","play","console","log","videoWidth","videoHeight","detect","faces","forEach","censor","requestAnimationFrame","drawFace","face","top","left","boundingBox","clearRect","strokeStyle","lineWidth","strokeRect","imageSmoothingEnabled","drawImage","x","y","then","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","clear","hmrApply","v","hmrAcceptRun","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":"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","file":"pixelated-face.6ea3e75e.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/29/918c50ebe62ba7679d2d5ab037f4fd.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/29/918c50ebe62ba7679d2d5ab037f4fd.v8 deleted file mode 100644 index 8bada5a31cafecb093166bb623e61efa592febd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcma)4O>Yx16imW4NlSZa1xK`c;u^Bw$-)Ixx*`H9q?Q{Oe>^9ycJ0OXrV074{1tFR zlrz40X6!dJ_MeLneGLQ2AuM82Mp=H&~{Fr{XXzcV6E!B2PaVeETGkG9uVwsVxo8kry zlNRkXPs2%A5r*MMbjY04D!fKzwXrMNPFuObnmFVW;Wcj_ESyQZuzHVGF!mc&ONA8# zZrdUZo)k=Gk zfR~38l{6^y=Ew};>cHIa?6#r0-q-isN{%-|_ - - - - - Censorship - - - - -

- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/2a/9f56f6cfb0b739fd5d1226b5251432.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/2a/9f56f6cfb0b739fd5d1226b5251432.blob deleted file mode 100644 index 9f5ecdb68..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/2a/9f56f6cfb0b739fd5d1226b5251432.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["video","document","querySelector","canvas","ctx","getContext","faceCanvas","faceCtx","faceDetector","window","FaceDetector","optionsInputs","querySelectorAll","options","SIZE","SCALE","handleOption","event","console","log","currentTarget","value","name","forEach","input","addEventListener","populateVideo","stream","navigator","mediaDevices","getUserMedia","width","height","srcObject","play","videoWidth","videoHeight","detect","faces","drawFace","censor","requestAnimationFrame","face","top","left","boundingBox","clearRect","strokeStyle","lineWidth","strokeRect","imageSmoothingEnabled","drawImage","x","y","then","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","clear","hmrApply","v","hmrAcceptRun","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":"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","file":"pixelated-face.18bdcae0.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/2a/ce7e2349b04b11189c5c0540c99300.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/2a/ce7e2349b04b11189c5c0540c99300.blob deleted file mode 100644 index 8859c1174..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/2a/ce7e2349b04b11189c5c0540c99300.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["video","document","querySelector","canvas","ctx","getContext","faceCanvas","faceCtx","faceDetector","window","FaceDetector","SIZE","scale","populateVideo","stream","navigator","mediaDevices","getUserMedia","width","height","srcObject","play","console","log","videoWidth","videoHeight","detect","faces","forEach","drawFace","censor","requestAnimationFrame","face","top","left","boundingBox","clearRect","strokeStyle","lineWidth","strokeRect","imageSmoothingEnabled","drawImage","x","y","SCALE","then","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","clear","hmrApply","v","hmrAcceptRun","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":"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","file":"pixelated-face.229020e3.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/2c/08e74716cae7c874edffb779b502f7.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/2c/08e74716cae7c874edffb779b502f7.blob deleted file mode 100644 index 6c75b36de..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/2c/08e74716cae7c874edffb779b502f7.blob +++ /dev/null @@ -1,402 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/2d/a1092c8f30c277570c86c3a5df24c9.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/2d/a1092c8f30c277570c86c3a5df24c9.v8 deleted file mode 100644 index 0a3693a914237b6ee67759bb9da30cb7bccbd248..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39864 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 diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/2d/a810de093fecc8475df47f64b88458.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/2d/a810de093fecc8475df47f64b88458.v8 deleted file mode 100644 index 5501953ed435e8c94850cb556bdee005451aa833..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcma))&2JMi5XFNRA)vkMnc>52%bkXmkB#`bLEYGW_9w@t{6e;nKp z<&1BhHy*$Dv;UlZ7-|?v0bvni6=g+AImn#7OU6#0$TDrGjP9jUWF`;zh?X1Kxhbv4 zaB0a-^E8}!B!F&L(TC^^V!>fhSO9~%7Z%=MM+6%YXppkna zfY-YdwKUY|)m}M-i=A>U?)Q`42f=0t=evM6TF_T5dY|$RPX7g~wOOKr!~0ew0ql!IB*6%>WLpL+9NGPA=(Yuv-vV`HSYiFE=9?+x3#^c8l+&m4dFD#{UC< T(Q&Wj&z_ziXRtZH91Q;ggUHw6 diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/2d/b4a8b4777c1195f8ce9f8acb391d47.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/2d/b4a8b4777c1195f8ce9f8acb391d47.v8 deleted file mode 100644 index 6d9f74a3ebac05912b269e468b3e6ba49e811286..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcma)4O>@&Q6ikAfq@}&I184JwYly!c!v&_)Lk8$D({khTEIlXcIFga%G$DVKe*2!4xP!<=M zClMxT6jo6fQjn)n&3TwI7}uhqZ)lhBWBT2YHq%Ekl`_+c7D7tWlLuU*VOq3yN*mHl z7&6l|_9uRcjQo#eiCLkfe@)UTZI+^)wqipKTH=%1Y2G{-I1^@W)E+Bg>^8Cyl1lLG zwj~%mDVUO$r2R}=@Hwkk5T;>P7cm}q_pDgaZSSzaGvXJ`f4|xdU}UzdN;UiXo*TjGrmo#TaDz@e QDSmeJ^f@&Q6ikELw57ekz>)F1;acMOBd*~BQ|ciDbeL(mae0!~jXI8GEV)g{Kj#8& z$mEP}+Fj}GuJq^h!=9y~RuoPrTtw+KK_)VeMN!D}X%!Vk5?67S=P3nqc5@1ma~9_^ zLsmd!F(M&krP3%yn&s+T(P5=)d}BYSALH*1ts6hU3G2oJx7rxAXLo$hPPV%7V=U21 z?cl~)5}t)6ON1ZcA-%RHynu1Gb#vW}8@)u$9_p;>HE-@59cwppc7v64*l$d&4N409 zssRlj71A0H<3D3XVKg~cMUtllvyu^Wu8^=4fD{v%OeS=&;AW#tftdSz3Jjhioic=~ zP*kx<(kRO5M4^FEFjB+4dpn?0ZDidksIrf~L3%&ewreGB=-76?>HMevYwrony`|B{ z`O?!!wDzGdkw!3mdvKNxw~*stHlP0g-rezhLb$gLK_)|>jCI<0V7RsBEc2OV`r P|LpMiID_@G*Mq&ktV`Vl diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/2e/88df76cf89906aa01e44e376f40c08.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/2e/88df76cf89906aa01e44e376f40c08.blob deleted file mode 100644 index a666ca4a3..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/2e/88df76cf89906aa01e44e376f40c08.blob +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - Censorship - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/2e/aac76e64a192dac1a547ac855aa4eb.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/2e/aac76e64a192dac1a547ac855aa4eb.v8 deleted file mode 100644 index 4f35e8e99b1e2afcba681b3d92a16b836039d0d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcma)4O>@&Q6m){yq@}%-fwSig*O0_tiQocL>LCMkm}$9jd6u3Mb!^E$mT@+lr4X*rtss(fp2o;| zDU+PZSY#|`DW-fTxhy4RFqEpIZ|GO>WBlEbb>l~JrE%kumP%`~qX%50<5o3(OdGOX zIdbDHiAGU@oT889iF;*qbWPeB>sG26H)=x_dJ-eqY2G|II9G1r%pNOX*ll#BG!+o~ zZ9~w1QgEX^Y5$qF5MfO7lI7`CFqTu6BwX^CSf0#HIX^qWZNjPKk7$7lInnf;3m;-n|XrQfXebf<)0p-y@x$JJVWD_i%1n-?aYI|F!pw z^xD8+?|kE7P+IfYl?VgUU3=sV3=fdQa1p@E3Z0Lp(e=ujnxb{rch}saeJ}G7+a%<(`98!tl&(! zFRHX?x5e%R!kRpqT>vM}qwm~@Ue$CP92SI5{i4P1;jRw@x2;Q4?dyB)l%N|ayMNFP SI%~E1+0xVF1iP!(LGLe!BilIu diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/2f/1f68d9b034c4209b5154deb7c46951.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/2f/1f68d9b034c4209b5154deb7c46951.v8 deleted file mode 100644 index c3c9409bbe41ecda5a3168edf5b602a76095b5ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcma)4O>@&Q6m)`{q@}&I0|!o?H(Y}qf5nCiOsR(q&|#+K#zh~`i8{7qBsopU|Ko3g z8ZtSfn|Aj}yDR;<_%Ki~6dZzlM#?D76U=BvVp^80$m^&qlemtv`8)-GMa&9<1Sv_< zh#{x>oYrxa#w07;WM1$HIe|$n8vI7=3Vwv&4QdlUqM^!!6qiCu)YAvDCWdLz*$_9V znJ{R=ED5GTMHmJj(IT@#$>18LQQE9T7j|NU4YA0lwbQ(LFmNW!!l*q~!NhH3BP3Sf z+iiz1d{QtaElT?tw-7K=Qj+1UaBj;u&tq1UIg4{lq7)-WVAPUsuPhUndB*2;QI~m^ z&T7gMI#1$+bC$DN3g;XDoi1U~+&A@fRMvXo#`FEVy22)nc%AeY@rs!y|D=YNExF z@ZsfQq7oWwwK*~)xH>R5e0entgrGjo^4w*X|#< Ti%xqfe)jnEINt8^wKw<+hI-ms diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/30/6942e00ecc320424eadedc488536ad.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/30/6942e00ecc320424eadedc488536ad.blob deleted file mode 100644 index d59001e03..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/30/6942e00ecc320424eadedc488536ad.blob +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/30/6d7dd753855b346365326136662cee.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/30/6d7dd753855b346365326136662cee.blob deleted file mode 100644 index 4fe58cee1..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/30/6d7dd753855b346365326136662cee.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["video","document","querySelector","canvas","ctx","getContext","faceCanvas","faceCtx","faceDetector","window","FaceDetector","SIZE","SCALE","populateVideo","stream","navigator","mediaDevices","getUserMedia","width","height","srcObject","play","console","log","videoWidth","videoHeight","detect","faces","forEach","drawFace","censor","requestAnimationFrame","face","top","left","boundingBox","clearRect","strokeStyle","lineWidth","strokeRect","imageSmoothingEnabled","drawImage","x","y","then","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","clear","hmrApply","v","hmrAcceptRun","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":"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","file":"pixelated-face.8be37775.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/30/7ca2ec95d5a6e1b0aa5019fb03454a.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/30/7ca2ec95d5a6e1b0aa5019fb03454a.blob deleted file mode 100644 index e23e66f27..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/30/7ca2ec95d5a6e1b0aa5019fb03454a.blob +++ /dev/null @@ -1,116 +0,0 @@ -/* normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */button,hr,input{overflow:visible}progress,sub,sup{vertical-align:baseline}[type=checkbox],[type=radio],legend{box-sizing:border-box;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}details,main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}fieldset{padding:.35em .75em .625em}legend{color:inherit;display:table;max-width:100%;white-space:normal}textarea{overflow:auto}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}[hidden],template{display:none} - - - -/* Variables */ -html { - --grey: #e7e7e7; - --gray: var(--grey); - --blue: #0072B9; - --pink: #D60087; - --yellow: #ffc600; - --black: #2e2e2e; - --red: #c73737; - --green: #61e846; - --text-shadow: 2px 2px 0 rgba(0,0,0,0.2); - --box-shadow: 0 0 5px 5px rgba(0,0,0,0.2); - font-size: 62.5%; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - box-sizing: border-box; -} - -*, *:before, *:after { - box-sizing: inherit; -} - -body { - font-size: 2rem; - line-height: 1.5; - background-color: var(--blue); - background-image: url("data:image/svg+xml,%3Csvg width='20' height='100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 21.184c.13.357.264.72.402 1.088l.661 1.768C4.653 33.64 6 39.647 6 50c0 10.271-1.222 15.362-4.928 24.629-.383.955-.74 1.869-1.072 2.75v6.225c.73-2.51 1.691-5.139 2.928-8.233C6.722 65.888 8 60.562 8 50c0-10.626-1.397-16.855-5.063-26.66l-.662-1.767C1.352 19.098.601 16.913 0 14.85v6.335zm20 0C17.108 13.258 16 8.077 16 0h2c0 5.744.574 9.951 2 14.85v6.334zm0 56.195c-2.966 7.86-4 13.123-4 22.621h2c0-6.842.542-11.386 2-16.396v-6.225zM6 0c0 8.44 1.21 13.718 4.402 22.272l.661 1.768C14.653 33.64 16 39.647 16 50c0 10.271-1.222 15.362-4.928 24.629C7.278 84.112 6 89.438 6 100h2c0-10.271 1.222-15.362 4.928-24.629C16.722 65.888 18 60.562 18 50c0-10.626-1.397-16.855-5.063-26.66l-.662-1.767C9.16 13.223 8 8.163 8 0H6z' fill='%23fff' fill-rule='nonzero' fill-opacity='.1' opacity='.349'/%3E%3C/svg%3E%0A"); - background-size: 15px; -} - - -/* Table Styles */ - -table { - border-radius: 5px; - overflow: hidden; - margin-bottom: 2rem; - border-collapse: collapse; -} - -td, th { - border: 1px solid var(--grey); - padding: 0.5rem; -} - - -/* Helper Divs */ - -.wrapper { - max-width: 1000px; - margin: 4rem auto; - padding: 2rem; - background: white; -} - -.box, .wrapper { - box-shadow: 0 0 3px 5px rgba(0,0,0,0.08653); -} -a { - color: var(--blue); - text-decoration-color: var(--yellow); -} - - -a.button, button, input[type="button"] { - color: white; - background: var(--pink); - padding: 1rem; - border: 0; - border: 2px solid transparent; - text-decoration: none; - font-weight: 600; - font-size:2rem; -} - -:focus { - outline-color: var(--pink); -} - -fieldset { - border: 1px solid black; -} - -input:not([type="checkbox"]):not([type="radio"]), textarea, select { - display: block; - padding: 1rem; - border: 1px solid var(--grey); -} - -.success { - border: 1px solid red; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - color: white; - margin-top: 0; - line-height: 1; - text-shadow: var(--text-shadow); -} -.wrapper h1, -.wrapper h2, -.wrapper h3, -.wrapper h4, -.wrapper h5, -.wrapper h6 { - color: var(--black); - text-shadow: none; -} diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/30/ba7d4e6cf8c6d510746d279a69b3af.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/30/ba7d4e6cf8c6d510746d279a69b3af.blob deleted file mode 100644 index ec8dd69a1..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/30/ba7d4e6cf8c6d510746d279a69b3af.blob +++ /dev/null @@ -1,16 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('.face'); -const faceCtx = canvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); // Write a fucntion that will populate the users video - -function populateVideo() { - const stream = navigator.meidaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - console.log(stream); -} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/30/fe6e19fec9385bc56563b1393182fd.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/30/fe6e19fec9385bc56563b1393182fd.v8 deleted file mode 100644 index 2dcb8b40fba4bf5cc4d8cd8fd70c5a34ab53badd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 688 zcma))OK%e~6or#8ZPLtMEFB7ypV?+O*Wc>9Wy`HgG2G zXUPmT+iG_LL5q&+-2hIkqt2%foNUqO4y^ozi{GQ&2*!5XGTrRCJ-3qMtq}eL_#4i8 QC4ct#^eThh)vLkqFX4gMV*mgE diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/31/141b09e3bcfccef2623aabf683650e.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/31/141b09e3bcfccef2623aabf683650e.blob deleted file mode 100644 index 447e80cd2..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/31/141b09e3bcfccef2623aabf683650e.blob +++ /dev/null @@ -1,396 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/32/147f673352a0e73db4adf9e1556279.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/32/147f673352a0e73db4adf9e1556279.v8 deleted file mode 100644 index db96786f016658700abd8e63c1b5276b65b9c506..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 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 T;M4h7zW(B1 - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/35/7bb6f799eb259e4542b26d36135c06.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/35/7bb6f799eb259e4542b26d36135c06.v8 deleted file mode 100644 index b568ef7f9e421f757f1d8a87dc6b013cb53598e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcma)4O>@&Q6ikBKq@}%-fwOtTHKhKw-~v-nX}NKcoYks(kbv;{Dv}-f+BwQ{B6+cc1^Sy=SOa z8pb>4YX@Uy^n))E#;AOIXf;gskfp(V052PAT^NN|OQTy1SH5rG+#mO40IG@8){PNe-R znW1J=ZI2*m(NVn}z>#&-dG~>nE#3_F3j!;DU(Zwjn_i>f8Yn5 R^h*Bf@$qp6+lx1Y;XeUX*!utg diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/36/0d407238b27e481c32bca1dc362af1.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/36/0d407238b27e481c32bca1dc362af1.blob deleted file mode 100644 index 88da2f4d1..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/36/0d407238b27e481c32bca1dc362af1.blob +++ /dev/null @@ -1,67 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('.face'); -const faceCtx = canvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); -const SIZE = 10; // Write a fucntion that will populate the users video - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - video.srcObject = stream; - await video.play(); // size the canvases to be the same size as the video - - console.log(video.videoWidth, video.videoHeight); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - faceCanvas.width = video.videoWidth; - faceCanvas.height = video.videoHeight; -} - -async function detect() { - const faces = await faceDetector.detect(video); // ask the browser when the next animation frame is, and tell it to run detect for us - - ctx.clearRect(0, 0, canvas.width, canvas.height); - faces.forEach(drawFace); - faces.forEach(censor); - requestAnimationFrame(detect); -} - -function drawFace(face) { - const { - width, - height, - top, - left - } = face.boundingBox; - ctx.clearRect(0, 0, canvas.width, canvas.height); - ctx.strokeStyle = '#ffc600'; - ctx.lineWidth = 2; - ctx.strokeRect(left, top, width, height); -} - -function censor({ - boundingBox: face -}) { - faceCtx.imageSmoothingEnabled = false; - faceCtx.clearRect(0, 0, faceCanvas.width, faceCanvas.height); // draw the small face - - faceCtx.drawImage( // 5 source args - video, // where does the source come from? - face.x, // where do we start the source pull from? - face.y, face.width, face.height, // 4 draw args - face.x, // where should we start drawing the x and y? - face.y, SIZE, SIZE); // draw the small face back on, but scale up - - faceCtx.drawImage(faceCanvas, // source - face.x, // where do we start the source pull from? - face.y, SIZE, SIZE, // Drawing args - face.x, face.y, face.width, face.height); -} - -populateVideo().then(detect); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/36/2bca671fd59d503086d12c94d92b46.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/36/2bca671fd59d503086d12c94d92b46.blob deleted file mode 100644 index e7bd5e9a5..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/36/2bca671fd59d503086d12c94d92b46.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["video","document","querySelector","canvas","ctx","getContext","faceCanvas","faceCtx","faceDetector","window","FaceDetector","optionsInputs","querySelectorAll","console","log","options","SIZE","SCALE","populateVideo","stream","navigator","mediaDevices","getUserMedia","width","height","srcObject","play","videoWidth","videoHeight","detect","faces","forEach","drawFace","censor","requestAnimationFrame","face","top","left","boundingBox","clearRect","strokeStyle","lineWidth","strokeRect","imageSmoothingEnabled","drawImage","x","y","then","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","clear","hmrApply","v","hmrAcceptRun","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":"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","file":"pixelated-face.22c454ab.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/36/2f861a680217a9c28d6e8d157a8ebe.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/36/2f861a680217a9c28d6e8d157a8ebe.blob deleted file mode 100644 index d956fe56f..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/36/2f861a680217a9c28d6e8d157a8ebe.blob +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/36/8094c6bd18320cb3e7a7ee27c32d25.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/36/8094c6bd18320cb3e7a7ee27c32d25.blob deleted file mode 100644 index ac8ea3a86..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/36/8094c6bd18320cb3e7a7ee27c32d25.blob +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/36/8e72350e8631ab11189e9ce096b799.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/36/8e72350e8631ab11189e9ce096b799.v8 deleted file mode 100644 index c54ed3aabbd68a285443122f724a3a9e38573c7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcma))Pjk~S5XGI~Hfd=uW#H`D;Trruw&4O(>LCMkm}$9jk*rmsjx8BUP80Hl_?DoC zOwQ=0eNWnbKk3iqhmnG@U=Yk>QbpN3#hm6Op;gtCa~@Syn(!nqiVXY}F)Ij)s>pI= zDNW{a$)b`*S>fzOobV#Yio%qO7QYd@f*;{`gW80TXs9wF#ifuE_3VMHiD|UxZHODx zjWB4!JPl?+O&Sb7qQ%AvC4*~}MrpGWeb|c)w!|Wvap!sSVBlPsg;D!j4O6#~t&muQ zZ?`?d_{q^IX;IqGxP_q1vnZXK55=q>Sb~%km^HO9H1I>G#eYNis)A0kJId zoHY#+UNIg;G)c;|f(wQ{N`|r#Xx_c`;8Mt@9T>9OMc-H4Ja=l)4c^1K8f-tN=FZkg6W}Th`;dQWlM|=;^2CvRfoaa@pj}Efi^tRrefZw4dYUja;vBbLReJeV=^$rVsBYxrHH|)kRG24!+c8~A55e#oQcmKdO SIvb?;IpEXdc)P3D-smroY}mX2 diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/36/a698f995fbb8e56f42e18b3ed530e0.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/36/a698f995fbb8e56f42e18b3ed530e0.v8 deleted file mode 100644 index aa403acbe052ff07875cf2e22234e3f6fe14e0c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31045 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 - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/36/bcf117233edd9905525fc3508eab7f.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/36/bcf117233edd9905525fc3508eab7f.blob deleted file mode 100644 index e3c5849d1..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/36/bcf117233edd9905525fc3508eab7f.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["faceDetector","window","FaceDetector","video","document","querySelector","canvas","ctx","getContext","faceCanvas","faceCtx","SCALE","SIZE","populateVideo","stream","navigator","mediaDevices","getUserMedia","width","height","srcObject","play","videoWidth","videoHeight","detect","faces","clearRect","forEach","drawFace","requestAnimationFrame","censor","boundingBox","face","imageSmoothingEnabled","drawImage","x","y","top","left","strokeStyle","lineWidth","strokeRect","stroke","then","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","console","clear","hmrApply","v","hmrAcceptRun","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","log","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":"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","file":"pixelated-face.5ce2d663.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/37/2b49082edbb22f5ae17d88cda122e3.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/37/2b49082edbb22f5ae17d88cda122e3.blob deleted file mode 100644 index 49a28fc9d..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/37/2b49082edbb22f5ae17d88cda122e3.blob +++ /dev/null @@ -1,60 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('.face'); -const faceCtx = canvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); // Write a fucntion that will populate the users video - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - video.srcObject = stream; - await video.play(); // size the canvases to be the same size as the video - - console.log(video.videoWidth, video.videoHeight); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - faceCanvas.width = video.videoWidth; - faceCanvas.height = video.videoHeight; -} - -async function detect() { - const faces = await faceDetector.detect(video); // ask the browser when the next animation frame is, and tell it to run detect for us - - faces.forEach(drawFace); - faces.forEach(censor); - requestAnimationFrame(detect); -} - -function drawFace(face) { - const { - width, - height, - top, - left - } = face.boundingBox; - ctx.clearRect(0, 0, canvas.width, canvas.height); - ctx.strokeStyle = '#ffc600'; - ctx.lineWidth = 2; - ctx.strokeRect(left, top, width, height); -} - -function censor({ - boundingBox: face -}) { - // draw the small face - faceCtx.drawImage( // Capture Settings - video, // where should I grab the frame from? - face.x, // Where should we start capturing the face from? X and Y? - face.y, face.width, // how wide and how high should the face be? - face.height, // Paint Settings - face.x, // where should we start drawing the face on? - face.y, // how wide and how high should we paint it - 10, 10); // take that face back out and draw it back at normal size. -} - -populateVideo().then(detect); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/37/891645c97b4738fdeb435d26dbf07f.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/37/891645c97b4738fdeb435d26dbf07f.v8 deleted file mode 100644 index e69de29bb..000000000 diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/37/dad6d5657e0a48dce59f672b947578.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/37/dad6d5657e0a48dce59f672b947578.v8 deleted file mode 100644 index ef6314f8a212bb0c56509ee4ca0b5211f6ff3486..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14231 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 F`+vo&KB)iz diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/37/e1e4eee7dbf28b9df63cf8fd482e08.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/37/e1e4eee7dbf28b9df63cf8fd482e08.blob deleted file mode 100644 index 70cc4911e..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/37/e1e4eee7dbf28b9df63cf8fd482e08.blob +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - Censorship - - - - - -
- - -
-
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/38/93ed96e7eaef61b60f5cfec2ed06a3.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/38/93ed96e7eaef61b60f5cfec2ed06a3.blob deleted file mode 100644 index 9c589970c..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/38/93ed96e7eaef61b60f5cfec2ed06a3.blob +++ /dev/null @@ -1,71 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('.face'); -const faceCtx = faceCanvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); -const options = { - SIZE: 10, - SCALE: 1.35 -}; // Write a fucntion that will populate the users video - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - video.srcObject = stream; - await video.play(); // size the canvases to be the same size as the video - - console.log(video.videoWidth, video.videoHeight); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - faceCanvas.width = video.videoWidth; - faceCanvas.height = video.videoHeight; -} - -async function detect() { - const faces = await faceDetector.detect(video); // ask the browser when the next animation frame is, and tell it to run detect for us - - faces.forEach(drawFace); - faces.forEach(censor); - requestAnimationFrame(detect); -} - -function drawFace(face) { - const { - width, - height, - top, - left - } = face.boundingBox; - ctx.clearRect(0, 0, canvas.width, canvas.height); - ctx.strokeStyle = '#ffc600'; - ctx.lineWidth = 2; - ctx.strokeRect(left, top, width, height); -} - -function censor({ - boundingBox: face -}) { - faceCtx.imageSmoothingEnabled = false; - faceCtx.clearRect(0, 0, faceCanvas.width, faceCanvas.height); // draw the small face - - faceCtx.drawImage( // 5 source args - video, // where does the source come from? - face.x, // where do we start the source pull from? - face.y, face.width, face.height, // 4 draw args - face.x, // where should we start drawing the x and y? - face.y, options.SIZE, options.SIZE); // draw the small face back on, but scale up - - const width = face.width * options.SCALE; - const height = face.height * options.SCALE; - faceCtx.drawImage(faceCanvas, // source - face.x, // where do we start the source pull from? - face.y, options.SIZE, options.SIZE, // Drawing args - face.x - (width - face.width) / 2, face.y - (height - face.height) / 2, width, height); -} - -populateVideo().then(detect); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/38/ea893d4ea7fe6efce02a24cb149c0d.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/38/ea893d4ea7fe6efce02a24cb149c0d.blob deleted file mode 100644 index a32831a77..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/38/ea893d4ea7fe6efce02a24cb149c0d.blob +++ /dev/null @@ -1,399 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/3b/62ab82859b659f3e241d4f49af0762.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/3b/62ab82859b659f3e241d4f49af0762.blob deleted file mode 100644 index e23e66f27..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/3b/62ab82859b659f3e241d4f49af0762.blob +++ /dev/null @@ -1,116 +0,0 @@ -/* normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */button,hr,input{overflow:visible}progress,sub,sup{vertical-align:baseline}[type=checkbox],[type=radio],legend{box-sizing:border-box;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}details,main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}fieldset{padding:.35em .75em .625em}legend{color:inherit;display:table;max-width:100%;white-space:normal}textarea{overflow:auto}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}[hidden],template{display:none} - - - -/* Variables */ -html { - --grey: #e7e7e7; - --gray: var(--grey); - --blue: #0072B9; - --pink: #D60087; - --yellow: #ffc600; - --black: #2e2e2e; - --red: #c73737; - --green: #61e846; - --text-shadow: 2px 2px 0 rgba(0,0,0,0.2); - --box-shadow: 0 0 5px 5px rgba(0,0,0,0.2); - font-size: 62.5%; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - box-sizing: border-box; -} - -*, *:before, *:after { - box-sizing: inherit; -} - -body { - font-size: 2rem; - line-height: 1.5; - background-color: var(--blue); - background-image: url("data:image/svg+xml,%3Csvg width='20' height='100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 21.184c.13.357.264.72.402 1.088l.661 1.768C4.653 33.64 6 39.647 6 50c0 10.271-1.222 15.362-4.928 24.629-.383.955-.74 1.869-1.072 2.75v6.225c.73-2.51 1.691-5.139 2.928-8.233C6.722 65.888 8 60.562 8 50c0-10.626-1.397-16.855-5.063-26.66l-.662-1.767C1.352 19.098.601 16.913 0 14.85v6.335zm20 0C17.108 13.258 16 8.077 16 0h2c0 5.744.574 9.951 2 14.85v6.334zm0 56.195c-2.966 7.86-4 13.123-4 22.621h2c0-6.842.542-11.386 2-16.396v-6.225zM6 0c0 8.44 1.21 13.718 4.402 22.272l.661 1.768C14.653 33.64 16 39.647 16 50c0 10.271-1.222 15.362-4.928 24.629C7.278 84.112 6 89.438 6 100h2c0-10.271 1.222-15.362 4.928-24.629C16.722 65.888 18 60.562 18 50c0-10.626-1.397-16.855-5.063-26.66l-.662-1.767C9.16 13.223 8 8.163 8 0H6z' fill='%23fff' fill-rule='nonzero' fill-opacity='.1' opacity='.349'/%3E%3C/svg%3E%0A"); - background-size: 15px; -} - - -/* Table Styles */ - -table { - border-radius: 5px; - overflow: hidden; - margin-bottom: 2rem; - border-collapse: collapse; -} - -td, th { - border: 1px solid var(--grey); - padding: 0.5rem; -} - - -/* Helper Divs */ - -.wrapper { - max-width: 1000px; - margin: 4rem auto; - padding: 2rem; - background: white; -} - -.box, .wrapper { - box-shadow: 0 0 3px 5px rgba(0,0,0,0.08653); -} -a { - color: var(--blue); - text-decoration-color: var(--yellow); -} - - -a.button, button, input[type="button"] { - color: white; - background: var(--pink); - padding: 1rem; - border: 0; - border: 2px solid transparent; - text-decoration: none; - font-weight: 600; - font-size:2rem; -} - -:focus { - outline-color: var(--pink); -} - -fieldset { - border: 1px solid black; -} - -input:not([type="checkbox"]):not([type="radio"]), textarea, select { - display: block; - padding: 1rem; - border: 1px solid var(--grey); -} - -.success { - border: 1px solid red; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - color: white; - margin-top: 0; - line-height: 1; - text-shadow: var(--text-shadow); -} -.wrapper h1, -.wrapper h2, -.wrapper h3, -.wrapper h4, -.wrapper h5, -.wrapper h6 { - color: var(--black); - text-shadow: none; -} diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/3b/ff8cbd80c667c2a134da568e1f628d.txt b/exercises/55 - Face Detection Censorship/.parcel-cache/3b/ff8cbd80c667c2a134da568e1f628d.txt deleted file mode 100644 index 98d21b8f4..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/3b/ff8cbd80c667c2a134da568e1f628d.txt +++ /dev/null @@ -1,2 +0,0 @@ -18427041928689502290 -1572542831061707000 \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/3c/174366ab28814ec6bc59b9baac74b9.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/3c/174366ab28814ec6bc59b9baac74b9.blob deleted file mode 100644 index 915399784..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/3c/174366ab28814ec6bc59b9baac74b9.blob +++ /dev/null @@ -1,69 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('.face'); -const faceCtx = faceCanvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); -const SIZE = 10; -const SCALE = 2; // Write a fucntion that will populate the users video - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - video.srcObject = stream; - await video.play(); // size the canvases to be the same size as the video - - console.log(video.videoWidth, video.videoHeight); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - faceCanvas.width = video.videoWidth; - faceCanvas.height = video.videoHeight; -} - -async function detect() { - const faces = await faceDetector.detect(video); // ask the browser when the next animation frame is, and tell it to run detect for us - - faces.forEach(drawFace); - faces.forEach(censor); - requestAnimationFrame(detect); -} - -function drawFace(face) { - const { - width, - height, - top, - left - } = face.boundingBox; - ctx.clearRect(0, 0, canvas.width, canvas.height); - ctx.strokeStyle = '#ffc600'; - ctx.lineWidth = 2; - ctx.strokeRect(left, top, width, height); -} - -function censor({ - boundingBox: face -}) { - faceCtx.imageSmoothingEnabled = false; - faceCtx.clearRect(0, 0, faceCanvas.width, faceCanvas.height); // draw the small face - - faceCtx.drawImage( // 5 source args - video, // where does the source come from? - face.x, // where do we start the source pull from? - face.y, face.width, face.height, // 4 draw args - face.x, // where should we start drawing the x and y? - face.y, SIZE, SIZE); // draw the small face back on, but scale up - - const width = face.width * SCALE; - const height = face.height * SCALE; - faceCtx.drawImage(faceCanvas, // source - face.x, // where do we start the source pull from? - face.y, SIZE, SIZE, // Drawing args - face.x, face.y, width, height); -} - -populateVideo().then(detect); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/3c/5bb761cd20700de78860f8ddfdf55b.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/3c/5bb761cd20700de78860f8ddfdf55b.v8 deleted file mode 100644 index 89a26c0e84651556eb6315766e50f11d8176807a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13867 zcmeHOTW=f36{aNWVnwdeq{&12vY7}d5P;;)-j@bixpveDO@h>xk(XA&+?HIM++}x{ zvQ#3E{R??6ivEl|=MVI?|D`>%T&|WEX-L}?8n=P~QoD2Ja?W?|qkrFz(azyvb~O;_ zmqt@>>J8ExbV<`_;`VQc5$}oLC1lV=+lPke&wkJGc zms2^I_`2no!lpJcsP8k+34qKr0>gG)3#Q^0rnYZ!8}q<+9p4p9c&>nUDvi9$1+{cc;E(xAV_m4^@WMKi7m_KRA58y-6w)OwxLtIy@PhnJCY;U zeEV>gZ&i++mK@uTVlG*}LJmcq4bRRB_A)Gsh}Uj84~aJYeJbc)cL(i8XR?-K!ML+rK`{y7{IN zDi|mRAm7osVQ|xBzVBn7Ie`caVvV7r95&fG7XuLi(AZU}6c73_ANItv3BuQd0kk&= z2cj270_}1UkYO)FI~hqj0@Sb`k$&a*E)Ub}NtmENy+t%O2P9#l*IS$L)pyMKq(O&T=CH0dU`mjgROvBpaZW8x} zb^%ra^!sG9eDRC~BnitGb@Wj|aU3Qhh%d`GJLrSr&F8#R&U93-k2cWzVZ?evF1`lK z^;IsY^b{S$!)!3jj^m_HfQ_AAOi2&j3)3${nvmq`c(gsL=Lb4FK)Yf3xwK)YxwTsY zDSeTVcvM5X=~bV`z4T$bHrfLn)^K1E0}Q-F!9h@6xQ6c8hD99R_BgT40*k6)1s1nS znu>|3U7EBDUJhwCcQ`l(Kk!W5aa_~!DR>Qd#C#pQhL857rTK3xJNR< zkI^3d5lLtt7e}j0qmK4-C`H-t#TD$>_6gOoj(yJ!xDgQ3G)%|i9wvcn7#`Z`lL3r8 zM+c>jhSFDQT$t1qHe(#?9yV?2!Lb8_gV)A^Z{QfsY4FdQ%@+Jpl8PovQ?wnX&!2vI zDxvTwy^7fBI|g=iKaGc=-H#-qPPiJWXn#zwMuf=FLMb~`U!ZJgCrrN;a^jU#Y3r43ux8l#Q&rnFwqa_u=q`(wW%Gl?Z^ ztjb}&34lty*iJK&f$yznVPAY*%YS}zgz9Pd7jg2#!DzGUrqFw7$i?SD0I@c>$$P^n z{PR#q`&%2mFFlyrmM*Ebd9JWuTIyS(ssGzzMbz+9vBeTUs+_tAV^qU#iGb9k;|R#d zjst1APOxCabvYJP511u92n>i}85QgCnc6~?k;3h9&6W%%rotLicNsAR^KEVuM_{TG zVndJE-!cqa_&&v!X`2&0n9a}UVgBxB1inhB@1&MaAd`^}6e^(%7o#ot9sK2052}_$ zm4|FVP4J(a`x^Xwrj7DXO{4K;15%YR>a^i|!l6?Dj~?c4zuV70Xw0w5@qMU>hEZG7 zr-n3NLA#?IGletstl~co9yF@4Zfa#7`Th2?hE~0t%rhI~794b`;^CmJs)vrP@@g~% zC=aR&l@AKix6LvpoAgcF0Zkg?jH<6c@m!&QDD)a57iHa6oUR{;8 z=1fEPs|QRUZK!L1hqaB0_vyUFU~Im{aNXjol;JDo;zCkq?-ebOdu2=T8n8vB10)U= zkdqpSXul#Pl|z=56WLi_BqSB>LLn)M#_Q!CHkZ-y0vV|$nU+y}2Qsp(0DL_k*UKj@ zlS*m-bkeOVW%cu1R#SAPk;!HD{q~H^rd3>(=`S)1Dw<`?!r32Yt%7RSDXX9wd>i0Y zv9;Dja2}c;-!j28Mt}Tt2BS(=6-ld-qhqNo z>ME;A$4M*m4NF+I;|kq&4eVIlG=<|Et_kf{;_!+*{<`rN1tOD*^YJZ=v~@HNZd=JP zk`BL7+&O4;`$?-8($*JWJ$*WUC8bkIbEgD!4biD;4>zy{mr0xeGFnp?(7mUG0xC`2 zqL^?z$#S96?YWp^VtO1?#{_n8mtfZ?w#DFs>MK=yj;A|IN@YYwgp@iNgsUzwl9F&C*>WsO}I>Rhu6s9g507VC{=pwHEy7uj*?VK zNa28r@b-E?cf$qA@4LBlR$#BZ*UIz04r;24C~=l= zUe!OI1Ge(c6w2pat_@P%uaZK}JI$2k;+pCr%Hz&2q6)O numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/3d/dabda015e754985e2f524210ae76e3.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/3d/dabda015e754985e2f524210ae76e3.v8 deleted file mode 100644 index 26d940197b16569b44b4ac2192ecb42bc898653c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13867 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 diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/3e/4ef0d4a0ff1d5108467cc7124ec250.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/3e/4ef0d4a0ff1d5108467cc7124ec250.blob deleted file mode 100644 index fc38b9642..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/3e/4ef0d4a0ff1d5108467cc7124ec250.blob +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/3e/cd8e355597dc0e0e566803176421fc.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/3e/cd8e355597dc0e0e566803176421fc.blob deleted file mode 100644 index 9b7d11fda..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/3e/cd8e355597dc0e0e566803176421fc.blob +++ /dev/null @@ -1,400 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/45/07a7338e0278cfb0fd0e8d0ec697b8.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/45/07a7338e0278cfb0fd0e8d0ec697b8.v8 deleted file mode 100644 index 141959e5edbdc66594501e17736cd4dc5e44c671..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14231 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 numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/46/21882fd332457d98d699086ec2f164.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/46/21882fd332457d98d699086ec2f164.v8 deleted file mode 100644 index 2d6e7a6407de844ef361299c8bfbf5e292112524..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14231 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 C{6dBR diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/46/31b12006264ff1670fedae09320702.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/46/31b12006264ff1670fedae09320702.v8 deleted file mode 100644 index 1b246c6b2368ae8f0a0c8f953e1224c548b050bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14231 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 H)^PK`+qpfE diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/46/62f28af4c2c22ed8e875f5956612f4.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/46/62f28af4c2c22ed8e875f5956612f4.blob deleted file mode 100644 index bbfbe6eb6..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/46/62f28af4c2c22ed8e875f5956612f4.blob +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/46/d6abaa961b3d63e7affe5e2ebbd2e1.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/46/d6abaa961b3d63e7affe5e2ebbd2e1.blob deleted file mode 100644 index a6f8410a6..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/46/d6abaa961b3d63e7affe5e2ebbd2e1.blob +++ /dev/null @@ -1,362 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/4f/5d03c58f6a57df69ae2f4b1278ee63.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/4f/5d03c58f6a57df69ae2f4b1278ee63.blob deleted file mode 100644 index 5ebec156e..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/4f/5d03c58f6a57df69ae2f4b1278ee63.blob +++ /dev/null @@ -1,389 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/51/63a817c95b0f8c30ab38473d169cb4.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/51/63a817c95b0f8c30ab38473d169cb4.blob deleted file mode 100644 index 686ecddf7..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/51/63a817c95b0f8c30ab38473d169cb4.blob +++ /dev/null @@ -1,362 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/55/e65f93c7ff0111da7a377b44ef4418.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/55/e65f93c7ff0111da7a377b44ef4418.v8 deleted file mode 100644 index ea96f168c90e369918a2857b449fbcc1e90df0f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30033 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 diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/56/c7b5fb6aa436095bb73a93a42bb8dc.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/56/c7b5fb6aa436095bb73a93a42bb8dc.blob deleted file mode 100644 index b8cca6c01..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/56/c7b5fb6aa436095bb73a93a42bb8dc.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["video","document","querySelector","canvas","ctx","getContext","faceCanvas","faceCtx","faceDetector","window","FaceDetector","SIZE","populateVideo","stream","navigator","mediaDevices","getUserMedia","width","height","srcObject","play","console","log","videoWidth","videoHeight","detect","faces","forEach","drawFace","censor","requestAnimationFrame","face","top","left","boundingBox","strokeStyle","lineWidth","strokeRect","stroke","imageSmoothingEnabled","drawImage","x","y","then","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","clear","hmrApply","v","hmrAcceptRun","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":"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","file":"pixelated-face.9be9ef2c.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/57/0e46cef4aaf3e1bcdf2d88d29c729d.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/57/0e46cef4aaf3e1bcdf2d88d29c729d.v8 deleted file mode 100644 index 8ff02355a63e7c5b387b053214d38c1228b2b39b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 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 TpwmvtpB+9u&R}=>dNBM8*6Y}{ diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/58/eb2dc531195768f92a9461f5638177.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/58/eb2dc531195768f92a9461f5638177.blob deleted file mode 100644 index 5186a0d8a..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/58/eb2dc531195768f92a9461f5638177.blob +++ /dev/null @@ -1,396 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/5f/c6c50f7624363a875dce67247624df.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/5f/c6c50f7624363a875dce67247624df.blob deleted file mode 100644 index 21b3f682c..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/5f/c6c50f7624363a875dce67247624df.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["video","document","querySelector","canvas","ctx","getContext","faceCanvas","faceCtx","faceDetector","window","FaceDetector","SIZE","populateVideo","stream","navigator","mediaDevices","getUserMedia","width","height","srcObject","play","console","log","videoWidth","videoHeight","detect","faces","forEach","drawFace","censor","requestAnimationFrame","face","top","left","boundingBox","clearRect","strokeStyle","lineWidth","strokeRect","imageSmoothingEnabled","drawImage","x","y","then","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","clear","hmrApply","v","hmrAcceptRun","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":"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","file":"pixelated-face.ee4cfc58.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/5f/d210552b956249858a762c31b80aae.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/5f/d210552b956249858a762c31b80aae.v8 deleted file mode 100644 index ea56c4283d6fa37502abfc75476f2c83b0fb4da3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13867 zcmeHOTW=f36_#Y`Vnwdeq{&12vY7}d5P;;)?41T$xwh2^O@hRhk(XA&+*Vwh++}x{ zvQ#231^O5AToirikI291YyL}n_QKWjA`NMqLgQ8tKx%i+T+aE8nGuc}{yn8KGaCvi$9%C`@ITeom9F zOdgo6>dwG@CI`8dwiGVZjW zCo)djuVliaq|M}65QZ{tzM$tc;c+lX+wwxjJV<2HwhXPQ9a1i}$1;^X4WdwcB*P?% zlWs6*`|zgKP5ZrKBe$|tdCdD$$0|>Zj#qI!VB=}Ao*(q&3OTsyRZ8aVUL9uDeA6hC z925hPZ|i~(VL06LJnV7Xmp-9p0UhPA@y>-D$Pj?WFDs?E-;czwC!dWGz8Vamok1{= zy&#lmTS%V{dnwvVX?!L@4I3ft*Pd^SAW0twG5X_ML}P0}V=jA5PI*_hvlYahXJDr+k#q#?c!3ut$?r!`h>69QCDk z4pss5`)H$j@r?R34yqRo^ifH17{t<#E~+k_ z5!M*G!zqCb-x3zJC1yIM z76dsy(+$%y>2+aEXKluiw$$6a&ORGFD~wep-3LmB*W7Y5(!J%F;ew($cCt zZK)}$VWp=z=*(cI<3eqW63(IeMNJ_L4kfpm zKK?-s^o2`Evw_~t8oU9a;DiFZ#Iq!%CYH1b7LH^@w@fZ{lR=fv^Z8hTk;ZKcvJYK2 zh9F$nL=xBHo^ZHnxs(ZODsh?BaCmZEtfA!I|B%xC^Dkqi`|;Byl}=S$E!9Ca>;`pE zla}tu;krkd0bUA#f~o7fCUq%PdL=h(Dr@Snl9D5;sloA8f__{cZPt-F#Ic3WL3y3b zk(u1}OhQ04JcdofGRAr^ouALb{N2q6Je5%2Ni7{iCZ%UksDv_HgzjYD!CzkXplVrG zdFVRS1pl?MtHIA_+9?0jG!|VnAyo;&vkrWZ1#}AF(S!W$cf0uqi^OF$z7G}AAna)R z#E{l2Xm?a&22m1Zt%QyiXGwl=E{nmM)(^sFR|aR@w4-5NKktrTK)G|!qn91+EDpr@ z;frCC2L5HUJU~a|P}i36_%-bXXJIo)Wj~pGRqi|A)UU6OnoSLJ^@e@e86MA)KZQza z^$4i*W4E%(#GErx26eSzTAt}U7<;h3jy7qU#*hZy7c`~KvXuKWE3E0d$)PMMNmeA& zndx(1*DWb5n-iZ2Hd-Iu0W&%$x>>98$nQ57HMHvGvOKd{wBVpi6%7X+RXwz@%FEG| zpxmo3R8{oHb#2m<5n&egimseXLm$C&mMc$y91GvLkz|GQ40`7;$Hv&$T%FY9vistnI zrog26Z(|Fr}LNoI*f&AaXmg8Z|rxK)XID~P?ENsJ7 zmoE0#pfq1~04`Q*0;kFd)P-t+1NS0Kb7Pl~x_CXQcw&P)# zIs9gM=b+i`$L(Ig+Mj><^l9-blTIzooe2Czdo6gwV;;t+f=eW_~C;bdn?$>&V1-kqx$*OXX~{=Qze zv3~q|(exv4V|Dh?ri64eLI)VYRp>sg4wASxF?k56}4@tDT;Yj7eI5laZP;@<#A^hQ3cvF9GcwYLSk61UQj#G8?2?u zSa1Ja>|; z!e%iAenTWoF1eUtx_(KeZsy=qj=BzfO2Q?kp9j84W+?fetv1H1a`5z-R=(EtQc~_U zXQOh|^obT`#S+u2rKE&xT}sNq(`TBLl9GJ+wXT=aLW?QyUCemHv6L2@UY)Q{#h%Me ruiQi~k9iqL7QO8QVqw^x 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 GXzPCuQ$LIV diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/60/ca021faef3e03ad7cc355165b68ef0.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/60/ca021faef3e03ad7cc355165b68ef0.blob deleted file mode 100644 index 99366f6dd..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/60/ca021faef3e03ad7cc355165b68ef0.blob +++ /dev/null @@ -1,400 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/61/b8ff189925b66e76608d959e41e873.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/61/b8ff189925b66e76608d959e41e873.blob deleted file mode 100644 index 1c9aaacff..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/61/b8ff189925b66e76608d959e41e873.blob +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - Censorship - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/61/f8643ca8bda452602c30ff27207cfc.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/61/f8643ca8bda452602c30ff27207cfc.v8 deleted file mode 100644 index bbedd66f668ff3b8a6d45c7f288379c145ab06b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcma)4O>@&Q6ikAfq@}&I0|!o?H(W#F?-(vHr5-XshnbcemuLAYQOA~yB&P}aJN!>j zLndc*)9y-dccniUANmRgq5?k+FrUR~L`j)oSmrsKr+k*@QOLt2%VO|WXjb6Qk~oVa z%ySIWs6-ycS%^7HvNXf_JY_KEqNZ3@{(~_1#O45@DT%%!Hw024x z(o7gK(JQz3=W?|GGD`4z4vKEpG z@a(oF7(6MMl9r_XOk401UNJUv3DYEr0v^Xy&SK)TGMFcG9)~b&u-z*;ri2-B9%U&H zQVQdY=0OmLtc-cZBRH?9C0UVVg3Pi@}k&LylS; z2@hT#P832DSDPam}q_pE5>ws%@&Q6ikAfq@}&I16Mq6xCT4^He6szJ!F6mGc7kR`gl&%u_YtPX+r)ne*)By z$r;_WyHDC(>CeT7p@Na%;AeAEhDjDdWivSdY8hh-T@b(H3L0^W+475F9PMVVz; znniUSV@T7y<|$)&f>9LCW0=;W!EeN_;79P?pfvY_sa`X@hcngNuD755uf1m| z*9s>12{33Sm)leqQ%?6VS#7FFI@b7wHv|2Y+I_DeSOc3;CNHl?jN{| SPJ1bS_W1NTgWcup!SFB2C)tqz diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/62/471f5452d0e8969881f597caae7778.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/62/471f5452d0e8969881f597caae7778.blob deleted file mode 100644 index 5d99fb122..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/62/471f5452d0e8969881f597caae7778.blob +++ /dev/null @@ -1,65 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('.face'); -const faceCtx = canvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); -const SIZE = 10; // Write a fucntion that will populate the users video - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - video.srcObject = stream; - await video.play(); // size the canvases to be the same size as the video - - console.log(video.videoWidth, video.videoHeight); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - faceCanvas.width = video.videoWidth; - faceCanvas.height = video.videoHeight; -} - -async function detect() { - const faces = await faceDetector.detect(video); // ask the browser when the next animation frame is, and tell it to run detect for us - // faces.forEach(drawFace); - - faces.forEach(censor); - requestAnimationFrame(detect); -} - -function drawFace(face) { - const { - width, - height, - top, - left - } = face.boundingBox; - ctx.clearRect(0, 0, canvas.width, canvas.height); - ctx.strokeStyle = '#ffc600'; - ctx.lineWidth = 2; - ctx.strokeRect(left, top, width, height); -} - -function censor({ - boundingBox: face -}) { - faceCtx.imageSmoothingEnabled = false; // draw the small face - - faceCtx.drawImage( // 5 source args - video, // where does the source come from? - face.x, // where do we start the source pull from? - face.y, face.width, face.height, // 4 draw args - face.x, // where should we start drawing the x and y? - face.y, SIZE, SIZE); // draw the small face back on, but scale up - - faceCtx.drawImage(faceCanvas, // source - face.x, // where do we start the source pull from? - face.y, SIZE, SIZE, // Drawing args - face.x, face.y, face.width, face.height); -} - -populateVideo().then(detect); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/62/6354c296d29d3452e08583b9f84228.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/62/6354c296d29d3452e08583b9f84228.blob deleted file mode 100644 index bd89fe37e..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/62/6354c296d29d3452e08583b9f84228.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["video","document","querySelector","canvas","ctx","getContext","faceCanvas","faceCtx","faceDetector","window","FaceDetector","SIZE","populateVideo","stream","navigator","mediaDevices","getUserMedia","width","height","srcObject","play","console","log","videoWidth","videoHeight","detect","faces","forEach","drawFace","censor","requestAnimationFrame","face","top","left","boundingBox","clearRect","strokeStyle","lineWidth","strokeRect","imageSmoothingEnabled","drawImage","x","y","then","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","clear","hmrApply","v","hmrAcceptRun","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":"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","file":"pixelated-face.81502beb.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/63/47f1742f799a0ad5e04957450d479f.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/63/47f1742f799a0ad5e04957450d479f.blob deleted file mode 100644 index 1168aa454..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/63/47f1742f799a0ad5e04957450d479f.blob +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/63/66a25323b59d5ac9b78d461d656155.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/63/66a25323b59d5ac9b78d461d656155.v8 deleted file mode 100644 index d32146f7cfe3518421e3023b226bdda6ebee206c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39691 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 diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/63/73ce5a63dec74722e0f7609e3fa157.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/63/73ce5a63dec74722e0f7609e3fa157.blob deleted file mode 100644 index f9d8774d2..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/63/73ce5a63dec74722e0f7609e3fa157.blob +++ /dev/null @@ -1,397 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/64/1255f75edc2761b210183436c4f4a9.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/64/1255f75edc2761b210183436c4f4a9.v8 deleted file mode 100644 index fb9f5e9da2b78aecad9c3ee81bedaddb6c33888d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14231 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 numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/65/926e18c82313c3f0e3a95a83302d8f.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/65/926e18c82313c3f0e3a95a83302d8f.v8 deleted file mode 100644 index fab7dfe885c18c1625cf81c3ad0e30b12d2a5329..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2747 zcmds3ZExE)5Oy3pNxh^6Qf!|EqMruX7WFO%7#4Ij7OX3V#YMlhpva@mL>4uXPU0E; z8~Zi;7yCimS+U&(=;~lw_F;kn$-EPFcYN-7?)Rh9rY21#h(l$-ypW10^TH%^A@u`;yabH0_Tjp)P}uKajuD3`%UtTxG>N6~B=ddGj}nnk zCS%V_$ljEd==qKu3MiovP;dq2gg65HEQXMCLEVJv>rm(Uq|#GxuCSt5o3rM|aLy#F)W*;vU##93stTmO*;w|-)0O3g z7;kp^y470jkYiQwd?w(P7Vv$YlNpgiJ+tM^4s|tUmh6plow1xeQs$+~Dpt*hi#9nj zdRB2bH3sb2eQ?ydec=HSQsa5s*^$;1EYphy**EiPrgL*LXplW+-T=FNx9AWj02a71 zKzv8wC%zY@p)dUaQbZ01-}}hvKkfBPbptgxyESAl{tg7*w*P7}4?M~enFK6hfgc0+BL;suo(Gqh(Fchc ztt4i5$?Kgv3WK!Z1FD~(ahyU%A&WigMbeiZm8gk-p)g1|{}ra+KK=yWwif*1@wTq5 zWnGnjq$+&VkXR2AI`sPV)O9O}APleIx8 zQ|4?waK@Dq>&1(iu}aRnE3^z8j#CL#YctE$xacYiQ*+m}in|W#s}HFzx5mBl*%TwA z>s{(qoFX<$_;#IkZz(|^$%$n+K+Wtbr}yaltg%Dd%-Rb3{fS_fbxVe-o_8;o6BMNp s1l(r<53plhMj`QnD3me{BZ1Aj*jel%9ek27ereyAFt&g0_*tX*2a7>p?EnA( diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/65/c61e2c79f6d3f41a837ed8eb2480aa.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/65/c61e2c79f6d3f41a837ed8eb2480aa.v8 deleted file mode 100644 index 85492909d4d0ae506f877bf79b416b21fc914649..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcma)4OK%e~7)-)8NlVM22+pfdTtl)C?*lHN(iIU(5$NvI1 zL^-y`17t?mrRJ2=ywYdiP(|Jr+o zYOP_kcfN5jVn#pu5@CeOw})24_yAcN%zN;vq1J^_c(pWoh2h%w?VFnqj>IjksgXw_ zfY*l;l{8rE&5;?x%L8*Q7RQ@D1i`Kkmxq8iTHrS=I-l|m&i@6gv{_LH!$qSRZQxYe zuaX&Rw$<(gf)zTdcRe_IKAEFn_mAfdkfeH diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/65/f0573064dc375521a10842d2b9dd03.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/65/f0573064dc375521a10842d2b9dd03.v8 deleted file mode 100644 index a95280a7a85fcbb7c207248fd3ba22be7021e2c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13276 zcmd^GTW{OQ6}BDOPP|F8-P^sf#^Q5*gjrFd&(nGnaF|bIzP^#{a$(lb!wj z?0f*^S4K;3=}p!fbXm)2(avv&k?g_m5;o|P?fw0Py*eb@FIjI0G5O?_7jGZNQ3g@= zB}==I-Y35vKkWpjN2Ty6WsV`ZC72@|hZ&}2G2eAOooE&Xpu*LCUpE+YEoxy~ms2oo z4?M7|t{lpI-EvH@xy=mj`@(Yq6f=#$uwB<8n(GVjY%VMzea~i&!yQ+EgWoyV1J|v( zV$$|(T{6QDY~6HS+jbnwbfu7i8yLWd=5X$VNu^0G%a$Cdk8#%B8au8uwjISXSJBSFK@!JVOtwNf`GYhH3pDZ|`uC19Zbi#QL@8yE06(M`1$#@E+0F8n8q_uPK=5LOUOU+!_pd zFBH#`9@%V@8xXyW$*#zw>FbQ_@+5wRu14OIOw8zp+quRr668AxS zi7^4ayL$YT1uO}x$Dft055ok4_;vOCVFYV3-}oNuQzm&U!ItJ#s5dzY2N6lJmpS_NY-T^d%@+!6@sL&oCK z2H8!|`#kQY_d6S-o9Me54J>BZR5~0J1J}Vdbk8;{=IFL3nQfLBR5dFxxXscOCLwld z(Jp2;qOkz8PXH`10W6D~n7(}OaMyHf&#--$+{`1)w=CAx$zB1WDEmE}6HWMmXMk-|M`8}u!S<{`GUj9641_~XveRb+Yp z#PKR1XN{wc3eVFpKiaBZOauL>K`w#%(GFPz_JhW|fSue);~{$WgB(#uQjJuyHx^hU zLh>zz(srb=z}d)7n0^QB#p!4d_h!H>J+OSv9WXu9aD3YgObdMJQ30m0!1^Dz+Jo>l z6yR(YdyD691A&vz-a7dF*V;p+O_e=54RWUp$np>)4EpDH?=d$Gn0Ud?p!GbBBTO?@ z3|rS2qs`7%9=)Cx-g8X$#(5>LAeM-+szmuN0IK|AJIz>zIk%C8efVZ0|M}ya1JX#t zKf}>KZjZL=X^MQ1h7ukJ0q(IeP2L(t;h%<($KQ?7M|lQQ$I>O;wx|*Isz^QAMV)+- zkD{u$%4DZ%c1504i;nZ8PaOw~Hl0xr%ylINtipr^9;OdwSVj$F_tZG9^2ycN??#?- zrjnnjyMh@Yd|P5o2$buL**f(DuA7!^vCEQQXJgLYTIy+D=0z)tUg;c4#j2d6wu}5Z zB-pF`@$Y||_~TEHR`f?zJT5&&)vWZC1^)PX?vE%T{D}h-&15X#$O?JVvcUBnu5;6q0L;dkRqA49dpqyp_~f#Tq}1O3k<Eiq)5#TjxWl% z<8o>9iOe-z2SIGPo|`8!OL)Fz7&iDmrxwC<;s>);+&s+xclV9H%BU(YefNFi#C{n& zLrw{qlbGDdzvE`|yoUr+S(vj;tZe_ewWs0FJ#AEcY8sDUH*t3vMrR%To=7Bh@zMR_ z?GJm!2an}>)xMA9RTyo2>L7syNvdhEQToh6~1JbXS(voJVsmJ8@;0x3vHCa+m9Jd2uP2K{vURXOisQop%a zYTh;W)f@J4W^~d^@f1m~>Jds8%Wmbx@65P4pl`Lb; zl68BLb0NBJ31pJM$axK&TY(64-3Dnp!U(wJqs`F`jA>VH{eRqEHtMN|%S(gi__PEM z6yo8aqoT0JA#ydD5|p>=16AbfgaSp{?RLQ`FHL2Pws7{7vmW)l$EO=R<4F{Z;IgvS zT=NoXX`%8or69y|$3M}?o%#aP2b*fTW`AR|mI}_^BwQpqkfl2T|qUXkt!8yzgLk*bqv z8^zaPBg+af@yap9IbpeLZ0zymV4|PWWR5Htig_EP% zsG#a~Dk`WNUj;ao>_WgPg=PVFZvo&`om?y63hD#NcSll77M%J5z#Yy5ZeDI0a6dh| z5^$=zauMKEGH(YsRj*TkQ#HN{a4Ok_fKv*M0hiacMS!zs@wSEBAP=ZPJ!Vte^{E{& zKx>;W7U#IlcT7*sBkXS=n_7{!uh$y_XKH!_xIqKgNA9@FTeVm?56#c7=wKS7Z$6yC zs8UsB1*z2N*eZ(-0@b493R3un1(xl&pxdrN9ZQ-fUN*jkjNM2N& zjt|V!_Q7~_+fIg2p75LH@o=--PujhZx4-=Q$&>M`+&Zch>jU(LK4D)1EAh(hJS4HjdIQ z#(S`L9!Kfp?`NE8*evJ3?}&uyA(snGmk+7*%>sPNR+oWKDY!!Si@-On45j|_(I$9R zHlAJ6+Q+)wO3JwwYE-tGUD492SfP8hm6VXJTS?h?c1_b(Qi`uW*5y`OYB1$hh`DSy zvC?wgtIPJ8z2|D(D<@IdV-W~e8)vy?)W_N1_=4=^|1y%_)5aU9<$spoIToH|jc)u0 D1+fXj diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/66/eddf704016690a5a15eb89c2ad1a39.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/66/eddf704016690a5a15eb89c2ad1a39.blob deleted file mode 100644 index 85b903184..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/66/eddf704016690a5a15eb89c2ad1a39.blob +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/67/52e040907c21a76b243a2e7d895861.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/67/52e040907c21a76b243a2e7d895861.blob deleted file mode 100644 index 0f31100d9..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/67/52e040907c21a76b243a2e7d895861.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["video","document","querySelector","canvas","ctx","getContext","faceCanvas","faceCtx","faceDetector","window","FaceDetector","populateVideo","stream","navigator","mediaDevices","getUserMedia","width","height","srcObject","play","console","log","videoWidth","videoHeight","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","forEach","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","clear","hmrApply","v","hmrAcceptRun","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":"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","file":"pixelated-face.997b9c20.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/67/5fb32fdd4edf146a95c67f42a77f2c.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/67/5fb32fdd4edf146a95c67f42a77f2c.blob deleted file mode 100644 index 628502b88..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/67/5fb32fdd4edf146a95c67f42a77f2c.blob +++ /dev/null @@ -1,399 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/6f/a34668fd690c083de1b0e1d90d2fbd.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/6f/a34668fd690c083de1b0e1d90d2fbd.v8 deleted file mode 100644 index 5993c350fb727e39c2cfb8c3b5c7f541237d8d0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcma)3O>@&Q6ikELq@}&IL(iT!TuTzgj%B#OlzPYj9cEf?T=enOsAEe;lGB9zW&Q)G zA(Jz@X?LHryYJ80hXV_JEg_vvSUJvSQ_OkJ2ro-PXKGxQQ=&*-6d5E7<`1&jvCf(m6IG*G2t0zL~%)` zlxK=cPB|5sisNu9u|*@%2#x;T+a8>0BkE3~tYY*n68+rS&I!DS6WfKh3!nb4y%%Vf z76x1As{jM;>{Bce254e?=q(I)kY~xf2d`@8Lpn*X7tS`AE@R)Zxp{w2+%d(R-V+I2 z?j|bjP}$XkV60^VAQU#;w7%6mBd7p$_bVF8XFYRg#-$J&3< z+%dPVHiwWj7?|Dk;LryaqWdK125)=21ButaaQ^#p(}#gyH{90S`d)f1@#c9gA%1k+ R8U3@v=jHS^=dXJQe*qds+lT-F diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/70/2d3e0a89b580cdc8f755ddc192738d.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/70/2d3e0a89b580cdc8f755ddc192738d.blob deleted file mode 100644 index 0af88381e..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/70/2d3e0a89b580cdc8f755ddc192738d.blob +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - Censorship - - - - - -
- - -
-
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/70/3c9e91a8806df813c5f361ccef1dcc.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/70/3c9e91a8806df813c5f361ccef1dcc.v8 deleted file mode 100644 index 793a523cdb55b15f898af144f4e6db1680c4a71f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14346 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 NhXxfas9_Da{|hLmWdZ;I diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/70/6b296e7bbf96b168ca5b2b5c2e61eb.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/70/6b296e7bbf96b168ca5b2b5c2e61eb.blob deleted file mode 100644 index c7e1a2880..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/70/6b296e7bbf96b168ca5b2b5c2e61eb.blob +++ /dev/null @@ -1,64 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('.face'); -const faceCtx = canvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); -const SIZE = 100; // Write a fucntion that will populate the users video - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - video.srcObject = stream; - await video.play(); // size the canvases to be the same size as the video - - console.log(video.videoWidth, video.videoHeight); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - faceCanvas.width = video.videoWidth; - faceCanvas.height = video.videoHeight; -} - -async function detect() { - const faces = await faceDetector.detect(video); // ask the browser when the next animation frame is, and tell it to run detect for us - - faces.forEach(drawFace); - faces.forEach(censor); - requestAnimationFrame(detect); -} - -function drawFace(face) { - const { - width, - height, - top, - left - } = face.boundingBox; - ctx.clearRect(0, 0, canvas.width, canvas.height); - ctx.strokeStyle = '#ffc600'; - ctx.lineWidth = 2; - ctx.strokeRect(left, top, width, height); -} - -function censor({ - boundingBox: face -}) { - // draw the small face - faceCtx.drawImage( // Capture Settings - video, // where should I grab the frame from? - face.x, // Where should we start capturing the face from? X and Y? - face.y, face.width, // how wide and how high should the face be? - face.height, // Paint Settings - face.x, // where should we start drawing the face on? - face.y, // how wide and how high should we paint it - SIZE, SIZE); // take that face back out and draw it back at normal size. - - faceCtx.drawImage(faceCanvas, face.x, face.y, SIZE, SIZE, // Drawing or paint settings - face.x, face.y, face.width, face.height); -} - -populateVideo().then(detect); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/70/c264b30620e59e346149d758a75dad.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/70/c264b30620e59e346149d758a75dad.blob deleted file mode 100644 index 098a9a13c..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/70/c264b30620e59e346149d758a75dad.blob +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/70/fc258882c394e9ae357dcddb4a3bbb.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/70/fc258882c394e9ae357dcddb4a3bbb.v8 deleted file mode 100644 index 6f8a1bda7532e731930cf52536f4ed2779657659..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10677 zcmchdZEF)j6ou8cX)LK|DW#TDWC$W+Lo6a9BEA$+Y5icUh=_IFjGL9sZcH|5OMkrH zRGBk@$?V*V`mK~bdG_3yd*&tixm>7Pvss?@wYt93YPZ_kQP%H9t)150hX=)I5bOP@ zuNIokL3Dhm7RFIF(uJz`qJBTkli|~(Q1f}z(?{xZqH{fnO5LGV z)rB+qdwBkF>RLZN(b?p=?Qc=6Ti=JOUJTMC&7;hzJe&W+Abi>(x{uTllSpYuem84k z1}P0g)jLHz>gl}n8rl@YNNHexLwCdsQW}O@{xQ;n(*vF9xGV-X)Y@Jj^WqSw*-FEpe@6K@8ak#IP}~#%swxG*SZ9_D3{t|5 zF9iVG62nMoV6J`vgWHoZWcOrs3V_%ayCP+vD{hCvRe0t0#6CzF=!2UA5+B?Y0HZ1e zrk-SN1?uh;n2XC3M+AVwjR0_}A^?mP=D34FN;B@BL<5SOHbB{F;|c&UnqoVogq@{C zm(Pp5)F-Z;4RANbI8qv%-_k=dBfM;n#0*jf`q&jS!hO6DGpf2DlaYH6Xt=w7X>xLS zK5HKU95)1js|o=yZZOLR1}V+(drt#^aeD@^s-6MkzSs~cVW{#n0OA8Nk(7q$N&+z6 ziW%XRI}|fW8R+Aym=W%yBW6@3!IIt2tbM>0TWM;g7SEHwxfcM78v|ff#Q+!^%$k8g zO8A+5x&extI6&En<7yW$?uhM>5_bH10pPf24_LC#9)3&D#FoO##$Bi3gOsLhejj`P z!N(ghqbdQgBGHqq1Xyt=Kx2{sySkip=>#A(vk*v1@8E#Z6f;N}$ha+LkkT+z?KsUl z#j)cQ1v@)p6e$hLHJ`zFEM}0>FjV73=sb8L29nYM{iZ&M8TJ_Y8Qd!YcLVtu)|J2! z?&*&LtMG+cg*9i3yWa4s{Uoca*KMWop_cnae>C}8;{A;87(m=&x&o1uhUj<2-4cUA zu^Pyr_7PT&lwQWvOk*)N%;?Np4El(2prf86tAM)7v;!0=1MO^z8KewkC^3VShM_L! z(Kt;a_ct-98h7V~s#Wd0z~BZh7gH#xi5a9c47G5acFL|}Hcu_^LN`$?7*+NTKZ+_UVc5R`ld*eF-!U}s%CI`$gp zXK;5P7@b|KWG)8Q3VCMQGr+~b+i)3pyK#jNFlx;40K;CM{XV#<560Byb}=sUVUcM^ zUT&EciCeQ9M#*Q9g4LRCmaBH~!(Gk5uvarRmlcV(ZmVK1q%4; zHf{s}Man=sv|Rk7;m6x>r?WEC`I6 - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/72/446e9f35625c9c5eb2858966954488.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/72/446e9f35625c9c5eb2858966954488.v8 deleted file mode 100644 index 344b3edd12629e3bb97216e708349113d4fc78e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22821 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 Pm%{H7uYEgBp`G~~j*9EH diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/72/68ddbd60fd585b327bfc07b8f6660c.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/72/68ddbd60fd585b327bfc07b8f6660c.blob deleted file mode 100644 index ad708656b..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/72/68ddbd60fd585b327bfc07b8f6660c.blob +++ /dev/null @@ -1,400 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/73/208fcbfa1c008e0bd140ff4799636d.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/73/208fcbfa1c008e0bd140ff4799636d.v8 deleted file mode 100644 index 5dd84ec6171351a22bdf1f20e6e9980969d3dfad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 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 s+Vsjz numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/75/d7acf4213974e0824f1f5a48ac7058.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/75/d7acf4213974e0824f1f5a48ac7058.blob deleted file mode 100644 index 3f123699b..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/75/d7acf4213974e0824f1f5a48ac7058.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["video","document","querySelector","canvas","ctx","getContext","faceCanvas","faceCtx","faceDetector","window","FaceDetector","populateVideo","stream","navigator","mediaDevices","getUserMedia","width","height","console","log","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","forEach","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","clear","hmrApply","v","hmrAcceptRun","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":"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","file":"pixelated-face.bf3a9995.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/76/2598f316b425d2966ded84ab4f93f1.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/76/2598f316b425d2966ded84ab4f93f1.v8 deleted file mode 100644 index 91984d4257a0e18a302149a698acb78db7695445..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45436 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 numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/76/cb7d9bbf380917df0a75c5edf0629a.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/76/cb7d9bbf380917df0a75c5edf0629a.blob deleted file mode 100644 index 220b89d2a..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/76/cb7d9bbf380917df0a75c5edf0629a.blob +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - Censorship - - - - - -
- - -
-
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/76/e1268c78e38669e01f96d4495676a9.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/76/e1268c78e38669e01f96d4495676a9.blob deleted file mode 100644 index 29314aec9..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/76/e1268c78e38669e01f96d4495676a9.blob +++ /dev/null @@ -1,73 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('.face'); -const faceCtx = faceCanvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); -const optionsInputs = document.querySelector('.controls inputs[type="range"]'); -console.log(optionsInputs); -const options = { - SIZE: 10, - SCALE: 1.35 -}; // Write a fucntion that will populate the users video - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - video.srcObject = stream; - await video.play(); // size the canvases to be the same size as the video - - console.log(video.videoWidth, video.videoHeight); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - faceCanvas.width = video.videoWidth; - faceCanvas.height = video.videoHeight; -} - -async function detect() { - const faces = await faceDetector.detect(video); // ask the browser when the next animation frame is, and tell it to run detect for us - - faces.forEach(drawFace); - faces.forEach(censor); - requestAnimationFrame(detect); -} - -function drawFace(face) { - const { - width, - height, - top, - left - } = face.boundingBox; - ctx.clearRect(0, 0, canvas.width, canvas.height); - ctx.strokeStyle = '#ffc600'; - ctx.lineWidth = 2; - ctx.strokeRect(left, top, width, height); -} - -function censor({ - boundingBox: face -}) { - faceCtx.imageSmoothingEnabled = false; - faceCtx.clearRect(0, 0, faceCanvas.width, faceCanvas.height); // draw the small face - - faceCtx.drawImage( // 5 source args - video, // where does the source come from? - face.x, // where do we start the source pull from? - face.y, face.width, face.height, // 4 draw args - face.x, // where should we start drawing the x and y? - face.y, options.SIZE, options.SIZE); // draw the small face back on, but scale up - - const width = face.width * options.SCALE; - const height = face.height * options.SCALE; - faceCtx.drawImage(faceCanvas, // source - face.x, // where do we start the source pull from? - face.y, options.SIZE, options.SIZE, // Drawing args - face.x - (width - face.width) / 2, face.y - (height - face.height) / 2, width, height); -} - -populateVideo().then(detect); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/77/66a06de76416213338d8563b77054b.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/77/66a06de76416213338d8563b77054b.blob deleted file mode 100644 index 73a98d438..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/77/66a06de76416213338d8563b77054b.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["video","document","querySelector","canvas","ctx","getContext","faceCanvas","faceCtx","faceDetector","window","FaceDetector","SIZE","populateVideo","stream","navigator","mediaDevices","getUserMedia","width","height","srcObject","play","console","log","videoWidth","videoHeight","detect","faces","forEach","drawFace","censor","requestAnimationFrame","face","top","left","boundingBox","clearRect","strokeStyle","lineWidth","strokeRect","drawImage","x","y","then","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","clear","hmrApply","v","hmrAcceptRun","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":"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","file":"pixelated-face.b4d6c790.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/77/7f80d3999546112b6e32bf82e7b44b.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/77/7f80d3999546112b6e32bf82e7b44b.blob deleted file mode 100644 index 28c20e62c..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/77/7f80d3999546112b6e32bf82e7b44b.blob +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - Censorship - - - - - -
- - -
-
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/77/d197c5d6c654ef187afc80748b46ff.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/77/d197c5d6c654ef187afc80748b46ff.blob deleted file mode 100644 index d6b914326..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/77/d197c5d6c654ef187afc80748b46ff.blob +++ /dev/null @@ -1,68 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('.face'); -const faceCtx = canvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); -const SIZE = 10; // Write a fucntion that will populate the users video - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - video.srcObject = stream; - await video.play(); // size the canvases to be the same size as the video - - console.log(video.videoWidth, video.videoHeight); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - faceCanvas.width = video.videoWidth; - faceCanvas.height = video.videoHeight; -} - -async function detect() { - const faces = await faceDetector.detect(video); // ask the browser when the next animation frame is, and tell it to run detect for us - - faces.forEach(drawFace); - faces.forEach(censor); - requestAnimationFrame(detect); -} - -function drawFace(face) { - const { - width, - height, - top, - left - } = face.boundingBox; - ctx.clearRect(0, 0, canvas.width, canvas.height); - ctx.strokeStyle = '#ffc600'; - ctx.lineWidth = 2; - ctx.strokeRect(left, top, width, height); -} - -function censor({ - boundingBox: face -}) { - // draw the small face - faceCtx.drawImage( // 5 source args - video, // where does the source come from? - face.x, // where do we start the source pull from? - face.y, face.width, face.height, // 4 draw args - face.x, // where should we start drawing the x and y? - face.y, SIZE, SIZE); // draw the small face back on, but scale up - - const width = face.width * SCALE; - const height = face.height * SCALE; // then draw it back on, but scaled up - - faceCtx.drawImage(faceCanvas, // Where should I grab the photo from? - face.x, // from what x and y should I start capturing from? - face.y, // from what x and y should I start capturing from? - SIZE, SIZE, // Drawing - face.x - (width - face.width) / 2, face.y - (height - face.height) / 2, width, height); -} - -populateVideo().then(detect); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/78/10f4d19bd288a3167b03af4aa0bfa0.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/78/10f4d19bd288a3167b03af4aa0bfa0.blob deleted file mode 100644 index e69de29bb..000000000 diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/78/39f54358397ca7eb511b6f197a4468.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/78/39f54358397ca7eb511b6f197a4468.blob deleted file mode 100644 index 690528c41..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/78/39f54358397ca7eb511b6f197a4468.blob +++ /dev/null @@ -1,65 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('.face'); -const faceCtx = canvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); -const SIZE = 10; // Write a fucntion that will populate the users video - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - video.srcObject = stream; - await video.play(); // size the canvases to be the same size as the video - - console.log(video.videoWidth, video.videoHeight); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - faceCanvas.width = video.videoWidth; - faceCanvas.height = video.videoHeight; -} - -async function detect() { - const faces = await faceDetector.detect(video); // ask the browser when the next animation frame is, and tell it to run detect for us - - faces.forEach(drawFace); - faces.forEach(censor); - requestAnimationFrame(detect); -} - -function drawFace(face) { - const { - width, - height, - top, - left - } = face.boundingBox; - ctx.strokeStyle = '#ffc600'; - ctx.lineWidth = 1; - ctx.strokeRect(left, top, width, height); - ctx.stroke(); -} - -function censor({ - boundingBox: face -}) { - faceCtx.imageSmoothingEnabled = false; // draw the small face - - faceCtx.drawImage( // 5 source args - video, // where does the source come from? - face.x, // where do we start the source pull from? - face.y, face.width, face.height, // 4 draw args - face.x, // where should we start drawing the x and y? - face.y, SIZE, SIZE); // draw the small face back on, but scale up - - faceCtx.drawImage(faceCanvas, // source - face.x, // where do we start the source pull from? - face.y, SIZE, SIZE, // Drawing args - face.x, face.y, face.width, face.height); -} - -populateVideo().then(detect); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/78/6fb293b794ba36e7ae09c3d3618f3e.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/78/6fb293b794ba36e7ae09c3d3618f3e.v8 deleted file mode 100644 index 705dd7ace05f2d1fa726a48a9f6130db89a0cefc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25600 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 L?!m<;Wd6oK=IKKc diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/7a/d0d3186d803581b2821e65f1bd368d.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/7a/d0d3186d803581b2821e65f1bd368d.blob deleted file mode 100644 index addfcb48a..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/7a/d0d3186d803581b2821e65f1bd368d.blob +++ /dev/null @@ -1,389 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/81/81bb47122b055ca713795945d47080.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/81/81bb47122b055ca713795945d47080.blob deleted file mode 100644 index 6445a46d6..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/81/81bb47122b055ca713795945d47080.blob +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - Censorship - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/81/8a788b6b296e05aac7e9c0f3bee7a6.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/81/8a788b6b296e05aac7e9c0f3bee7a6.v8 deleted file mode 100644 index 4597e9f4262154029575d54e3a4cb9c283aee73e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28581 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 b>7Dz1Azb|9ui_mw#^1%;`1B`vFX#UQB`HY1 diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/81/c959a51d09c0aefbbaec7f2e2294bd.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/81/c959a51d09c0aefbbaec7f2e2294bd.blob deleted file mode 100644 index 23bddc867..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/81/c959a51d09c0aefbbaec7f2e2294bd.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["video","document","querySelector","canvas","ctx","getContext","faceCanvas","faceCtx","faceDetector","window","FaceDetector","populateVideo","stream","navigator","mediaDevices","getUserMedia","width","height","srcObject","play","console","log","videoWidth","videoHeight","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","forEach","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","clear","hmrApply","v","hmrAcceptRun","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":"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","file":"pixelated-face.878ea558.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/81/cc3005104c4c9e65f7c4f9768ebfa5.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/81/cc3005104c4c9e65f7c4f9768ebfa5.blob deleted file mode 100644 index 8f3430dd0..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/81/cc3005104c4c9e65f7c4f9768ebfa5.blob +++ /dev/null @@ -1,70 +0,0 @@ -const faceDetector = new window.FaceDetector(); -const video = document.querySelector('video.webcam'); -const canvas = document.querySelector('canvas.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('canvas.face'); -const faceCtx = faceCanvas.getContext('2d'); -const SCALE = 1.2; -const SIZE = 10; - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - video.srcObject = stream; - await video.play(); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - faceCanvas.width = video.videoWidth; - faceCanvas.height = video.videoHeight; -} - -async function detect() { - const faces = await faceDetector.detect(video); // ctx.drawImage(video, 0, 0, canvas.width, canvas.height); - - ctx.clearRect(0, 0, canvas.width, canvas.height); // paintFace(faces); - - faces.forEach(drawFace); - faces.forEach(censor); - requestAnimationFrame(detect); -} - -function censor({ - boundingBox: face -}) { - faceCtx.imageSmoothingEnabled = false; - faceCtx.clearRect(0, 0, faceCanvas.width, faceCanvas.height); // First draw it small - - faceCtx.drawImage(video, // Where should I grab the photo from? - face.x, // from what x and y should I start capturing from? - face.y, face.width, // how wide and high should I capture from? - face.height, face.x, // now to draw it, where should I start x and y? - face.y, SIZE, // how wide and high should it be? - SIZE); - const width = face.width * SCALE; - const height = face.height * SCALE; // then draw it back on, but scaled up - - faceCtx.drawImage(faceCanvas, // Where should I grab the photo from? - face.x, // from what x and y should I start capturing from? - face.y, // from what x and y should I start capturing from? - SIZE, SIZE, // Drawing - face.x - (width - face.width) / 2, face.y - (height - face.height) / 2, width, height); -} - -function drawFace(face) { - const { - width, - height, - top, - left - } = face.boundingBox; - ctx.strokeStyle = '#ffc600'; - ctx.lineWidth = 1; - ctx.strokeRect(left, top, width, height); - ctx.stroke(); -} - -populateVideo().then(detect); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/82/0474e2e098c448e3628ec9c31f3ec6.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/82/0474e2e098c448e3628ec9c31f3ec6.blob deleted file mode 100644 index 00e781684..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/82/0474e2e098c448e3628ec9c31f3ec6.blob +++ /dev/null @@ -1,374 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/82/95e9ab5e621d7eb2054cd04b50d9fc.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/82/95e9ab5e621d7eb2054cd04b50d9fc.blob deleted file mode 100644 index 4e95875e1..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/82/95e9ab5e621d7eb2054cd04b50d9fc.blob +++ /dev/null @@ -1,71 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('.face'); -const faceCtx = canvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); -const SIZE = 10; // Write a fucntion that will populate the users video - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - video.srcObject = stream; - await video.play(); // size the canvases to be the same size as the video - - console.log(video.videoWidth, video.videoHeight); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - faceCanvas.width = video.videoWidth; - faceCanvas.height = video.videoHeight; -} - -async function detect() { - const faces = await faceDetector.detect(video); // ctx.drawImage(video, 0, 0, canvas.width, canvas.height); - - ctx.clearRect(0, 0, canvas.width, canvas.height); // paintFace(faces); - - faces.forEach(drawFace); - faces.forEach(censor); - requestAnimationFrame(detect); -} - -function censor({ - boundingBox: face -}) { - faceCtx.imageSmoothingEnabled = false; - faceCtx.clearRect(0, 0, faceCanvas.width, faceCanvas.height); // First draw it small - - faceCtx.drawImage(video, // Where should I grab the photo from? - face.x, // from what x and y should I start capturing from? - face.y, face.width, // how wide and high should I capture from? - face.height, face.x, // now to draw it, where should I start x and y? - face.y, SIZE, // how wide and high should it be? - SIZE); - const width = face.width * SCALE; - const height = face.height * SCALE; // then draw it back on, but scaled up - - faceCtx.drawImage(faceCanvas, // Where should I grab the photo from? - face.x, // from what x and y should I start capturing from? - face.y, // from what x and y should I start capturing from? - SIZE, SIZE, // Drawing - face.x - (width - face.width) / 2, face.y - (height - face.height) / 2, width, height); -} - -function drawFace(face) { - const { - width, - height, - top, - left - } = face.boundingBox; - ctx.strokeStyle = '#ffc600'; - ctx.lineWidth = 1; - ctx.strokeRect(left, top, width, height); - ctx.stroke(); -} - -populateVideo().then(detect); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/82/cd0858a9977225a17ac7f27a4d2946.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/82/cd0858a9977225a17ac7f27a4d2946.v8 deleted file mode 100644 index 10c925dd33d2308461dba77dca2962757bba3234..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13867 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 diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/83/377cb5032b7fa035d34cda01202a5c.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/83/377cb5032b7fa035d34cda01202a5c.blob deleted file mode 100644 index 653655d22..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/83/377cb5032b7fa035d34cda01202a5c.blob +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["pixelated-face.js","node_modules/@parcel/runtime-browser-hmr/lib/HMRRuntime.js"],"names":["video","document","querySelector","canvas","ctx","getContext","faceCanvas","faceCtx","faceDetector","window","FaceDetector","optionsInputs","querySelectorAll","options","SIZE","SCALE","handleOption","event","console","log","currentTarget","value","name","forEach","input","addEventListener","populateVideo","stream","navigator","mediaDevices","getUserMedia","width","height","srcObject","play","videoWidth","videoHeight","detect","faces","drawFace","censor","requestAnimationFrame","face","top","left","boundingBox","clearRect","strokeStyle","lineWidth","strokeRect","imageSmoothingEnabled","drawImage","x","y","then","__PARCEL_HMR_ENV_HASH","OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","JSON","parse","type","removeErrorOverlay","assets","filter","asset","envHash","handled","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","clear","hmrApply","v","hmrAcceptRun","reload","error","ansiError","message","stack","overlay","createErrorOverlay","body","appendChild","getElementById","remove","createElement","stackTrace","innerHTML","htmlError","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","output","deps","cached","cache","some","cb"],"mappings":"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","file":"pixelated-face.dce8a777.js.map","sourceRoot":"/__parcel_source_root/"} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/83/3bce9152245a022028722fe7877ae2.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/83/3bce9152245a022028722fe7877ae2.blob deleted file mode 100644 index bbdefd77a..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/83/3bce9152245a022028722fe7877ae2.blob +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/83/66632e3cc7a015931398178ced87b0.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/83/66632e3cc7a015931398178ced87b0.blob deleted file mode 100644 index 71af70611..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/83/66632e3cc7a015931398178ced87b0.blob +++ /dev/null @@ -1,390 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/86/ca1d4279ca2b9ca22d6cc4c575e93f.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/86/ca1d4279ca2b9ca22d6cc4c575e93f.blob deleted file mode 100644 index 1d3b0a66e..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/86/ca1d4279ca2b9ca22d6cc4c575e93f.blob +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/87/05cd336efd1c14e804ec90d84f784f.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/87/05cd336efd1c14e804ec90d84f784f.blob deleted file mode 100644 index f134aab96..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/87/05cd336efd1c14e804ec90d84f784f.blob +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/87/9ac3c8cf7d9d180b7dcf0cc6487d17.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/87/9ac3c8cf7d9d180b7dcf0cc6487d17.blob deleted file mode 100644 index 48d7e153c..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/87/9ac3c8cf7d9d180b7dcf0cc6487d17.blob +++ /dev/null @@ -1,53 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('.face'); -const faceCtx = canvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); // Write a fucntion that will populate the users video - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - video.srcObject = stream; - await video.play(); // size the canvases to be the same size as the video - - console.log(video.videoWidth, video.videoHeight); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - faceCanvas.width = video.videoWidth; - faceCanvas.height = video.videoHeight; -} - -async function detect() { - const faces = await faceDetector.detect(video); // ask the browser when the next animation frame is, and tell it to run detect for us - - faces.forEach(drawFace); - faces.forEach(censor); - requestAnimationFrame(detect); -} - -function drawFace(face) { - const { - width, - height, - top, - left - } = face.boundingBox; - ctx.clearRect(0, 0, canvas.width, canvas.height); - ctx.strokeStyle = '#ffc600'; - ctx.lineWidth = 2; - ctx.strokeRect(left, top, width, height); -} - -function censor({ - boundingBox: face -}) { - // draw the small face - faceCtx.drawImage(video, 0, 0); // take that face back out and draw it back at normal size. -} - -populateVideo().then(detect); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/87/9cdade3aed6904238f11aaf00a9a25.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/87/9cdade3aed6904238f11aaf00a9a25.blob deleted file mode 100644 index 8ab1f8c51..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/87/9cdade3aed6904238f11aaf00a9a25.blob +++ /dev/null @@ -1,395 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/88/340713f6cb6d89ad1dd0246181e0a5.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/88/340713f6cb6d89ad1dd0246181e0a5.v8 deleted file mode 100644 index 8cc6c0281d6b94c76d086b27f2e60c1519549274..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcma)4O>Yx16imXlNlSYvg7fN$Ysh|Q7cQXE6%kM&wcNP8wVxYT8+)<6Z9@Jm{{-9+ z<&1Bh8T-wQ{pb9{P{T-a2#Xl2C@WIRn;es-s#sZwsH)OLB>8-vL9j%-gs`HdD3Ywq zd6rYk%LE&dMsb;>m?JAPm*ShRbi}8^Yu?;jIF)u`^$x3H;y0?5ifRbl zrXv_VDVSD{l>1B@2nhwlvWgO%Cpjxvidh`bSzZ+>FES)JUSYRWia27a4Pl8?hT_`IMu!DdiUx7+IvRo zLBn|GeC=S|82#u=gfS`K9$5{OJ!COh4B%yp)`f9+xior3;e+qnH@6rah#M4W&s_1l!%gplU^|41eZXtY>8s|wPk9Sx|AN)ptkA*nU8@^x;Y8Xm zvN32j_4WvY6*<(~0UTL}&btqsT+#JlzaX&k7cG9DZAUP+n^mLRU4753 numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/89/4997ea06aca421bf452e85f8d3588b.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/89/4997ea06aca421bf452e85f8d3588b.blob deleted file mode 100644 index 4be000bb7..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/89/4997ea06aca421bf452e85f8d3588b.blob +++ /dev/null @@ -1,348 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/89/645c5e68e0726264ccce29741df15a.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/89/645c5e68e0726264ccce29741df15a.blob deleted file mode 100644 index c99ddf2b5..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/89/645c5e68e0726264ccce29741df15a.blob +++ /dev/null @@ -1,383 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/8f/906c1fc14d39e9b1c2dda6247d538b.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/8f/906c1fc14d39e9b1c2dda6247d538b.v8 deleted file mode 100644 index 35d53f9c1cb01e0471468cd437ca12fd9c26b38f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13867 zcmeHOTW=f36_#X5vK6~VlO_)-5Nrkl3IrfIGkd3j)~;RNZS+|w}JptyL0Ap&Ufykf8R;a&i;OW zK9J~_w1r!^$$En>Yta_z{B{_Np8Q?P23@qhzn`*K2Wb10^@cJ*zc}W_+lNV<%Q*j> zWnG!wL%$k7?S!UBMBov^92#&dU{2sTjGC6keAn?XGAtq`30&;^m@?*C#DcLdCz9Hp z^rT%)noA7EX zCT!2ff>A%TvFW;JNF_st!?`a_B1~dgw&0RbwRfLM;n);&yR(CKj!zUv zF8KE0EZ^!JJE}Og9VbGuXy^X@G)eLVZAD`82Wk`&Xs8z@0Uq5z0yvwVA7=v@L}4V; zPWxFV)2#hUW<1H-T%JU6EYs!-cFM9KjRtvJp2;+bGMTk)(`Xt8ERe<{nad!LlGu1C z<19(DZZv3z@TS$x`@Qi-u4Sq6n0IH6Rh}3ft>bvW#^dpNVbqgr<6F+c58B%7Ap`#r(*}0Gd83WLQ^GYf1_7gGe$)^*9uLlF@ z<{%o#UKC5TD`d!qy&Uc2EIpB+hK-o@YtMH@l;w}26#elnqOmn#X&`&efCXLIRx6-e zgCXxl!Lzi7Hrwcij87A^8z^gfmZM#sCa*x%(XNa^$7PnFo8_a7H4Zn>hdq|%1~DFX z)1)trQ?Lr4--lb(i>EAPX;i&vppQz5gD90@a#p?BK_8TF9*dJ|ru&V?XcN63#X)Z< zgnVgu~rAfQs<&a?uM}TASmAi2q*K~XiUIQKlJ|-^p(M@G(zGiuMO=#YWvcoLt zv0RD+bQAuF6|@h^qcxOKM|%a7;{5mW9CmE`jAMd{@42C%Au~;CI-c+d3te!SXs6Ex zF!C7Pu5>g~zRD2N|4oR9*_1Q zMw86Kp#}JMr0JQ|@oh6SE$IVt0%_6((*K~<9zg3UBpgW~O76)KqKtI2Ii#}?=f|u+>wq9gO4DP0~Ve49BwAtBG*6V4ZJx6G7>{nDK zv4oA)Im|Z!P^A~!SMNqD|J!0s)bLZW#R@;VoVpBSbi=NQfb^u} z2*@Xn18F&CLdX&&3b&Mw@_82aCKaBLj@C4VU3C1fKeIvwy>Ea z3CE1t5afg$o0e^{%fgz@#+)H->9={AeO!_BO0%bBtj_HHwDN=tkGH_m{^M_zrG2!b zrPX=bQd4xpN==!!w9h|Q`lu^Rm8|FSe zxVtrd{DU6oOP7%51HG#?cndA`G%J`eMEHzV+MLVYK-bOM>2oj{=y%5Vv~p}vE^Jnuo( zvaIs3O{fX}b8F9lpU;d@@o5-5Icq|y62&JS_?`;r6u_f<#oO=piVvQM^J;t_Dxy)` zG4Rxo)+=atRAUB77O7T3$4FI@ADznaV8iG~akDF7y;C^WjcAydeKSTjB?q}reBr&E;jY+i=(QkVXoe=4?821S&FAn zNv$3Mb#d&Ls!S|66XQ@<8|LMizJsy%H#gBX%kvb{z`KIwtXY07ksoix&dZ%L3FcG<&ocSFKcM^%c(rGIc~v0mnsh5*tG%jxdugJwMORc; zm92ShpgZ*gW)C*?wZHw1&6@W)d5gi=e2d|t#aAoC*UH7Eq@KT5wm@!GEx`-GmX!{W zI8;CmH$X&tH6iI7vZ|b@&hjE5>1Y=UNlP?dukf&ij1CsaNH@u}jFM}Rk!6M8>&3WU zK53cMO8ZBXZdE0#pBJ*4qN|KdA+ztdXJj_5;<`+Kky+5uEMpd)e=}NAQ z0H>o}2ska#Ea310!09HrR=^e27U<+Sf>@$x&@2Gl!93vR>81hq+}^_sw$G6MBH$MuB?jfl!`)okHBG(Wy#f@zHY@W~8DwX7q+CxndF#1gvqoI$aQ zo7m!n335^G2|bqx!c0#P?wG(1;WFa-%(epf;CQ8K&%tzONy}%YR`1SLj7v(ahkxHJ z+gShldfD`&Xk&Hu(YAz(BH4pa!S;o4`=q+Vwgs1IuJIZfT##F|1FcGry~ZWf(@~Nx z2`L>=8Qxy(=X$uH_&T7nB`-19JOWYGuc|~nodW!M9x(lF%=~{W-*FjBv5iQP& z&FlKdbHLW#nL@?9%e6u3`_)pYd8e7OTwGIMM0?!%MRbAo9EYa&xRe-Hs~6M`^ag9` zGS=%q*CeICuz71g-u#kFi=u$JR=TsgzmDnAO;zw@QJh_HZnbr^YB7$!-gq6Yj=!CC zreU+30>2>=rk7mKFkQZ+RyPaqX-8cKJ}u!2(=P(wG&8jPSF26%svSIgrnRqixs numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/90/eba0bbc1dd73375d0cd58c36caeaef.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/90/eba0bbc1dd73375d0cd58c36caeaef.v8 deleted file mode 100644 index 0e190fe48765127179139e9f0ed2ffbd7eeacaab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 717 zcmbW#J#WG=5C&ihA<&@+7DU&R*H|ed8zVy}*wHCmgOTI2V#0^=s?6vYEp&w_@wkHS0d++T{Q|93CU^6gAu?DH z^fES%HNj_2hDzMi#+S4*v}i+|v91cUXx0AgZqLHVsuSt|d&wVWBzF$_T&i3d)Gw2D z^sv^A#vs`6$)^Dw&3U6U40e3-=`_zW4mSKxziCW@4WE3|kio`n4$+FCcV8RFFBT`Q IKYS~lD@hRKE&u=k diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/91/13ad494aa8bd06100a2760fbd2ad3a.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/91/13ad494aa8bd06100a2760fbd2ad3a.blob deleted file mode 100644 index 9730d8588..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/91/13ad494aa8bd06100a2760fbd2ad3a.blob +++ /dev/null @@ -1,403 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/93/32f1d7f8f96541fbc3b7323ddc6c14.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/93/32f1d7f8f96541fbc3b7323ddc6c14.v8 deleted file mode 100644 index a019338fc26b5c70c31c00760e74e73e61ba045a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34945 zcmchg{cDt07RRl|n8YY?(yEyxmY$SXbH&UMOV4migRXzL-;QTlLD$SMvGlOKpfxi?EIq?r z_{U*8{rsXGwf$K)&8k{A6UEXK^Qs=38TFofYG#OKrH)_CjCvh!%?v5+td0e96NoH5 zL;ksDeAFB$=>-F}3q+P4rKJ}>d6jfoWa$~%E&!8n%`ma_u)H9)Ch_gUnk;t#*ln0q ziDjiKwnFjk>OJ?&tV1j-b+BE)qJ!-MV3fMRqPYu1mflzHOn>%CX#w~&+X5m>&(SId zpZuDPdt~VunT`enw%bIO9+j8VGs_W6&u}Zd?d(xEp0%H}l?}ewcV?VedR$)8Ju^cb zUdgy`W{71aW7Ev2*Rf@0l&XKpT>UGdrT3LvIo>%uO05HcW19eQV(D>Oih*&RbQ>6A z=^5E|0AOs*09L9QFz%QIi6sOTcLN~aH50|s6Z2u(HZ$ry_tMM|%Ss(PW=6e^ftgY2 z1jtAEBy}XPs&|5OC!IiD3xLJ80kBGK0E}18itRX%6LuV}T)M#CLo6#9H_Z&O^bEK7aX21yAC+AcTz1Qh5=)QL@)?W=W`FP^;lNy#*T*y04JRGeU3 zCW8WoSY`tc2D=UbBU}gMgL2)hLwatd4hP0NT+qC$v}W7jWi@RyFMJ(-l1j}hp{3X1 zE=;<~;qiUctHk9Jh;kxmB#Nac=2fwKAzf9T!FF6Q!j7vkqBv5%y6U5|5co>|iP^Mm z_LbHF)Fm=3K#65GEMQzSGsLoz5tLljEh%(}rDwS1adR}>ZS*TRC}Nk~pp}-~V6c-G zjBwJr)%|ubY&P4YVZYTbegI_G_yCHfcVRxW-x0fmR?8tDFC!78FN(g`NlV&C6Xkcp94wr8`QAZ3{WGM-fwxv6|)Yp z^bB|Q<8UzBQ?eO3X^%~~K&m0JOG@}HBx!zw8oS?0`#mt^+Zc1~Mi8644tDmyS5f>I z_uAp^o_6m81A7A84&=BRlsyANl;%0exoVD1IOFmRcJ+a8w;8xhV_fr{&mNXA12o3B zW(I2DsGtLkMKT^>gyT7{gYEiYM2p+x^K9469)llPl6;=(GCE1~8`NAhGsF^8X8B;+ z|I5w?Iq_2_4QTAX0E$Zc0x;OV2}Ts3^fm`5Y39ZNmBs)V()NsuP>z-a&YaTtb|E9Z z3erCb-P)= zT{deG%WTa+3)=voC5laQEdUbR0YEBs05Ies0b}&T#|zxb$&>oOBsPPPb@tz-wt-nj3`3sC&O>}e#q`} z;0PKe22?iaD9v+_!>(|^2nTlhFa;#GWrGy9?7SMb!GRG4C)rA&hF!LUB$nB%27_H7 zfFYKiQD~*W$?nydZl!%M7!S>iC_w2#y=g8~d`TL`7OIZYQX6vELIoo#)bybjP;8|F zRjO1l-Br6r9o|z<;zKZg}VM_;U!qO?tRA|~TYZA*!OYzF{1KM$7xvsN$kNc7-H$8l%B01v0Dg`!ZU=t8mWdkcr1PD0yXUB8*0ST`z^1A zJ*NUgEIp$zTOsL=*?D5=ad}DX!XA={3R*W8ESzD&u?4H+G!H@&Td-h61)H9+K(Q4I zRHw2{N(Q@x1EaKryAwK> z8rkqbm|pJe@dNVOV^bhqA`=-TvCMi547O#0QEHiBTsP|wORvL~eo_D++c_bs)H%V} zG>Z~Th)P!{Q0%4wa>UZ3wCV(7+bkz^S$ZJ~(n~W*EGyN#H8Vmrd5`^OW`unp&)6Xu zmVP!M8Hi-4Bi+yLnLFoQZ^@G6^Hh)4Nm^{6=AxM)mOhW&x%b`lr>3txod*^>381Gm z3BX|20ANJXSsKVosg8g2qbxW8V@CpD;Yi2_Xu}+!NKkT6-}mWxiX_1gEQw8Qouv5< zYS_dEqc*X@ViOyzQeuO_CN>yRbQb%qJQAS2Kno}~t$`|~H5lyT28>9~AE&Ln80=v7 z<9N8=%!b`~Ybq~{Q;PP1InD8%|64Mf_BvThd#GC{ix>>CL_be2=zwB76HsF5QF%G+ z{W=(-oIK-!*=1ouXpA4sNe3^NcG{a}#>3Fk$3tEgk{*44u@^yrl`ew7aAaV>kWmIf z3&(p@r6mB=GlRs^gR~3)gKc=am^_26NH9tjxfSLLwJ3!LO4S0!B{Cjhh^3E5`gY{; z9MoJUNlRu;AxVor)UZXF@LT$j`so}TCsmCQ)u8O23sIWqAV+*`%<3rP&dj=r(rKQ} z!ELufw-q^dpM@OFXV4<+HL-&lO*9;Esh3D@n-c-! zk>kjxsWR0$n$MtR#mo>(ROoVl)Hc&?{kJ!uv6&4;V(DplMeKGPj4(QR2D{G&qqNV4 zuh=y-81*{X%VaRbvN9ew%o!Hykm5_d*by#c8vx{pWu+YU1{sX-206XLg_?V2$BAX7 znoTo<4$fmUN-Qhoyfib!(latYB1Uv%3>uqrI6(7lX2;BkqLX+l@=NnT!@h;%$fqfv z=^V{x(83NhFrtBWUfwX%{k?rL`>g&53p{qDfma%7V6dYAj4(cVzp-r^46*d3lV`9U z4UAAnYJv93oX^-zavV0Fb&lpUXkqgij3}R%kN@^c>X%obvDpk-DVxDy7ieIF(aC$Q zM|K)8#4?-B(7`UAzzB7uviY?+o3YR5IPz(#JL?=RF3`eeGZ;}eul&0^C-xh_vFQw4 zDV@P!_X1!<;Ypow0K`rKfW$JJ(_q}3OAffiDHk|$$79U3((Mo!x6O>UA6VwnvK80>5YBb1|s1q`-ff+3b(N9pMCw>gBUXW~hMQso1EAy4xmG|9uSMn-rx z;8JJN0NE4bLEt=1%+4GF6edKTAr)(6zE7lnZ0MuH%xk##AcgL()4>%B;J7!dUY}oS}JvRAlW)Etx zjR?b%jQ`l&nz0HdL2PT*L7LYfhHcGYM2V)3e^A)g3`!}-z?e^K&U=gP%Ft0Y{wL-f z!z#Ec#{gn;Ob2OR1B1;mFyb83#y==*j)79jF)-$nW62%^5SwUNp@#9#hlL&gU_@a_ zj(@0O$3IB*p}9ehF@3~TgoYjen6&kwVaGohQE1ZRAF*M_KT!3t`QMHIskvjq1L6Hf z`A=OPnTfN|(w{eIH3|lMv<-$>dWKt=?X_d&iGG0O@R-_f0#rJ727@h8Fv4T!%sW(o sV$bP-5=-y5d~Ddt0pmnY@6_+7-MNGAa4N4J>6E`_wejUE`7USv1sXkSsQ>@~ diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/93/6b886e0ed26648590b51925712029f.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/93/6b886e0ed26648590b51925712029f.v8 deleted file mode 100644 index 9676d6722f5368c8f2223ff9918ba43a6ce151c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcma)4!E)0u6ikAfq@}&I11AoiH(WzvJC1F*z?6E(03BvpZd{(E=R_SxGLoDoK8P0DIxm$Df*aziyb5~Ip%-aJ@1lXh#G3 zN(kJxA?Q6RxK@so`%GI1lPqS_Vv@%s7>nb|=ZG?q=UiYE$CN;Sh0R_``9v_05Mwwi zILoI~VkyTgBUW%xL~t&sAtgw0N%q~_4qQmZ>sF8`ee^xz{oLu+aJq*x-MXfApZ>4C zXQb8|27Bil2LopGqc0H#qCKVp!_|Sg5sTwZ?}K31h08<0TP^6T7OhWt59j}amD;S(L4Q$ehBcf@ z`$aN?W?Sw~AXt$@z3aeyD}T}a_p4nG26nq*y586K+)6<=RptMI UA9UI(`Lm^`$LZ`YUw68H0Y41e2><{9 diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/93/c7160e0bcfa0f11fc4d493f1731b2e.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/93/c7160e0bcfa0f11fc4d493f1731b2e.blob deleted file mode 100644 index 2b1de5e0c..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/93/c7160e0bcfa0f11fc4d493f1731b2e.blob +++ /dev/null @@ -1,44 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -ctx.strokeStyle = '#ffc600'; -ctx.lineWidth = 2; -const faceCanvas = document.querySelector('.face'); -const faceCtx = canvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); // Write a fucntion that will populate the users video - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - video.srcObject = stream; - await video.play(); // size the canvases to be the same size as the video - - console.log(video.videoWidth, video.videoHeight); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - faceCanvas.width = video.videoWidth; - faceCanvas.height = video.videoHeight; -} - -async function detect() { - const faces = await faceDetector.detect(video); // ask the browser when the next animation frame is, and tell it to run detect for us - - faces.forEach(drawFace); - requestAnimationFrame(detect); -} - -function drawFace(face) { - const { - width, - height, - top, - left - } = face.boundingBox; - ctx.strokeRect(left, top, width, height); -} - -populateVideo().then(detect); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/93/f3cc7dedd0edea18067cfdb98e1e87.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/93/f3cc7dedd0edea18067cfdb98e1e87.blob deleted file mode 100644 index a61300f08..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/93/f3cc7dedd0edea18067cfdb98e1e87.blob +++ /dev/null @@ -1,17 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('.face'); -const faceCtx = canvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); -console.log(video, canvas, faceCanvas, faceDetector); // Write a fucntion that will populate the users video - -function populateVideo() { - const stream = navigator.meidaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - console.log(stream); -} \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/94/78b287174ecbbcef0f175771dba002.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/94/78b287174ecbbcef0f175771dba002.v8 deleted file mode 100644 index f30f787ff6f02eadcc2287781a50caccc4530b0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14346 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 diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/97/dfcd0b9a84ca9de929b5cee9fb5de0.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/97/dfcd0b9a84ca9de929b5cee9fb5de0.v8 deleted file mode 100644 index ac9ad8af2b6971b9744968591e8ddac85e0f4813..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13276 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 x_LZm{tM!&2kig= diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/98/380a47622e6cd8d3db6b96772ebc43.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/98/380a47622e6cd8d3db6b96772ebc43.v8 deleted file mode 100644 index eafd61463ab85185f9fd62233b66b887276e1ad2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13867 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 UeZc~*ju&4EgE|&evWDCL1q)L?ZU6uP diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/98/5767358048da5bd699b6a143bb6744.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/98/5767358048da5bd699b6a143bb6744.blob deleted file mode 100644 index 14b1e4980..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/98/5767358048da5bd699b6a143bb6744.blob +++ /dev/null @@ -1,64 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('.face'); -const faceCtx = canvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); -const SIZE = 100; // Write a fucntion that will populate the users video - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - video.srcObject = stream; - await video.play(); // size the canvases to be the same size as the video - - console.log(video.videoWidth, video.videoHeight); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - faceCanvas.width = video.videoWidth; - faceCanvas.height = video.videoHeight; -} - -async function detect() { - const faces = await faceDetector.detect(video); // ask the browser when the next animation frame is, and tell it to run detect for us - - faces.forEach(drawFace); - faces.forEach(censor); - requestAnimationFrame(detect); -} - -function drawFace(face) { - const { - width, - height, - top, - left - } = face.boundingBox; - ctx.clearRect(0, 0, canvas.width, canvas.height); - ctx.strokeStyle = '#ffc600'; - ctx.lineWidth = 2; - ctx.strokeRect(left, top, width, height); -} - -function censor({ - boundingBox: face -}) { - // draw the small face - faceCtx.drawImage( // 5 source args - video, // where does the source come from? - face.x, // where do we start the source pull from? - face.y, face.width, face.height, // 4 draw args - face.x, // where should we start drawing the x and y? - face.y, SIZE, SIZE); // draw the small face back on, but scale up - - faceCtx.drawImage(faceCanvas, // source - face.x, // where do we start the source pull from? - face.y, SIZE, SIZE, // Drawing args - face.x, face.y, face.width, face.height); -} - -populateVideo().then(detect); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/98/8445ac5a82dee18d1a5ff004cf7166.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/98/8445ac5a82dee18d1a5ff004cf7166.v8 deleted file mode 100644 index 7821778d8ef7f8c686a1d45d8734b4b4ebf31244..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24163 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 diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/99/080f1711850486b94a1eaa2ff98404.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/99/080f1711850486b94a1eaa2ff98404.blob deleted file mode 100644 index 0f459a1fe..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/99/080f1711850486b94a1eaa2ff98404.blob +++ /dev/null @@ -1,395 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function(modules, cache, entry, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject.parcelRequire === 'function' && - globalObject.parcelRequire; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof parcelRequire === 'function' && parcelRequire; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - return newRequire(localRequire.resolve(x)); - } - - function resolve(x) { - return modules[name][1][x] || x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function(id, exports) { - modules[id] = [ - function(require, module) { - module.exports = exports; - }, - {} - ]; - }; - - globalObject.parcelRequire = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (entry.length) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(entry[entry.length - 1]); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function() { - return mainExports; - }); - - // - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/9f/e8dafe76b5aece62e02e0010ff3dd5.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/9f/e8dafe76b5aece62e02e0010ff3dd5.blob deleted file mode 100644 index 5b15950aa..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/9f/e8dafe76b5aece62e02e0010ff3dd5.blob +++ /dev/null @@ -1,78 +0,0 @@ -const video = document.querySelector('.webcam'); -const canvas = document.querySelector('.video'); -const ctx = canvas.getContext('2d'); -const faceCanvas = document.querySelector('.face'); -const faceCtx = faceCanvas.getContext('2d'); -const faceDetector = new window.FaceDetector(); -const optionsInputs = document.querySelectorAll('.controls input[type="range"]'); -const options = { - SIZE: 10, - SCALE: 1.35 -}; - -function handleOption(event) { - console.log(event.currentTarget.value); -} - -optionsInputs.forEach(input => input.addEventListener('input', handlOption)); // Write a fucntion that will populate the users video - -async function populateVideo() { - const stream = await navigator.mediaDevices.getUserMedia({ - video: { - width: 1280, - height: 720 - } - }); - video.srcObject = stream; - await video.play(); // size the canvases to be the same size as the video - - console.log(video.videoWidth, video.videoHeight); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - faceCanvas.width = video.videoWidth; - faceCanvas.height = video.videoHeight; -} - -async function detect() { - const faces = await faceDetector.detect(video); // ask the browser when the next animation frame is, and tell it to run detect for us - - faces.forEach(drawFace); - faces.forEach(censor); - requestAnimationFrame(detect); -} - -function drawFace(face) { - const { - width, - height, - top, - left - } = face.boundingBox; - ctx.clearRect(0, 0, canvas.width, canvas.height); - ctx.strokeStyle = '#ffc600'; - ctx.lineWidth = 2; - ctx.strokeRect(left, top, width, height); -} - -function censor({ - boundingBox: face -}) { - faceCtx.imageSmoothingEnabled = false; - faceCtx.clearRect(0, 0, faceCanvas.width, faceCanvas.height); // draw the small face - - faceCtx.drawImage( // 5 source args - video, // where does the source come from? - face.x, // where do we start the source pull from? - face.y, face.width, face.height, // 4 draw args - face.x, // where should we start drawing the x and y? - face.y, options.SIZE, options.SIZE); // draw the small face back on, but scale up - - const width = face.width * options.SCALE; - const height = face.height * options.SCALE; - faceCtx.drawImage(faceCanvas, // source - face.x, // where do we start the source pull from? - face.y, options.SIZE, options.SIZE, // Drawing args - face.x - (width - face.width) / 2, face.y - (height - face.height) / 2, width, height); -} - -populateVideo().then(detect); \ No newline at end of file diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/a0/197c7bb241997447a285863c1a9c88.blob b/exercises/55 - Face Detection Censorship/.parcel-cache/a0/197c7bb241997447a285863c1a9c88.blob deleted file mode 100644 index e934533b3..000000000 --- a/exercises/55 - Face Detection Censorship/.parcel-cache/a0/197c7bb241997447a285863c1a9c88.blob +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Censorship - - - - - -
- - - -
- - - - - - diff --git a/exercises/55 - Face Detection Censorship/.parcel-cache/a0/86c8c4ac27d28495dbf1f4d692c071.v8 b/exercises/55 - Face Detection Censorship/.parcel-cache/a0/86c8c4ac27d28495dbf1f4d692c071.v8 deleted file mode 100644 index 1a26fb0609500f1f704277c2507614c699afeadb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcma))OLNmO6osACZPL7Fayb3WNkA?KU`kq)_A_oEVACWnqOzD4CCRda7FmvE8P`!<)D-g=&RWv#J2{PWnkQ)) zv&3-hTQ& zdM7AX3PyY9YYQW))w6>LBb1IF8U^D+$q;|;!OMmi8^powQmYn&mE-Nm&4)+ffz(8c zqu|4 + - - From 9187d559332785479c3a2231e95becfce122f85a Mon Sep 17 00:00:00 2001 From: A-J Roos Date: Wed, 29 Apr 2020 14:07:11 +0200 Subject: [PATCH 24/95] create empty starting JS file for video 25 --- exercises/20 - The DOM/creating.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 exercises/20 - The DOM/creating.js diff --git a/exercises/20 - The DOM/creating.js b/exercises/20 - The DOM/creating.js new file mode 100644 index 000000000..e69de29bb From e203f53d637b8fc03a43fc4540092a4419ac21f0 Mon Sep 17 00:00:00 2001 From: A-J Roos Date: Wed, 29 Apr 2020 14:08:53 +0200 Subject: [PATCH 25/95] create empty starting JS file for video 26 --- exercises/20 - The DOM/creating-with-strings.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 exercises/20 - The DOM/creating-with-strings.js diff --git a/exercises/20 - The DOM/creating-with-strings.js b/exercises/20 - The DOM/creating-with-strings.js new file mode 100644 index 000000000..e69de29bb From 4aae051eef33ddb30c37df6bda56c3966599e26d Mon Sep 17 00:00:00 2001 From: A-J Roos Date: Wed, 29 Apr 2020 14:11:12 +0200 Subject: [PATCH 26/95] create the finished Index.html for the DOM section (video 27) --- exercises/20 - The DOM/index-FINISHED.html | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 exercises/20 - The DOM/index-FINISHED.html diff --git a/exercises/20 - The DOM/index-FINISHED.html b/exercises/20 - The DOM/index-FINISHED.html new file mode 100644 index 000000000..c8ffe34fd --- /dev/null +++ b/exercises/20 - The DOM/index-FINISHED.html @@ -0,0 +1,57 @@ + + + + + + + The DOM + + + + + +

I am Wes, I love to bbq and Make websites!

+ + +
+
+ + + + +

Hi I'm a item

+
+
+ +

+ I am a heading + I am hidden! +

+

Hi I'm a item

+
+
+

Im an article

+

This is how many pizzas I ate! 🍕

+
+
+ + + + + + + From d66f742d1de1a6babda2d797d36bc2a2bd6553af Mon Sep 17 00:00:00 2001 From: A-J Roos Date: Wed, 29 Apr 2020 14:15:05 +0200 Subject: [PATCH 27/95] Create finished cardio.html file and fix starter cardio.html file (video 28) --- .../20 - The DOM/DOM-Cardio-FINISHED.html | 32 +++++++++++++++++++ exercises/20 - The DOM/DOM-Cardio.html | 18 ----------- 2 files changed, 32 insertions(+), 18 deletions(-) create mode 100644 exercises/20 - The DOM/DOM-Cardio-FINISHED.html diff --git a/exercises/20 - The DOM/DOM-Cardio-FINISHED.html b/exercises/20 - The DOM/DOM-Cardio-FINISHED.html new file mode 100644 index 000000000..ee51b8a89 --- /dev/null +++ b/exercises/20 - The DOM/DOM-Cardio-FINISHED.html @@ -0,0 +1,32 @@ + + + + + + + Dom Cardio + + + + + + + + + diff --git a/exercises/20 - The DOM/DOM-Cardio.html b/exercises/20 - The DOM/DOM-Cardio.html index 9849fb5b1..08daa5cf5 100644 --- a/exercises/20 - The DOM/DOM-Cardio.html +++ b/exercises/20 - The DOM/DOM-Cardio.html @@ -10,24 +10,6 @@ - - From 83110dbc3d31d88f2b2c000dd13697e56fc5ff6d Mon Sep 17 00:00:00 2001 From: A-J Roos Date: Wed, 29 Apr 2020 14:22:01 +0200 Subject: [PATCH 28/95] fix starter and finished files for video 29 and 30 --- exercises/29 - Events/events-FINISHED.html | 32 +++++++++++++ exercises/29 - Events/events-FINISHED.js | 53 ++++++++++++++++++++++ exercises/29 - Events/events.html | 17 ------- exercises/29 - Events/events.js | 53 ---------------------- 4 files changed, 85 insertions(+), 70 deletions(-) create mode 100644 exercises/29 - Events/events-FINISHED.html create mode 100644 exercises/29 - Events/events-FINISHED.js diff --git a/exercises/29 - Events/events-FINISHED.html b/exercises/29 - Events/events-FINISHED.html new file mode 100644 index 000000000..8c78187bf --- /dev/null +++ b/exercises/29 - Events/events-FINISHED.html @@ -0,0 +1,32 @@ + + + + + + + JavaScript Events + + + + + + + +

Buy Buttons!

+ + + + + + + + + + + + Nice + + + + + diff --git a/exercises/29 - Events/events-FINISHED.js b/exercises/29 - Events/events-FINISHED.js new file mode 100644 index 000000000..ee4b36f2a --- /dev/null +++ b/exercises/29 - Events/events-FINISHED.js @@ -0,0 +1,53 @@ +const butts = document.querySelector(".butts"); +const coolButton = document.querySelector(".cool"); + +function handleClick() { + console.log("🐛 IT GOT CLICKED!!!"); +} + +const hooray = () => console.log("HOORAY!"); + +butts.addEventListener("click", function () { + console.log("Im an anon!"); +}); +coolButton.addEventListener("click", hooray); + +butts.removeEventListener("click", handleClick); + +// Listen on multiple items +const buyButtons = document.querySelectorAll("button.buy"); + +function handleBuyButtonClick(event) { + console.log("You clicked a button!"); + const button = event.target; + // console.log(button.textContent); + // console.log(parseFloat(event.target.dataset.price)); + console.log(event.target); + console.log(event.currentTarget); + console.log(event.target === event.currentTarget); + // Stop this event from bubbling up + // event.stopPropagation(); +} + +buyButtons.forEach(function (buyButton) { + buyButton.addEventListener("click", handleBuyButtonClick); +}); + +window.addEventListener( + "click", + function (event) { + console.log("YOU CLICKED THE WINDOW"); + console.log(event.target); + console.log(event.type); + // event.stopPropagation(); + console.log(event.bubbles); + }, + { capture: true } +); + +const photoEl = document.querySelector(".photo"); + +photoEl.addEventListener("mouseenter", (e) => { + console.log(e.currentTarget); + console.log(this); +}); diff --git a/exercises/29 - Events/events.html b/exercises/29 - Events/events.html index a7b3ee2b1..9038e001f 100644 --- a/exercises/29 - Events/events.html +++ b/exercises/29 - Events/events.html @@ -9,24 +9,7 @@ - - -

Buy Buttons!

- - - - - - - - - - - - Nice - - diff --git a/exercises/29 - Events/events.js b/exercises/29 - Events/events.js index 768e5e7ce..e69de29bb 100644 --- a/exercises/29 - Events/events.js +++ b/exercises/29 - Events/events.js @@ -1,53 +0,0 @@ -const butts = document.querySelector('.butts'); -const coolButton = document.querySelector('.cool'); - -function handleClick() { - console.log('🐛 IT GOT CLICKED!!!'); -} - -const hooray = () => console.log('HOORAY!'); - -butts.addEventListener('click', function() { - console.log('Im an anon!'); -}); -coolButton.addEventListener('click', hooray); - -butts.removeEventListener('click', handleClick); - -// Listen on multiple items -const buyButtons = document.querySelectorAll('button.buy'); - -function handleBuyButtonClick(event) { - console.log('You clicked a button!'); - const button = event.target; - // console.log(button.textContent); - // console.log(parseFloat(event.target.dataset.price)); - console.log(event.target); - console.log(event.currentTarget); - console.log(event.target === event.currentTarget); - // Stop this event from bubbling up - // event.stopPropagation(); -} - -buyButtons.forEach(function(buyButton) { - buyButton.addEventListener('click', handleBuyButtonClick); -}); - -window.addEventListener( - 'click', - function(event) { - console.log('YOU CLICKED THE WINDOW'); - console.log(event.target); - console.log(event.type); - // event.stopPropagation(); - console.log(event.bubbles); - }, - { capture: true } -); - -const photoEl = document.querySelector('.photo'); - -photoEl.addEventListener('mouseenter', e => { - console.log(e.currentTarget); - console.log(this); -}); From 66291781ed3bb2f03f8d41b0e74074e42aad5716 Mon Sep 17 00:00:00 2001 From: A-J Roos Date: Wed, 29 Apr 2020 14:26:33 +0200 Subject: [PATCH 29/95] fix starter and finished files for video 31 and 32 --- exercises/29 - Events/forms-FINISHED.html | 32 +++++++++++++++++++++++ exercises/29 - Events/forms.html | 4 +-- 2 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 exercises/29 - Events/forms-FINISHED.html diff --git a/exercises/29 - Events/forms-FINISHED.html b/exercises/29 - Events/forms-FINISHED.html new file mode 100644 index 000000000..4572e6a1c --- /dev/null +++ b/exercises/29 - Events/forms-FINISHED.html @@ -0,0 +1,32 @@ + + + + + + + HTML Forms + + + + +
+ +
aSDFASDF
+ Nice + + + + + diff --git a/exercises/29 - Events/forms.html b/exercises/29 - Events/forms.html index 95ca5ede3..f86312ab6 100644 --- a/exercises/29 - Events/forms.html +++ b/exercises/29 - Events/forms.html @@ -10,7 +10,7 @@
- Wes Bos +
@@ -22,8 +22,6 @@
- - From ac204aa67a2ee06b51ae7f8971cd21c203990b30 Mon Sep 17 00:00:00 2001 From: A-J Roos Date: Wed, 29 Apr 2020 14:32:17 +0200 Subject: [PATCH 30/95] fix js file that is linked in the starter html in video 33 --- exercises/33 - Etch-a-Sketch/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exercises/33 - Etch-a-Sketch/index.html b/exercises/33 - Etch-a-Sketch/index.html index 052ac17f6..aaadbf3ed 100644 --- a/exercises/33 - Etch-a-Sketch/index.html +++ b/exercises/33 - Etch-a-Sketch/index.html @@ -16,7 +16,7 @@ - + + + + + diff --git a/exercises/34 - Click Outside/click-outside-FINISHED.js b/exercises/34 - Click Outside/click-outside-FINISHED.js new file mode 100644 index 000000000..57e4ca42f --- /dev/null +++ b/exercises/34 - Click Outside/click-outside-FINISHED.js @@ -0,0 +1,44 @@ +const cardButtons = document.querySelectorAll(".card button"); +const modalOuter = document.querySelector(".modal-outer"); +const modalInner = document.querySelector(".modal-inner"); + +function handleCardButtonClick(event) { + const button = event.currentTarget; + const card = button.closest(".card"); + // Grab the image src + const imgSrc = card.querySelector("img").src; + const desc = card.dataset.description; + const name = card.querySelector("h2").textContent; + // populate the modal with the new info + modalInner.innerHTML = ` + ${name} +

${desc}

+ `; + // show the modal + modalOuter.classList.add("open"); +} + +cardButtons.forEach((button) => + button.addEventListener("click", handleCardButtonClick) +); + +function closeModal() { + modalOuter.classList.remove("open"); +} + +modalOuter.addEventListener("click", function (event) { + const isOutside = !event.target.closest(".modal-inner"); + if (isOutside) { + closeModal(); + } +}); + +window.addEventListener("keydown", (event) => { + console.log(event); + if (event.key === "Escape") { + closeModal(); + } +}); diff --git a/exercises/34 - Click Outside/click-outside.html b/exercises/34 - Click Outside/click-outside.html index be9adef05..d3f2c29ee 100644 --- a/exercises/34 - Click Outside/click-outside.html +++ b/exercises/34 - Click Outside/click-outside.html @@ -11,22 +11,22 @@
- Wes Bos + Wes Bos

Wes Bos

- Wes Bos + Wes Bos

Scott Tolinski

- Wes Bos + Wes Bos

Kait Bos

- Wes Bos + Wes Bos

Snickers the dog

@@ -35,72 +35,9 @@

Snickers the dog

- - diff --git a/exercises/34 - Click Outside/click-outside.js b/exercises/34 - Click Outside/click-outside.js index fa6df9416..e69de29bb 100644 --- a/exercises/34 - Click Outside/click-outside.js +++ b/exercises/34 - Click Outside/click-outside.js @@ -1,44 +0,0 @@ -const cardButtons = document.querySelectorAll('.card button'); -const modalOuter = document.querySelector('.modal-outer'); -const modalInner = document.querySelector('.modal-inner'); - -function handleCardButtonClick(event) { - const button = event.currentTarget; - const card = button.closest('.card'); - // Grab the image src - const imgSrc = card.querySelector('img').src; - const desc = card.dataset.description; - const name = card.querySelector('h2').textContent; - // populate the modal with the new info - modalInner.innerHTML = ` - ${name} -

${desc}

- `; - // show the modal - modalOuter.classList.add('open'); -} - -cardButtons.forEach(button => - button.addEventListener('click', handleCardButtonClick) -); - -function closeModal() { - modalOuter.classList.remove('open'); -} - -modalOuter.addEventListener('click', function(event) { - const isOutside = !event.target.closest('.modal-inner'); - if (isOutside) { - closeModal(); - } -}); - -window.addEventListener('keydown', event => { - console.log(event); - if (event.key === 'Escape') { - closeModal(); - } -}); diff --git a/exercises/35 - Scroll To Accept/scroll-to-accept-FINISHED.html b/exercises/35 - Scroll To Accept/scroll-to-accept-FINISHED.html new file mode 100644 index 000000000..328aa3427 --- /dev/null +++ b/exercises/35 - Scroll To Accept/scroll-to-accept-FINISHED.html @@ -0,0 +1,103 @@ + + + + + + + Document + + + + +
+
+

Lorem, ipsum dolor sit amet consectetur adipisicing elit. Iste, labore!

+

Lorem ipsum dolor sit amet consectetur adipisicing elit. Rerum assumenda, ullam, sed quo ipsam officia + asperiores minima excepturi eveniet reiciendis velit debitis temporibus explicabo. Incidunt sit itaque, + reprehenderit fuga voluptatem officiis corrupti ipsa eveniet architecto dolorem magni facere doloribus aut + veritatis sequi quia repellendus aperiam assumenda exercitationem optio praesentium debitis. Excepturi unde + minus dignissimos at totam tempora beatae cumque, voluptates adipisci repudiandae asperiores repellat + delectus + tempore voluptatem veritatis atque quaerat optio! Quasi, possimus molestiae hic modi quia minus eius veniam + aperiam assumenda fugiat fugit optio odio quas esse quam architecto officiis sunt quis cupiditate vel + voluptate + consequuntur nam porro harum. Fuga distinctio voluptate provident molestias perspiciatis fugit esse corrupti + adipisci quas eos dolor non cum ipsam repudiandae dolorem, quasi necessitatibus iusto unde similique + repellendus praesentium tenetur? Obcaecati aliquam nostrum vero expedita fuga, quae et quaerat modi error + adipisci eligendi fugit alias quia nihil laudantium quam tenetur ipsam explicabo nisi natus, rerum omnis, + debitis provident! Dolorum sequi recusandae, necessitatibus eos nesciunt cupiditate accusantium illum unde + minima. Labore sit quos voluptatem illum qui. Veritatis quis a mollitia asperiores repudiandae consequatur + assumenda, at tempora, modi voluptate sit blanditiis hic dignissimos harum consequuntur quia ipsam, + architecto + nesciunt. Praesentium, mollitia? Delectus quod laudantium doloremque nihil?

+ watch for me +

Lorem, ipsum dolor sit amet consectetur adipisicing elit. Quos ab, ea inventore commodi eligendi error + repellat impedit eum quod enim sequi, distinctio, qui eaque ipsam fugit asperiores eos laboriosam ex.

+

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Ipsa id debitis ex eligendi rem unde consequuntur + natus omnis vel nulla sit commodi, quos distinctio doloremque doloribus veniam quis et dolore?

+

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Commodi laboriosam nulla est architecto eum, + dolorem + quam, unde quo fugit tempore ipsa qui provident, iste ratione quis dignissimos temporibus nostrum voluptatum + molestias? Blanditiis repellendus sapiente inventore aliquam qui error aliquid doloremque fugit consequuntur + laudantium. Sapiente doloribus ullam vel dicta doloremque iure, deleniti ipsum non. Rem repudiandae deleniti + ad + at laborum eaque, modi voluptas aut! Quam nihil deleniti velit excepturi, quidem, veniam aut doloremque iure + reprehenderit natus vel quia iusto? Magni veritatis provident libero hic quisquam, perferendis officia quasi + molestiae sit sunt fugiat, perspiciatis architecto velit unde molestias ratione totam, atque doloremque!

+
+
+ + +
+ + + + + + diff --git a/exercises/35 - Scroll To Accept/scroll-to-accept.html b/exercises/35 - Scroll To Accept/scroll-to-accept.html index 8169aec89..5e8b9b2bd 100644 --- a/exercises/35 - Scroll To Accept/scroll-to-accept.html +++ b/exercises/35 - Scroll To Accept/scroll-to-accept.html @@ -42,7 +42,6 @@ at laborum eaque, modi voluptas aut! Quam nihil deleniti velit excepturi, quidem, veniam aut doloremque iure reprehenderit natus vel quia iusto? Magni veritatis provident libero hic quisquam, perferendis officia quasi molestiae sit sunt fugiat, perspiciatis architecto velit unde molestias ratione totam, atque doloremque!

-
+ Wes Bos +
+ + + + + + +
+ +
+