-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
コンピューターの中枢を担うCPU
-
-
CPUは、メモリーやHDD・SSDと並んでコンピューターを構成する代表的なデバイスです。Central Processing Unitの略。別名:プロセッサー。パソコンには必ず搭載されています。
-
マウス、キーボード、ハードディスク、メモリー、周辺機器などからデータを受け取り、コンピューターでは 制御・演算 を担当します。
-
CPUそのものは小さいのですが、その働きはパソコン随一です。そのためCPUの性能は、パソコンの性能や価格に大きく関わってきます。
-
CPUを製造しているメーカーは、Intel(インテル)とAMD(エーエムディー)が有名です。ともに米国の会社です。特に Intelは、WindowsやMacなど世界中のコンピューターに搭載されています。
-
-
-
-
-
CPUの調べ方
-
-
- デスクトップ上 右クリック→ディスプレイ設定→詳細情報。またはコントロールパネル からシステム。
-
プロセッサのところに表示されています。
-
-
Intelのデスクトップ版 CPU。
-
-
CPUの裏側。
-
-
パソコンのマザーボードのCPUソケットにCPUが入っています。
-
-
CPUはパソコンの中でも最も発熱するパーツのひとつです。CPUを冷却するためヒートシンクとよばれる金属製のものとファンが付いています。これをCPUクーラーといいます。
-
-
ノートパソコンでも 基本的な構造は同じで、CPU上に金属製のヒートシンクが取り付けられ、発せられた熱は ファンによって排出される仕組みになっています。
-
-
-
-
-
-
-
制御・演算
-
-
CPUは 数十億ともいわれるトランジスタ・半導体素子が集積しています。コンピューターの中では中枢を担うデバイスです。
-
コンピューター内の各機器と バス でつながっていて制御している、またメモリー 上のデータを読み書きしています。
-
-
CPUは、制御を行う部分と演算を行う部分に分かれます。
-
制御部は、次に処理すべきデータが メモリー上のどのアドレス・番地にあるかプログラムカウンター というところに記憶します。そしてそれを順番に演算部に伝えていきます。つまり命令・指令を出すところです。
-
演算部は、制御部から伝達されたメモリー上のアドレスを手がかりに 実際のデータを処理します。
-
データの処理や演算は 算術論理演算回路 ALU が担い、0と1の膨大なデジタルデータを超高速に処理します。
-
-
-
-
-
-
キャッシュメモリ
-
-
キャッシュメモリは CPUに内蔵されている高速なメモリーです。
-
通常のメモリーは DRAMですが、キャッシュメモリには高速なSRAM が使われています。
-
CPUは、メモリーに格納されているデータを読みだして処理していますが、メモリーとはデバイス間の距離があることと、CPUに比べてメモリーの方が処理速度が遅いため、データの処理が遅くなってしまします。
-
そこでCPUに高速なキャッシュメモリをおくことで、何度もメモリーから読み出すデータ、よく使うデータをキャッシュメモリにおいて処理を高速化しています。
-
-
キャッシュメモリも1次・2次に分かれており、CPUが最初にアクセスするのを L1キャッシュ 、次にアクセスするのをL2キャッシュ といいます。最近のCPUでは L3キャッシュ もあります。
-
性能が良いといわれるCPUは、他のCPUよりもキャッシュメモリも多く搭載されています。
-
-
-
-
-
-
レジスタ
-
-
レジスタとは、キャッシュメモリとは別に CPU内部にある記憶領域。キャッシュメモリと同様、SRAMが使われています。
-
制御部や処理部にそれぞれあり、CPUが処理を行う際に一時的な記憶領域として使っています。
-
-
レジスタとキャッシュメモリはCPU内部にあるので、CPU内部メモリーともいいます。
-
メモリーと呼ばれる記憶を担当するものの中では、レジスタから順に キャッシュメモリ(SRAM)、メインメモリー(DRAM)、SSD、HDD、CD/DVDなどがあります。レジスタが最も高速で、CPUに近いメモリーほど速くなっています。
-
このような記憶を担当するメモリーが、高速なものから低速へ、容量の小さいものから大きいものへと連なっている様を、メモリーの階層、メモリーチェーンということがあります。
-
-
-
-
-
-
クロック周波数
-
-
CPUは、クロックという周期的な信号で動作しています。単位はGHz です。
-
クロック周波数とは、1秒間でどれだけクロックがあるかを表しています。
-
-
例えば 3GHzのCPUなら、一秒間に約30億回のクロックがあります。
-
CPUは、このクロックに合わせて処理や作業を行います。クロック周波数が高いほど 処理できる回数や量が多く、処理スピードが速くなります
-
一般的に、周波数が高いものほど発熱も大きいという傾向があります。そのため省電力PCやノートパソコンというのは、周波数がやや低めのCPUが使われている傾向があります。
-
-
-
-
-
種類
-
-
CPUには、IntelのものとAMDのものとがあります。IntelのCPUのほうがシェアは高くなっています。
-
CPUの性能を左右するのは、コアの数です。コアというのはCPUの核の部分であり、制御部と演算部が1セットになっているものです。
-
これが1つあるのと2つあるのとでは性能に差が出てきます。コアが2つあるものをデュアルコア 、4つあるものをクアッドコア 、または複数あるものをマルチコア といいます。
-
IntelのCPUは、現在 Core iシリーズ とその下位版のPentium、Celeron、AMDは、RyzenシリーズとAthlonが主流となっています。
-
CPUのブランド名は以下の通りです。同じブランド名でも世代や型番によりコア数は異なることや例外もあります。(上にいくほど新、下が旧)
-
Intel(デスクトップ)
-
- Core i7・・・コア4~8
- Core i5・・・コア4~6
- Core i3・・・コア2~4
- Pentium・・・コア2
- Celeron ・・・コア1~2
-
-
Core iシリーズの前に、Core 2 Quad(コア4)、Core 2 Duo(コア2)、Pentium D(コア2)、Pentium 4(コア1)、Celeron D(コア1)などがあります。
-
ノートパソコン用のCPUは末尾にU・Y・M・Eが付いていることが多くなっています。コア数はデスクトップ版とは異なることがあります。
-
IntelのCPUには他に、上位のものとして Core i9、消費電力を抑えたATOM 、サーバー向けのXeon などがあります。
-
AMD(デスクトップ)
-
- Ryzen7・・・コア4~8
- Ryzen5・・・コア4~6
- Ryzen3・・・コア2~4
- Athlon・・・コア2
-
-
Ryzenシリーズの前に、A series(コア2~4)、FX series(コア4~8)、Phenom II(コア2~6)、Athlon II(コア2、4)、Phenom(コア3、4)、Athlon 64 X2(コア2)などがあります。
-
AMDのCPUもノートパソコンに搭載されていますが、コア数などは多少異なります。
-
AMDは他に上位のCPUとして、Ryzen 9、Ryzen Threadripperなどのブランドがあります。AMDはCPUだけではなく、グラフィックボードに搭載されるグラフィックチップ GPU を開発・製造している会社としても知られています。
-
-
-
-
-
-
コアとスレッド
-
-
Windowsのタスクマネージャー では、CPUのコア数などを調べることができます。
-
タスクマネージャー→パフォーマンスタブ、CPU。
-
-
CPUのコア数、論理プロセッサ数、CPUの型番、キャッシュ、クロック周波数などが表示されています。
-
この例では、2コアで論理プロセッサ数は4。論理プロセッサとは、OSから見たプロセッサの数をいいます。
-
例えば、IntelのCPUには、1つのコアを OS側から2コアに見せて処理速度を向上させる技術があります。これを ハイパー・スレッディング・テクノロジー(HT)といいます。コアと区別してスレッドともいいます。
-
ハイパースレッディング・テクノロジー対応のCPUは、タスクマネージャーでコア 2、論理プロセッサ数 4のように表示されます。コア数の倍が論理プロセッサ数です。
-
コアやスレッドが多いと、分担して処理を行うのでマルチタスク、処理速度の向上などにつながります。
-
-
-
-
-
-
内蔵グラフィック
-
-
近年のCPUは、グラフィック機能も担っています。内蔵グラフィック、iGPU ともいいます。コンピューターで処理した情報を、ディスプレイなどの画面に描画する機能です。
-
-
CPUには内蔵グラフィックが搭載されているものがほとんどですが、内蔵グラフィック機能が搭載されていないCPUやグラフィック機能を向上させる目的で、デスクトップパソコンではグラフィックボード、ノートパソコンではグラフィック専用のチップが用いられることがあります。
-
パソコンで使われているグラフィック機能は、タスクマネージャーのGPUの項目やデバイスマネージャー のディスプレイアダプターなどで確認することができます。
-
-
-
-
-
-
ムーアの法則
-
-
CPUを語る上では、ムーアの法則というものがしばしば出てきます。
-
半導体・トランジスタの集積度 は、年数に対して指数関数的に増加するというものです。集積度は、1年半で2倍、3年で4倍、5年で10倍という感じです。
-
同一面積において集積度があがるため、それだけ性能が高くなるということになります。
-
10年前あるいは数年前に比べ、CPUの性能が格段に向上しているのは、このムーアの法則をそのまま表しているといえます。
-
仮にCPUの性能があまり実感できないとしても、近年のスマートフォンやタブレットの小型化・高性能化、情報機器の普及、情報化社会の進展をみれば、それを実感することができるのではないでしょうか。
- (ムーアの法則:Intel創業者 ゴードン・ムーアが1965年に提唱 )
-
-
-
-
-
-
アーキテクチャ
-
-
CPUの性能を決めるのは、コア数、スレッド数、クロック周波数、キャッシュなどになります。また消費電力も関係してくるので、世代が新しいCPUほど総合的な性能は高くなります。
-
例えば XPの頃のCerelon DやPentium 4と現在のPentiumやCore i7とでは、比較にならないほどの性能差があります。
-
新しいCPUほど 半導体の集積度が高くなり、アーキテクチャ、設計に改良が加えられるため、低消費電力、低発熱、高性能という傾向があります。
-
例えば、Intelならアーキテクチャの違いは、第七世代 Core i、第十世代 Core iなどのようになります。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
プライバシーポリシー
-
Copyright (C) 2007 パソコン初心者講座 All Rights Reserved.
-
-
-
-
-
-
-
-
-
-
- recorded_at: Sun, 20 Jun 2021 14:24:39 GMT
-- request:
- method: get
- uri: https://docs.komagata.org/4433
- body:
- encoding: US-ASCII
- string: ''
- headers:
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- User-Agent:
- - Ruby
- Host:
- - docs.komagata.org
- response:
- status:
- code: 200
- message: OK
- headers:
- Connection:
- - keep-alive
- Strict-Transport-Security:
- - max-age=31536000
- Content-Type:
- - text/html;charset=utf-8
- Content-Length:
- - '3286'
- X-Xss-Protection:
- - 1; mode=block
- X-Content-Type-Options:
- - nosniff
- X-Frame-Options:
- - SAMEORIGIN
- Server:
- - WEBrick/1.6.0 (Ruby/2.7.0/2019-12-25)
- Date:
- - Sun, 20 Jun 2021 14:24:39 GMT
- Set-Cookie:
- - rack.session=BAh7CEkiD3Nlc3Npb25faWQGOgZFVG86HVJhY2s6OlNlc3Npb246OlNlc3Np%0Ab25JZAY6D0BwdWJsaWNfaWRJIkU4NDkyNzI3YmZlZWEzOWM2ODZhNTgyNjkw%0AOGI4Zjc4MGU0MjEyZTM1NmUxODVjNDA3MTgwNTdjZjA0YTI5YzE0BjsARkki%0ACWNzcmYGOwBGSSIlYmFhYzRjMTkzMjljYzE1ZGRmN2QyMGE3MTkxMWU5ODcG%0AOwBGSSINdHJhY2tpbmcGOwBGewdJIhRIVFRQX1VTRVJfQUdFTlQGOwBUSSIt%0AMThlNDBlMTQwMWVlZjY3ZTFhZTY5ZWZhYjA5YWZiNzFmODdmZmI4MQY7AEZJ%0AIhlIVFRQX0FDQ0VQVF9MQU5HVUFHRQY7AFRJIi1kYTM5YTNlZTVlNmI0YjBk%0AMzI1NWJmZWY5NTYwMTg5MGFmZDgwNzA5BjsARg%3D%3D%0A--0173da89f15577fe91a2ed6bc81bab79d770f756;
- path=/; expires=Fri, 02 Jul 2021 14:24:39 -0000; HttpOnly; secure
- - rack.session=BAh7CEkiD3Nlc3Npb25faWQGOgZFVG86HVJhY2s6OlNlc3Npb246OlNlc3Np%0Ab25JZAY6D0BwdWJsaWNfaWRJIkU4NDkyNzI3YmZlZWEzOWM2ODZhNTgyNjkw%0AOGI4Zjc4MGU0MjEyZTM1NmUxODVjNDA3MTgwNTdjZjA0YTI5YzE0BjsARkki%0ACWNzcmYGOwBGSSIlYmFhYzRjMTkzMjljYzE1ZGRmN2QyMGE3MTkxMWU5ODcG%0AOwBGSSINdHJhY2tpbmcGOwBGewdJIhRIVFRQX1VTRVJfQUdFTlQGOwBUSSIt%0AMThlNDBlMTQwMWVlZjY3ZTFhZTY5ZWZhYjA5YWZiNzFmODdmZmI4MQY7AEZJ%0AIhlIVFRQX0FDQ0VQVF9MQU5HVUFHRQY7AFRJIi1kYTM5YTNlZTVlNmI0YjBk%0AMzI1NWJmZWY5NTYwMTg5MGFmZDgwNzA5BjsARg%3D%3D%0A--6de3b0fbe6701a3ce7b9ccc99dc185af16a7beba;
- path=/; expires=Fri, 02 Jul 2021 14:24:39 -0000; HttpOnly; secure
- Via:
- - 1.1 vegur
- body:
- encoding: UTF-8
- string: |-
-
Macの型番調べ辛い - komagataのブログ
-
持ってるMacBookの型番:MB466J/A
MacBook 2.0GHz Core 2 Duo/13.3"/2G/160G/8xSuperDrive DL/Gigabit/802.11n/BT/Mini DisplayPort
-
- recorded_at: Sun, 20 Jun 2021 14:24:39 GMT
-recorded_with: VCR 6.0.0
diff --git a/test/cassettes/link_checker/checker/check_response.yml b/test/cassettes/link_checker/checker/check_response.yml
new file mode 100644
index 00000000000..1e0becb240f
--- /dev/null
+++ b/test/cassettes/link_checker/checker/check_response.yml
@@ -0,0 +1,145 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: http://example.com/xxxxx
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 404
+ message: Not Found
+ headers:
+ Age:
+ - '305'
+ Cache-Control:
+ - max-age=604800
+ Content-Type:
+ - text/html; charset=UTF-8
+ Date:
+ - Fri, 04 Feb 2022 05:05:23 GMT
+ Expires:
+ - Fri, 11 Feb 2022 05:05:23 GMT
+ Last-Modified:
+ - Fri, 04 Feb 2022 05:00:18 GMT
+ Server:
+ - ECS (oxr/8321)
+ Vary:
+ - Accept-Encoding
+ X-Cache:
+ - 404-HIT
+ Content-Length:
+ - '648'
+ body:
+ encoding: UTF-8
+ base64_string: |
+ PCFkb2N0eXBlIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDx0aXRsZT5FeGFt
+ cGxlIERvbWFpbjwvdGl0bGU+CgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgi
+ IC8+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LXR5cGUiIGNvbnRl
+ bnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KICAgIDxtZXRhIG5h
+ bWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGlu
+ aXRpYWwtc2NhbGU9MSIgLz4KICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+
+ CiAgICBib2R5IHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYy
+ OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAg
+ ICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBzeXN0ZW0tdWksIEJs
+ aW5rTWFjU3lzdGVtRm9udCwgIlNlZ29lIFVJIiwgIk9wZW4gU2FucyIsICJI
+ ZWx2ZXRpY2EgTmV1ZSIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7
+ CiAgICAgICAgCiAgICB9CiAgICBkaXYgewogICAgICAgIHdpZHRoOiA2MDBw
+ eDsKICAgICAgICBtYXJnaW46IDVlbSBhdXRvOwogICAgICAgIHBhZGRpbmc6
+ IDJlbTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRmZGZmOwogICAg
+ ICAgIGJvcmRlci1yYWRpdXM6IDAuNWVtOwogICAgICAgIGJveC1zaGFkb3c6
+ IDJweCAzcHggN3B4IDJweCByZ2JhKDAsMCwwLDAuMDIpOwogICAgfQogICAg
+ YTpsaW5rLCBhOnZpc2l0ZWQgewogICAgICAgIGNvbG9yOiAjMzg0ODhmOwog
+ ICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIH0KICAgIEBtZWRp
+ YSAobWF4LXdpZHRoOiA3MDBweCkgewogICAgICAgIGRpdiB7CiAgICAgICAg
+ ICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgICAgICB3aWR0aDogYXV0bzsK
+ ICAgICAgICB9CiAgICB9CiAgICA8L3N0eWxlPiAgICAKPC9oZWFkPgoKPGJv
+ ZHk+CjxkaXY+CiAgICA8aDE+RXhhbXBsZSBEb21haW48L2gxPgogICAgPHA+
+ VGhpcyBkb21haW4gaXMgZm9yIHVzZSBpbiBpbGx1c3RyYXRpdmUgZXhhbXBs
+ ZXMgaW4gZG9jdW1lbnRzLiBZb3UgbWF5IHVzZSB0aGlzCiAgICBkb21haW4g
+ aW4gbGl0ZXJhdHVyZSB3aXRob3V0IHByaW9yIGNvb3JkaW5hdGlvbiBvciBh
+ c2tpbmcgZm9yIHBlcm1pc3Npb24uPC9wPgogICAgPHA+PGEgaHJlZj0iaHR0
+ cHM6Ly93d3cuaWFuYS5vcmcvZG9tYWlucy9leGFtcGxlIj5Nb3JlIGluZm9y
+ bWF0aW9uLi4uPC9hPjwvcD4KPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=
+ recorded_at: Fri, 04 Feb 2022 05:05:23 GMT
+- request:
+ method: get
+ uri: http://example.com/
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Age:
+ - '101048'
+ Cache-Control:
+ - max-age=604800
+ Content-Type:
+ - text/html; charset=UTF-8
+ Date:
+ - Fri, 04 Feb 2022 05:05:23 GMT
+ Etag:
+ - '"3147526947+gzip"'
+ Expires:
+ - Fri, 11 Feb 2022 05:05:23 GMT
+ Last-Modified:
+ - Thu, 17 Oct 2019 07:18:26 GMT
+ Server:
+ - ECS (sab/56AA)
+ Vary:
+ - Accept-Encoding
+ X-Cache:
+ - HIT
+ Content-Length:
+ - '648'
+ body:
+ encoding: UTF-8
+ base64_string: |
+ PCFkb2N0eXBlIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDx0aXRsZT5FeGFt
+ cGxlIERvbWFpbjwvdGl0bGU+CgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgi
+ IC8+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LXR5cGUiIGNvbnRl
+ bnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KICAgIDxtZXRhIG5h
+ bWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGlu
+ aXRpYWwtc2NhbGU9MSIgLz4KICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+
+ CiAgICBib2R5IHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYy
+ OwogICAgICAgIG1hcmdpbjogMDsKICAgICAgICBwYWRkaW5nOiAwOwogICAg
+ ICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBzeXN0ZW0tdWksIEJs
+ aW5rTWFjU3lzdGVtRm9udCwgIlNlZ29lIFVJIiwgIk9wZW4gU2FucyIsICJI
+ ZWx2ZXRpY2EgTmV1ZSIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7
+ CiAgICAgICAgCiAgICB9CiAgICBkaXYgewogICAgICAgIHdpZHRoOiA2MDBw
+ eDsKICAgICAgICBtYXJnaW46IDVlbSBhdXRvOwogICAgICAgIHBhZGRpbmc6
+ IDJlbTsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRmZGZmOwogICAg
+ ICAgIGJvcmRlci1yYWRpdXM6IDAuNWVtOwogICAgICAgIGJveC1zaGFkb3c6
+ IDJweCAzcHggN3B4IDJweCByZ2JhKDAsMCwwLDAuMDIpOwogICAgfQogICAg
+ YTpsaW5rLCBhOnZpc2l0ZWQgewogICAgICAgIGNvbG9yOiAjMzg0ODhmOwog
+ ICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIH0KICAgIEBtZWRp
+ YSAobWF4LXdpZHRoOiA3MDBweCkgewogICAgICAgIGRpdiB7CiAgICAgICAg
+ ICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgICAgICB3aWR0aDogYXV0bzsK
+ ICAgICAgICB9CiAgICB9CiAgICA8L3N0eWxlPiAgICAKPC9oZWFkPgoKPGJv
+ ZHk+CjxkaXY+CiAgICA8aDE+RXhhbXBsZSBEb21haW48L2gxPgogICAgPHA+
+ VGhpcyBkb21haW4gaXMgZm9yIHVzZSBpbiBpbGx1c3RyYXRpdmUgZXhhbXBs
+ ZXMgaW4gZG9jdW1lbnRzLiBZb3UgbWF5IHVzZSB0aGlzCiAgICBkb21haW4g
+ aW4gbGl0ZXJhdHVyZSB3aXRob3V0IHByaW9yIGNvb3JkaW5hdGlvbiBvciBh
+ c2tpbmcgZm9yIHBlcm1pc3Npb24uPC9wPgogICAgPHA+PGEgaHJlZj0iaHR0
+ cHM6Ly93d3cuaWFuYS5vcmcvZG9tYWlucy9leGFtcGxlIj5Nb3JlIGluZm9y
+ bWF0aW9uLi4uPC9hPjwvcD4KPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=
+ recorded_at: Fri, 04 Feb 2022 05:05:23 GMT
+recorded_with: VCR 6.0.0
diff --git a/test/cassettes/link_checker/client/request/www_tablesgenerator_com.yml b/test/cassettes/link_checker/client/request/www_tablesgenerator_com.yml
new file mode 100644
index 00000000000..ec2e5e52a48
--- /dev/null
+++ b/test/cassettes/link_checker/client/request/www_tablesgenerator_com.yml
@@ -0,0 +1,786 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: https://www.tablesgenerator.com/markdown_tables
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - text/html; charset=utf-8
+ Vary:
+ - Accept-Encoding
+ X-Cloud-Trace-Context:
+ - b21f3d017cec79b869bd22f04aab9e8d
+ Date:
+ - Mon, 31 Jan 2022 09:42:22 GMT
+ Server:
+ - Google Frontend
+ Cache-Control:
+ - private
+ Transfer-Encoding:
+ - chunked
+ body:
+ encoding: UTF-8
+ base64_string: |
+ PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KICA8aGVhZD4KICAg
+ IDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KICAgIDx0aXRsZT5NYXJrZG93biBU
+ YWJsZXMgZ2VuZXJhdG9yIC0gVGFibGVzR2VuZXJhdG9yLmNvbTwvdGl0bGU+
+ CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2
+ aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8bWV0YSBuYW1l
+ PSJkZXNjcmlwdGlvbiIgY29udGVudD0iRWFzaWx5IGNyZWF0ZSB0YWJsZXMg
+ aW4gZXh0ZW5kZWQgTWFya2Rvd24gZm9ybWF0IHN1cHBvcnRlZCBieSBNYXJr
+ ZG93biBIZXJlIGFuZCBHRk0uIj4KICAgIDxtZXRhIG5hbWU9ImF1dGhvciIg
+ Y29udGVudD0iIj4KICAgIDxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgaHJl
+ Zj0iL3N0YXRpYy9pbWcvZmF2aWNvbi5wbmciPgogICAgPCEtLVtpZiBJRV0+
+ CiAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRl
+ bnQ9IklFPUVkZ2UiIC8+CiAgICA8IVtlbmRpZl0tLT4KCiAgICA8bGluayBo
+ cmVmPSdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9
+ UXVpY2tzYW5kJyByZWw9J3N0eWxlc2hlZXQnIHR5cGU9J3RleHQvY3NzJz4K
+ ICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3N0YXRpYy9jc3Mv
+ Y29tYmluZWQuNDI3LmNzcyIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwi
+ IHRpdGxlPSJubyB0aXRsZSI+CgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
+ dmFzY3JpcHQiIHNyYz0iL3N0YXRpYy9qcy9jb21iaW5lZC5iYXNlLjQyNy5q
+ cyIgZGF0YS1tYW51YWw+PC9zY3JpcHQ+CgogICAgCiAgICAKICAgIAoKICAg
+ IAoKICAgIAogICAgCiAgICAKICAgIAogICAgCiAgICAKICAgIAoKICAgIAog
+ ICAgCiAgICAKICAgIAoKICAgIAogICAgCiAgICAKICAgIAoKICAgIAoKICAg
+ IAogICAgCiAgICAKICAgIAogICAgCiAgICAKICAgIAogICAgCiAgICAKICAg
+ IAogICAgCiAgICAKICAgIAogICAgCiAgICAKICAgIAogICAgCiAgICAKICAg
+ IAogICAgCiAgICAKICAgIAoKICAgIAogICAgCgogICAgCiAgICAKICAgIAog
+ ICAgCiAgICAKICAgIAogICAgCiAgICAKICAgIAoKICAgIAogIDwvaGVhZD4K
+ CiAgPGJvZHk+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgoKICAgICAg
+ PGRpdiBjbGFzcz0ibWFzdGhlYWQiPgogICAgICAgIAogICAgICAgIDxkaXYg
+ Y2xhc3M9Im5hdmJhciI+CiAgICAgICAgICA8aDEgaWQ9ImxvZ28iPjxhIGhy
+ ZWY9Ii8iIHRpdGxlPSJUYWJsZXMgR2VuZXJhdG9yIj5UYWJsZXMgR2VuZXJh
+ dG9yPC9hPjwvaDE+CiAgICAgICAgICAKCjx1bCBjbGFzcz0ibmF2IiBpZD0i
+ dG9wLW5hdiI+CiAgICA8bGkgPgogICAgICAgIDxhIGhyZWY9Ii9sYXRleF90
+ YWJsZXMiIAogICAgICAgICAgICB0aXRsZT0iTGFUZVggdGFibGVzIGdlbmVy
+ YXRvciI+TGFUZVg8L2E+CiAgICA8L2xpPgogICAgPGxpID4KICAgICAgIDxh
+ IGhyZWY9Ii9odG1sX3RhYmxlcyIgCiAgICAgICAgICAgdGl0bGU9IkhUTUwg
+ dGFibGVzIGdlbmVyYXRvciI+SFRNTDwvYT4KICAgIDwvbGk+CiAgICA8bGkg
+ PgogICAgICAgPGEgaHJlZj0iL3RleHRfdGFibGVzIiAKICAgICAgICAgICB0
+ aXRsZT0iUGxhaW4gdGV4dCB0YWJsZXMgZ2VuZXJhdG9yIj5UZXh0PC9hPgog
+ ICAgPC9saT4KICAgIDxsaSBjbGFzcz0iYWN0aXZlIj4KICAgICAgIDxhIGhy
+ ZWY9Ii9tYXJrZG93bl90YWJsZXMiIAogICAgICAgICAgIHRpdGxlPSJNYXJr
+ ZG93biB0YWJsZXMgZ2VuZXJhdG9yIj5NYXJrZG93bjwvYT4KICAgIDwvbGk+
+ CiAgICA8bGkgPgogICAgICAgPGEgaHJlZj0iL21lZGlhd2lraV90YWJsZXMi
+ IAogICAgICAgICAgIHRpdGxlPSJNZWRpYVdpa2kgdGFibGVzIGdlbmVyYXRv
+ ciI+TWVkaWFXaWtpPC9hPgogICAgPC9saT4KPC91bD4KCiAgICAgICAgPC9k
+ aXY+PCEtLSAvLm5hdmJhciAtLT4KICAgICAgICAKICAgICAgICAKICAgICAg
+ PC9kaXY+CgogICAgICAKCjxkaXYgaWQ9Im1haW4taGVhZGVyIj4KPC9kaXY+
+ Cgo8ZGl2IGlkPSJtaWRkbGUtc2VjdGlvbiI+CiAgICA8ZGl2IGlkPSJtYWlu
+ LWJsb2NrIj4KICAgICAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRp
+ dmUiPgogICAgICAgICAgICA8ZGl2IGlkPSJtZW51LXRvb2xiYXItd3JhcHBl
+ ciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYWluLW1lbnUiPgog
+ ICAgICAgICAgICAgICAgICAgIAo8dWwgY2xhc3M9Im5hdiBuYXYtcGlsbHMi
+ PgogICAgPGxpIGNsYXNzPSJkcm9wZG93biI+PCEtLSBGaWxlIGl0ZW0gLS0+
+ CjxhIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiIGlkPSJmaWxlX2l0ZW0iIHJv
+ bGU9ImJ1dHRvbiIKICAgIGRhdGEtdG9nZ2xlPSJkcm9wZG93biIgaHJlZj0i
+ IyI+RmlsZSA8YiBjbGFzcz0iY2FyZXQiPjwvYj48L2E+Cjx1bCBpZD0ibWVu
+ dTMiIGNsYXNzPSJkcm9wZG93bi1tZW51IiByb2xlPSJtZW51IgogICAgYXJp
+ YS1sYWJlbGxlZGJ5PSJmaWxlX2l0ZW0iPgoKICAgIDxsaSByb2xlPSJwcmVz
+ ZW50YXRpb24iPjxhIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiIGhy
+ ZWY9IiMiCiAgICAgICAgaWQ9Im5ld190YWJsZV9pdGVtIiAgCiAgICAgICAg
+ ZGF0YS10b2dnbGU9Im1vZGFsIgogICAgICAgIGRhdGEtdGFyZ2V0PSIjbmV3
+ X3RhYmxlX2RpYWxvZyI+TmV3IHRhYmxlLi4uPC9hPjwvbGk+CgogICAgPGxp
+ IHJvbGU9InByZXNlbnRhdGlvbiIgY2xhc3M9ImRpdmlkZXIiPjwvbGk+Cgog
+ ICAgPGxpIHJvbGU9InByZXNlbnRhdGlvbiI+PGEgcm9sZT0ibWVudWl0ZW0i
+ IHRhYmluZGV4PSItMSIgaHJlZj0iIyIKICAgICAgICBpZD0iaW1wb3J0X2Nz
+ dl9pdGVtIiAgCiAgICAgICAgZGF0YS10b2dnbGU9Im1vZGFsIgogICAgICAg
+ IGRhdGEtdGFyZ2V0PSIjaW1wb3J0X2RpYWxvZyI+SW1wb3J0IENTViBmaWxl
+ Li4uPC9hPjwvbGk+CgogICAgPGxpIHJvbGU9InByZXNlbnRhdGlvbiI+PGEg
+ cm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSIgaHJlZj0iIyIKICAgICAg
+ ICBpZD0iaW1wb3J0X3Bhc3RlZF9pdGVtIiAgCiAgICAgICAgZGF0YS10b2dn
+ bGU9Im1vZGFsIgogICAgICAgIGRhdGEtdGFyZ2V0PSIjaW1wb3J0X3Bhc3Rl
+ ZF9kaWFsb2ciPlBhc3RlIHRhYmxlIGRhdGEuLi48L2E+PC9saT4KCiAgICAK
+ CiAgICA8bGkgcm9sZT0icHJlc2VudGF0aW9uIiBjbGFzcz0iZGl2aWRlciI+
+ PC9saT4KCiAgICA8bGkgcm9sZT0icHJlc2VudGF0aW9uIj48YSByb2xlPSJt
+ ZW51aXRlbSIgdGFiaW5kZXg9Ii0xIiBocmVmPSIjIgogICAgICAgIGlkPSJz
+ YXZlX3RhYmxlX2l0ZW0iICAKICAgICAgICBkYXRhLXRvZ2dsZT0ibW9kYWwi
+ CiAgICAgICAgZGF0YS10YXJnZXQ9IiNzYXZlX3RhYmxlX2RpYWxvZyI+U2F2
+ ZSB0YWJsZS4uLjwvYT48L2xpPgoKICAgIDxsaSByb2xlPSJwcmVzZW50YXRp
+ b24iPjxhIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiIGhyZWY9IiMi
+ CiAgICAgICAgaWQ9ImxvYWRfdGFibGVfaXRlbSIgIAogICAgICAgIGRhdGEt
+ dG9nZ2xlPSJtb2RhbCIKICAgICAgICBkYXRhLXRhcmdldD0iI2xvYWRfdGFi
+ bGVfZGlhbG9nIj5Mb2FkIHRhYmxlLi4uPC9hPjwvbGk+CgogICAgPGxpIHJv
+ bGU9InByZXNlbnRhdGlvbiIgY2xhc3M9ImRpdmlkZXIiPjwvbGk+CiAgICA8
+ bGk+CiAgICA8YSByb2xlPSJidXR0b24iCiAgIGhyZWY9IiMiCiAgIHRpdGxl
+ PSJDcmVhdGVzIGFuIGV4YW1wbGUgdGFibGUuIFByZXNzIENUUkwrWiAob3Ig
+ bWVudSBFZGl0IC8gVW5kbykgdG8gZ28gYmFjayB0byB5b3VyIHRhYmxlIgog
+ ICBpZD0ic2hvd19leGFtcGxlX2J0biI+Q3JlYXRlIGFuIGV4YW1wbGUgdGFi
+ bGUgPC9hPgogICAgPC9saT4KICAgIAoKPC91bD4KPC9saT48IS0tIEZpbGUg
+ aXRlbSAtLT4KICAgIDxsaSBjbGFzcz0iZHJvcGRvd24iPgo8YSBjbGFzcz0i
+ ZHJvcGRvd24tdG9nZ2xlIiBpZD0iY29sdW1uLWRyb3Bkb3duIiByb2xlPSJi
+ dXR0b24iCiAgIGRhdGEtdG9nZ2xlPSJkcm9wZG93biIgaHJlZj0iIyI+RWRp
+ dCA8YiBjbGFzcz0iY2FyZXQiPjwvYj48L2E+Cjx1bCBjbGFzcz0iZHJvcGRv
+ d24tbWVudSIgcm9sZT0ibWVudSIgYXJpYS1sYWJlbGxlZGJ5PSJjb2x1bW4t
+ ZHJvcGRvd24iPgoKICAgIDxsaSByb2xlPSJwcmVzZW50YXRpb24iPjxhIHJv
+ bGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiCiAgICAgICAgaHJlZj0iIyIg
+ aWQ9ImVkaXRfdW5kbyI+PGkgY2xhc3M9Imljb24tZml4ZWQtd2lkdGggaWNv
+ bi1yb3RhdGUtbGVmdCI+PC9pPiBVbmRvIChDdHJsK1opPC9hPjwvbGk+Cgog
+ ICAgPGxpIHJvbGU9InByZXNlbnRhdGlvbiI+PGEgcm9sZT0ibWVudWl0ZW0i
+ IHRhYmluZGV4PSItMSIKICAgICAgICBocmVmPSIjIiBpZD0iZWRpdF9yZWRv
+ Ij48aSBjbGFzcz0iaWNvbi1maXhlZC13aWR0aCBpY29uLXJvdGF0ZS1yaWdo
+ dCI+PC9pPiBSZXBlYXQgKEN0cmwrWSk8L2E+PC9saT4KCiAgICA8bGkgcm9s
+ ZT0icHJlc2VudGF0aW9uIiBjbGFzcz0iZGl2aWRlciI+PC9saT4KCiAgICA8
+ bGkgcm9sZT0icHJlc2VudGF0aW9uIj4KICAgICAgICA8YSByb2xlPSJtZW51
+ aXRlbSIKICAgICAgICAgICB0YWJpbmRleD0iLTEiCiAgICAgICAgICAgaHJl
+ Zj0iIyIKICAgICAgICAgICBpZD0iZWRpdF9maW5kX3JlcGxhY2UiPjxpIGNs
+ YXNzPSJpY29uLWZpeGVkLXdpZHRoIGljb24tc2VhcmNoIj48L2k+IEZpbmQg
+ YW5kIHJlcGxhY2UuLi48L2E+PC9saT4KCiAgICA8bGkgcm9sZT0icHJlc2Vu
+ dGF0aW9uIiBjbGFzcz0iZGl2aWRlciI+PC9saT4KCiAgICA8bGkgY2xhc3M9
+ ImRyb3Bkb3duLXN1Ym1lbnUiPgogICAgICAgIDxhIGhyZWY9IiMiIHRhYmlu
+ ZGV4PSItMSIgdGl0bGU9IkNoYW5nZSBudW1iZXIgZm9ybWF0dGluZyBpbiB0
+ aGUgc2VsZWN0ZWQgY2VsbHMiPkZvcm1hdCBudW1iZXJzPC9hPgogICAgICAg
+ IDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSIgaWQ9Im51bWJlci1mb3JtYXQt
+ bWVudSI+PC91bD4KICAgIDwvbGk+CiAgICAgICAgCiAgICA8bGkgcm9sZT0i
+ cHJlc2VudGF0aW9uIiBjbGFzcz0iZGl2aWRlciI+PC9saT4KCiAgICA8bGkg
+ cm9sZT0icHJlc2VudGF0aW9uIj4KICAgICAgICA8YSByb2xlPSJtZW51aXRl
+ bSIgdGFiaW5kZXg9Ii0xIiBocmVmPSIjIiBpZD0iZWRpdF9hdXRvc2F2ZSI+
+ CiAgICAgICAgPGkgY2xhc3M9Imljb24tZml4ZWQtd2lkdGggaWNvbi1jaGVj
+ ay1taW51cyI+PC9pPiBBdXRvc2F2ZSB0YWJsZSBsb2NhbGx5PC9hPgogICAg
+ PC9saT4KPC91bD4KPC9saT4KCiAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIj4K
+ ICAgIDxhIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiIGlkPSJtZW51X3RhYmxl
+ IiByb2xlPSJidXR0b24iIGRhdGEtdG9nZ2xlPSJkcm9wZG93biIgaHJlZj0i
+ IyI+VGFibGUgPGIgY2xhc3M9ImNhcmV0Ij48L2I+PC9hPgogICAgPHVsIGlk
+ PSJtZW51MSIgY2xhc3M9ImRyb3Bkb3duLW1lbnUiIHJvbGU9Im1lbnUiIAog
+ ICAgICAgIGFyaWEtbGFiZWxsZWRieT0iZHJvcF90YWJsZSI+CiAgICAgICAg
+ PGxpIHJvbGU9InByZXNlbnRhdGlvbiIgY2xhc3M9ImRyb3Bkb3duLXN1Ym1l
+ bnUiPgogICAgPGEgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSIgaHJl
+ Zj0iIyIgaWQ9InRhYmxlX3Jlc2l6ZSI+CiAgICAgICAgPGkgY2xhc3M9Imlj
+ b24tZml4ZWQtd2lkdGggaWNvbi1yZXNpemUtZnVsbCI+PC9pPiBTZXQgc2l6
+ ZQogICAgPC9hPgogICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4KICAg
+ ICAgICA8bGk+PGRpdiBjbGFzcz0idGFibGVfc2l6ZV9jaG9vc2VyIj48L2Rp
+ dj48L2xpPgogICAgPC91bD4KPC9saT4KICAgICAgICA8bGkgcm9sZT0icHJl
+ c2VudGF0aW9uIiBjbGFzcz0iZGl2aWRlciI+PC9saT4KPGxpIHJvbGU9InBy
+ ZXNlbnRhdGlvbiI+CiAgICA8YSByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9
+ Ii0xIiBocmVmPSIjIiBpZD0idGFibGVfcmVzZXQiPgogICAgICAgIDxpIGNs
+ YXNzPSJpY29uLWZpeGVkLXdpZHRoIGljb24tY2lyY2xlLWJsYW5rIj48L2k+
+ IENsZWFyIHRhYmxlCiAgICA8L2E+CjwvbGk+CiAgICAgICAgPGxpIHJvbGU9
+ InByZXNlbnRhdGlvbiIgY2xhc3M9ImRpdmlkZXIiPjwvbGk+CjxsaSByb2xl
+ PSJwcmVzZW50YXRpb24iPgogICAgPGEgcm9sZT0ibWVudWl0ZW0iIHRhYmlu
+ ZGV4PSItMSIgaHJlZj0iIyIgaWQgPSJ0YWJsZV90cmFuc3Bvc2UiPgogICAg
+ ICAgIDxpIGNsYXNzPSJpY29uLWZpeGVkLXdpZHRoIGljb24tcm90YXRlLXJp
+ Z2h0Ij48L2k+IFRyYW5zcG9zZSB0YWJsZTwvYT4KICAgIDwvYT4KPC9saT4K
+ ICAgIDwvdWw+CiAgICA8L2xpPgoKICAgIDxsaSBjbGFzcz0iZHJvcGRvd24i
+ Pgo8YSBjbGFzcz0iZHJvcGRvd24tdG9nZ2xlIiBpZD0iY29sdW1uLWRyb3Bk
+ b3duIiByb2xlPSJidXR0b24iCiAgIGRhdGEtdG9nZ2xlPSJkcm9wZG93biIg
+ aHJlZj0iIyI+Q29sdW1uIDxiIGNsYXNzPSJjYXJldCI+PC9iPjwvYT4KCjx1
+ bCBpZD0ibWVudTEiIGNsYXNzPSJkcm9wZG93bi1tZW51IiByb2xlPSJtZW51
+ IiBhcmlhLWxhYmVsbGVkYnk9ImNvbHVtbi1kcm9wZG93biI+CiAgICA8bGkg
+ Y2xhc3M9ImRyb3Bkb3duLXN1Ym1lbnUiPgogICAgICAgIDxhIGhyZWY9IiMi
+ IHRhYmluZGV4PSItMSI+VGV4dCBhbGlnbjwvYT4KICAgICAgICA8dWwgY2xh
+ c3M9ImRyb3Bkb3duLW1lbnUiPgogICAgICAgICAgICA8bGk+PGEgaHJlZj0i
+ IyIgdGFiaW5kZXg9Ii0xIiBjbGFzcz0ibWFya2VkIiBpZD0iY29sX2FsaWdu
+ X2xlZnQiPgogICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tZml4ZWQt
+ d2lkdGggaWNvbi1hbGlnbi1sZWZ0Ij48L2k+IExlZnQ8L2E+PC9saT4KICAg
+ ICAgICAgICAgPGxpPjxhIGhyZWY9IiMiIHRhYmluZGV4PSItMSIgaWQ9ImNv
+ bF9hbGlnbl9jZW50ZXIiPgogICAgICAgICAgICAgICAgPGkgY2xhc3M9Imlj
+ b24tZml4ZWQtd2lkdGggaWNvbi1hbGlnbi1jZW50ZXIiPjwvaT4gQ2VudGVy
+ PC9hPjwvbGk+CiAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIiB0YWJpbmRl
+ eD0iLTEiIGlkPSJjb2xfYWxpZ25fcmlnaHQiPgogICAgICAgICAgICAgICAg
+ PGkgY2xhc3M9Imljb24tZml4ZWQtd2lkdGggaWNvbi1hbGlnbi1yaWdodCI+
+ PC9pPiBSaWdodDwvYT48L2xpPgogICAgICAgIDwvdWw+CiAgICA8L2xpPgoK
+ ICAgIDxsaSByb2xlPSJwcmVzZW50YXRpb24iIGNsYXNzPSJkaXZpZGVyIj48
+ L2xpPgoKICAgIDxsaSByb2xlPSJwcmVzZW50YXRpb24iPjxhIHJvbGU9Im1l
+ bnVpdGVtIiB0YWJpbmRleD0iLTEiCiAgICAgICAgaHJlZj0iIyIgaWQ9ImNv
+ bF9pbnNlcnRfbGVmdCI+PGkgY2xhc3M9Imljb24tZml4ZWQtd2lkdGggaWNv
+ bi1hcnJvdy1sZWZ0Ij48L2k+IEluc2VydCB0byB0aGUgbGVmdDwvYT48L2xp
+ PgoKICAgIDxsaSByb2xlPSJwcmVzZW50YXRpb24iPjxhIHJvbGU9Im1lbnVp
+ dGVtIiB0YWJpbmRleD0iLTEiCiAgICAgICAgaHJlZj0iIyIgaWQ9ImNvbF9p
+ bnNlcnRfcmlnaHQiPjxpIGNsYXNzPSJpY29uLWZpeGVkLXdpZHRoIGljb24t
+ YXJyb3ctcmlnaHQiPjwvaT4gSW5zZXJ0IHRvIHRoZSByaWdodDwvYT48L2xp
+ PgoKICAgIDxsaSByb2xlPSJwcmVzZW50YXRpb24iIGNsYXNzPSJkaXZpZGVy
+ Ij48L2xpPgoKICAgIDxsaSByb2xlPSJwcmVzZW50YXRpb24iPjxhIHJvbGU9
+ Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiIAogICAgICAgIGhyZWY9IiMiIGlk
+ PSJjb2xfcmVtb3ZlIj48aSBjbGFzcz0iaWNvbi1maXhlZC13aWR0aCBpY29u
+ LXRyYXNoIj48L2k+IFJlbW92ZTwvYT48L2xpPgo8L3VsPgo8L2xpPgogICAg
+ PGxpIGNsYXNzPSJkcm9wZG93biI+CjxhIGNsYXNzPSJkcm9wZG93bi10b2dn
+ bGUiIGlkPSJyb3ctZHJvcGRvd24iIHJvbGU9ImJ1dHRvbiIgZGF0YS10b2dn
+ bGU9ImRyb3Bkb3duIiBocmVmPSIjIj5Sb3cgPGIgY2xhc3M9ImNhcmV0Ij48
+ L2I+PC9hPgo8dWwgaWQ9Im1lbnUyIiBjbGFzcz0iZHJvcGRvd24tbWVudSIg
+ cm9sZT0ibWVudSIgYXJpYS1sYWJlbGxlZGJ5PSJyb3ctZHJvcGRvd24iPgog
+ ICAgPGxpIHJvbGU9InByZXNlbnRhdGlvbiI+PGEgcm9sZT0ibWVudWl0ZW0i
+ IHRhYmluZGV4PSItMSIgaHJlZj0iIyIKICAgICAgICBpZD0icm93X2luc2Vy
+ dF9hYm92ZSI+PGkgY2xhc3M9Imljb24tZml4ZWQtd2lkdGggaWNvbi1hcnJv
+ dy11cCI+PC9pPiBJbnNlcnQgYWJvdmU8L2E+PC9saT4KICAgIDxsaSByb2xl
+ PSJwcmVzZW50YXRpb24iPjxhIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0i
+ LTEiIGhyZWY9IiMiCiAgICAgICAgaWQ9InJvd19pbnNlcnRfYmVsb3ciPjxp
+ IGNsYXNzPSJpY29uLWZpeGVkLXdpZHRoIGljb24tYXJyb3ctZG93biI+PC9p
+ PiBJbnNlcnQgYmVsb3c8L2E+PC9saT4KICAgIDxsaSByb2xlPSJwcmVzZW50
+ YXRpb24iIGNsYXNzPSJkaXZpZGVyIj48L2xpPgogICAgPGxpIHJvbGU9InBy
+ ZXNlbnRhdGlvbiI+PGEgcm9sZT0ibWVudWl0ZW0iIHRhYmluZGV4PSItMSIK
+ ICAgICAgICBocmVmPSIjIiBpZD0icm93X3JlbW92ZSI+PGkgY2xhc3M9Imlj
+ b24tZml4ZWQtd2lkdGggaWNvbi10cmFzaCI+PC9pPiBSZW1vdmU8L2E+PC9s
+ aT4KPC91bD4KPC9saT4KCiAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIj48IS0t
+ IEhlbHAgbWVudSAtLT4KICAgIDxhIGNsYXNzPSJkcm9wZG93bi10b2dnbGUi
+ CiAgICAgICBpZD0iZmlsZV9pdGVtIiByb2xlPSJidXR0b24iCiAgICAgICBk
+ YXRhLXRvZ2dsZT0iZHJvcGRvd24iIGhyZWY9IiMiPkhlbHAgPGIgY2xhc3M9
+ ImNhcmV0Ij48L2I+PC9hPgogICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51
+ IgogICAgICAgIHJvbGU9Im1lbnUiCiAgICAgICAgYXJpYS1sYWJlbGxlZGJ5
+ PSJmaWxlX2l0ZW0iPgogICAgICAgIDxsaSByb2xlPSJwcmVzZW50YXRpb24i
+ PjxhIHJvbGU9Im1lbnVpdGVtIiB0YWJpbmRleD0iLTEiIGhyZWY9IiMiCiAg
+ ICAgICAgICAgIGlkPSJzaG93X2hlbHBfaXRlbSIKICAgICAgICAgICAgZGF0
+ YS10b2dnbGU9Im1vZGFsIgogICAgICAgICAgICBkYXRhLXRhcmdldD0iI3F1
+ aWNrX2hlbHBfZGlhbG9nIj5RdWljayBoZWxwPC9hPjwvbGk+CgogICAgICAg
+ IDxsaSByb2xlPSJwcmVzZW50YXRpb24iPgogICAgICAgICAgICA8YSByb2xl
+ PSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0xIgogICAgICAgICAgICAgICB0aXRs
+ ZT0iRG9jdW1lbnRhdGlvbiBvZiB0aGUgVGFibGVzIEdlbmVyYXRvciIKICAg
+ ICAgICAgICAgICAgaHJlZj0iL2hlbHAvIj5Eb2N1bWVudGF0aW9uPC9hPgog
+ ICAgICAgIDwvbGk+CgogICAgICAgIDxsaSByb2xlPSJwcmVzZW50YXRpb24i
+ PgogICAgICAgICAgICA8YSByb2xlPSJtZW51aXRlbSIgdGFiaW5kZXg9Ii0x
+ IgogICAgICAgICAgICAgICBocmVmPSIvY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8
+ L2E+CiAgICAgICAgPC9saT4KCiAgICAgICAgPGxpIHJvbGU9InByZXNlbnRh
+ dGlvbiIgY2xhc3M9ImRpdmlkZXIiPjwvbGk+CiAgICAgICAgPGxpIHJvbGU9
+ InByZXNlbnRhdGlvbiI+CiAgICAgICAgICAgIDxhIGhyZWY9Ii9jb250YWN0
+ IiAKICAgICAgICAgICAgICAgdGl0bGU9IkNvbnRhY3Qgd2l0aCB1cyI+Q29u
+ dGFjdCB3aXRoIHVzPC9hPgogICAgICAgIDwvbGk+CiAgICA8L3VsPgo8L2xp
+ PjwhLS0gSGVscCBtZW51IC0tPgo8L3VsPgoKICAgICAgICAgICAgICAgIDwv
+ ZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuLXRvb2xiYXIi
+ PgogICAgICAgICAgICAgICAgICAgIAoKPGRpdiBjbGFzcz0iYnRuLWdyb3Vw
+ Ij4KICAgPGEgY2xhc3M9InRvb2xiYXItYnRuIiAKICAgICAgIHRpdGxlPSJM
+ ZWZ0IGFsaWduIHRoZSBjb250ZW50cyBvZiBzZWxlY3RlZCBjZWxscyIKICAg
+ ICAgIGlkPSJsZWZ0X2FsaWduX2J0biI+PGkgY2xhc3M9InRvb2xiYXItaWNv
+ biBpY29uLWFsaWduLWxlZnQiPjwvaT48L2E+CiAgIDxhIGNsYXNzPSJ0b29s
+ YmFyLWJ0biIgCiAgICAgICB0aXRsZT0iQ2VudGVyIHRoZSBjb250ZW50cyBv
+ ZiBzZWxlY3RlZCBjZWxscyIKICAgICAgIGlkPSJjZW50ZXJfYWxpZ25fYnRu
+ Ij48aSBjbGFzcz0idG9vbGJhci1pY29uIGljb24tYWxpZ24tY2VudGVyIj48
+ L2k+PC9hPgogICA8YSBjbGFzcz0idG9vbGJhci1idG4iIAogICAgICAgdGl0
+ bGU9IlJpZ2h0IGFsaWduIHRoZSBjb250ZW50cyBvZiBzZWxlY3RlZCBjZWxs
+ cyIKICAgICAgIGlkPSJyaWdodF9hbGlnbl9idG4iPjxpIGNsYXNzPSJ0b29s
+ YmFyLWljb24gaWNvbi1hbGlnbi1yaWdodCI+PC9pPjwvYT4KPC9kaXY+Cgog
+ ICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAg
+ ICAgICAgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlIj4KICAg
+ ICAgICAgICAgICAgIDxkaXYgaWQ9ImVkaXRlZF90YWJsZV9jb250YWluZXIi
+ PjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAg
+ ICAgICAgPGRpdiBpZD0idGFibGVfZWRpdG9yX2V4cGFuZGVyIj48c3Bhbj7i
+ hqcgRXhwYW5kIOKGpzwvc3Bhbj48c3Bhbj7ihqUgQ29sbGFwc2Ug4oalPC9z
+ cGFuPjwvZGl2PgogICAgICAgIDxkaXYgaWQ9ImdlbmVyYXRlX3RhYmxlX3Bh
+ bmVsIj48L2Rpdj4KICAgICAgICA8ZGl2IGlkPSJyZXN1bHQtYm94Ij4KICAg
+ ICAgICAgICAgPGRpdiBjbGFzcz0ibm90ZSI+PHN0cm9uZz5SZXN1bHQ8L3N0
+ cm9uZz4gPHNwYW4gY2xhc3M9Im11dGVkIj4oY2xpY2sgIkdlbmVyYXRlIiB0
+ byByZWZyZXNoKTwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFz
+ cz0iYnRuIGJ0bi1zdWNjZXNzIGNvcHktdG8tY2xpcGJvYXJkLXdvcmthcm91
+ bmQiIAogICAgICAgICAgICAgICAgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IGZs
+ b2F0OiByaWdodDsgZm9udC13ZWlnaHQ6IGJvbGQiPgogICAgICAgICAgICAg
+ ICAgPGkgY2xhc3M9Imljb24tcGFzdGUiPjwvaT4gQ29weSB0byBjbGlwYm9h
+ cmQKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgCiAgICAg
+ ICAgICAgICAgICBjbGFzcz0iYnRuIGJ0bi1zdWNjZXNzIHdpdGgtemVyby1j
+ bGlwYm9hcmQiCiAgICAgICAgICAgICAgICBpZD0iY29weS10by1jbGlwYm9h
+ cmQiCiAgICAgICAgICAgICAgICBkYXRhLWFjdGlvbi1pZD0iY29weS10by1j
+ bGlwYm9hcmQiCiAgICAgICAgICAgICAgICBzdHlsZT0iZm9udC13ZWlnaHQ6
+ IGJvbGQ7IGNvbG9yOiB3aGl0ZTsiPjxpIGNsYXNzPSJpY29uLXBhc3RlIj48
+ L2k+IENvcHkgdG8gY2xpcGJvYXJkPC9kaXY+CiAgICAgICAgICAgIAo8ZGl2
+ IGNsYXNzPSJidG4gcHVsbC1yaWdodCIgCiAgICAgICAgaWQ9InByZXZpZXct
+ dGFibGUtYnRuIgogICAgICAgIHN0eWxlPSJtYXJnaW46IDAgMTBweCAwIDAi
+ CiAgICAgICAgPjxpIGNsYXNzPSJpY29uLWV5ZS1vcGVuIj48L2k+Jm5ic3A7
+ Jm5ic3A7UHJldmlldzwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0i
+ Y2xlYXJmaXgiPjwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICAKPHBy
+ ZSBjbGFzcz0ibGluZS1udW1iZXJzIiB0aXRsZT0iRG91YmxlIGNsaWNrIHRv
+ IHNlbGVjdCBhbGwiPjxjb2RlCmNsYXNzPSJsYW5ndWFnZS1tYXJrZG93biIg
+ aWQ9InJlc3VsdC1jb2RlIj48L2NvZGU+PC9wcmU+Cgo8cD4KWW91IGNhbiBu
+ b3cgaW1wb3J0IE1hcmtkb3duIHRhYmxlIGNvZGUgZGlyZWN0bHkgdXNpbmcg
+ PHN0cm9uZz5GaWxlL1Bhc3RlIHRhYmxlIGRhdGEuLi48L3N0cm9uZz4gZGlh
+ bG9nLgo8L3A+CgoKICAgICAgICA8ZGl2IGlkPSJib3R0b20tYmxvY2siPgog
+ ICAgICAgICAgICA8ZGl2IGNsYXNzPSJtYWluLWJvdHRvbSI+CiAgICAgICAg
+ ICAgIAo8ZGl2IGNsYXNzPSJzcGFuNiI+CgogICAgPGgzPkhvdyB0byB1c2Ug
+ aXQ/PC9oMz4KCiAgICA8b2w+CiAgICAgICAgPGxpPlVzaW5nIHRoZSA8ZW0+
+ VGFibGU8L2VtPiBtZW51IHNldCB0aGUgZGVzaXJlZCBzaXplIG9mIHRoZSB0
+ YWJsZS48L2xpPgogICAgICAgIDxsaT5FbnRlciB0aGUgdGFibGUgZGF0YSBp
+ bnRvIHRoZSB0YWJsZToKICAgICAgICA8dWw+CiAgICAgICAgICAgIDxsaT5z
+ ZWxlY3QgYW5kIGNvcHkgKEN0cmwrQykgYSB0YWJsZSBmcm9tIHRoZSBzcHJl
+ YWRzaGVldCAoZS5nLiBHb29nbGUgRG9jcywKICAgICAgICAgICAgTGlicmVP
+ ZmZpY2UgQ2FsYywgd2VicGFnZSkgYW5kIHBhc3RlIGl0IGludG8gb3VyIGVk
+ aXRvciAtLSBjbGljayBhIGNlbGwKICAgICAgICAgICAgYW5kIHByZXNzIEN0
+ cmwrVjwvbGk+CiAgICAgICAgICAgIDxsaT5vciBqdXN0IDxzdHJvbmc+ZG91
+ YmxlIGNsaWNrIGFueSBjZWxsPC9zdHJvbmc+IHRvIHN0YXJ0IGVkaXRpbmcg
+ aXQncyBjb250ZW50cyAtLQogICAgICAgICAgICBUYWIgYW5kIEFycm93IGtl
+ eXMgY2FuIGJlIHVzZWQgdG8gbmF2aWdhdGUgdGFibGUgY2VsbHM8L2xpPgog
+ ICAgICAgIDwvdWw+CiAgICAgICAgPC9saT4KICAgICAgICA8bGk+QWRqdXN0
+ IHRleHQgYWxpZ25tZW50IGFuZCB0YWJsZSBib3JkZXJzIHVzaW5nIHRoZSBv
+ cHRpb25zIGZyb20gdGhlCiAgICAgICAgbWVudSBhbmQgdXNpbmcgdGhlIHRv
+ b2xiYXIgYnV0dG9ucyAtLSBmb3JtYXR0aW5nIGlzIGFwcGxpZWQgdG8gYWxs
+ IHRoZQogICAgICAgIHNlbGVjdGVkIGNlbGxzLjwvbGk+CiAgICAgICAgPGxp
+ PkNsaWNrICJHZW5lcmF0ZSIgYnV0dG9uIHRvIHNlZSB0aGUgZ2VuZXJhdGVk
+ IHRhYmxlIC0tIHNlbGVjdCBpdCBhbmQgY29weSB0byB5b3VyIGRvY3VtZW50
+ LjwvbGk+CiAgICA8L29sPgoKICAgIDxoMz5NYXJrZG93biB0YWJsZXMgc3Vw
+ cG9ydDwvaDM+CiAgICA8cD4KICAgIEFzIHRoZSBvZmZpY2lhbCA8YSBocmVm
+ PSJodHRwOi8vZGFyaW5nZmlyZWJhbGwubmV0L3Byb2plY3RzL21hcmtkb3du
+ L3N5bnRheCIKICAgICAgICB0aXRsZT0iTWFya2Rvd24gc3ludGF4IGRvY3Vt
+ ZW50YXRpb24iPk1hcmtkb3duIGRvY3VtZW50YXRpb248L2E+CiAgICBzdGF0
+ ZXMsIE1hcmtkb3duIGRvZXMgbm90IHByb3ZpZGUgYW55IHNwZWNpYWwgc3lu
+ dGF4IGZvciB0YWJsZXMuIEluc3RlYWQgaXQKICAgIHVzZXMgSFRNTCAmbHQ7
+ dGFibGUmZ3Q7IHN5bnRheC4gQnV0IHRoZXJlIGV4aXN0IE1hcmtkb3duIHN5
+ bnRheAogICAgZXh0ZW5zaW9ucyB3aGljaCBwcm92aWRlIGFkZGl0aW9uYWwg
+ c3ludGF4IGZvciBjcmVhdGluZyBzaW1wbGUgdGFibGVzLgogICAgPC9wPgoK
+ ICAgIDxwPgogICAgT25lIG9mIHRoZSBtb3N0IHBvcHVsYXIgaXMgPGEgaHJl
+ Zj0iaHR0cDovL21hcmtkb3duLWhlcmUuY29tLyIKICAgICAgICB0aXRsZT0i
+ TWFya2RvdyBoZXJlIj5NYXJrZG93biBIZXJlPC9hPiAmbWRhc2g7IGFuIGV4
+ dGVuc2lvbiBmb3IKICAgIHBvcHVsYXIgYnJvd3NlcnMgd2hpY2ggYWxsb3dz
+ IHlvdSB0byBlYXNpbHkgcHJlcGFyZSBnb29kLWxvb2tpbmcgZS1tYWlscwog
+ ICAgdXNpbmcgTWFya2Rvd24gc3ludGF4LgogICAgPC9wPgoKICAgIDxwPgog
+ ICAgU2ltaWxhciB0YWJsZSBzeW50YXggaXMgdXNlZCBpbiB0aGUgPGVtPkdp
+ dGh1YiBGbGF2b3JlZCBNYXJrZG93bjwvZW0+LCBpbgogICAgc2hvcnQgR0ZN
+ IHRhYmxlcy4KICAgIDwvcD4KCjwvZGl2PjwhLS1zcGFuNi0tPgoKPGRpdiBj
+ bGFzcz0ic3BhbjYiPgoKICAgIDxoMz5FeGFtcGxlPC9oMz4KCiAgICA8cD4K
+ ICAgIEdGTSBNYXJrZG93biB0YWJsZSBzeW50YXggaXMgcXVpdGUgc2ltcGxl
+ LiBJdCBkb2VzIG5vdCBhbGxvdyByb3cgb3IgY2VsbAogICAgc3Bhbm5pbmcg
+ YXMgd2VsbCBhcyBwdXR0aW5nIG11bHRpLWxpbmUgdGV4dCBpbiBhIGNlbGwu
+ IFRoZSBmaXJzdCByb3cgaXMKICAgIGFsd2F5cyB0aGUgaGVhZGVyIGZvbGxv
+ d2VkIGJ5IGFuIGV4dHJhIGxpbmUgd2l0aCBkYXNoZXMgIi0iIGFuZCBvcHRp
+ b25hbAogICAgY29sb25zICI6IiBmb3IgZm9yY2luZyBjb2x1bW4gYWxpZ25t
+ ZW50LgogICAgPC9wPgogICAgPHByZT4KfCBUYWJsZXMgICB8ICAgICAgQXJl
+ ICAgICAgfCAgQ29vbCB8CnwtLS0tLS0tLS0tfDotLS0tLS0tLS0tLS0tOnwt
+ LS0tLS06fAp8IGNvbCAxIGlzIHwgIGxlZnQtYWxpZ25lZCB8ICQxNjAwIHwK
+ fCBjb2wgMiBpcyB8ICAgIGNlbnRlcmVkICAgfCAgICQxMiB8CnwgY29sIDMg
+ aXMgfCByaWdodC1hbGlnbmVkIHwgICAgJDEgfAogICAgPC9wcmU+Cgo8L2Rp
+ dj48IS0tc3BhbjYtLT4KCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwv
+ ZGl2PgogICAgPC9kaXY+CgogICAgCiAgICA8ZGl2IGlkPSJyaWdodC1jb2x1
+ bW4tcmV2Ij4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogIzU1NTsiPkFkdmVy
+ dGlzZW1lbnQ8L3NwYW4+PGJyPgogICAgPGRpdiBjbGFzcz0iYWQtd3JhcHBl
+ ciBhZC1za3lzY3JhcHBlciI+CiAgICAgICAgCjxpbnMgY2xhc3M9ImFkc2J5
+ Z29vZ2xlIgogICAgIHN0eWxlPSJkaXNwbGF5OmJsb2NrIgogICAgIGRhdGEt
+ YWQtY2xpZW50PSJjYS1wdWItMjg2NTU4MTY3NjI1Njg2OCIKICAgICBkYXRh
+ LWFkLXNsb3Q9IjMyODY4MjMyMzAiCiAgICAgZGF0YS1hZC1mb3JtYXQ9ImF1
+ dG8iCiAgICAgZGF0YS1mdWxsLXdpZHRoLXJlc3BvbnNpdmU9InRydWUiPjwv
+ aW5zPgo8c2NyaXB0PihhZHNieWdvb2dsZSA9IHdpbmRvdy5hZHNieWdvb2ds
+ ZSB8fCBbXSkucHVzaCh7fSk7PC9zY3JpcHQ+CgogICAgPC9kaXY+CiAgICA8
+ L2Rpdj4KICAgIAogICAgCjwvZGl2PgoKCiAgICAgIDxkaXYgaWQ9ImZvb3Rl
+ ciI+CiAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogZmxleDsgZmxleC1k
+ aXJlY3Rpb246IHJvdzsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsiPgog
+ ICAgICAgICAgPGEgaHJlZj0iL2Fib3V0IiB0aXRsZT0iRmluZCBvdXQgbW9y
+ ZSBhYm91dCBvdXQgVGFibGUgR2VuZXJhdG9yIj5BYm91dDwvYT4KICAgICAg
+ ICAgIDxhIGhyZWY9Ii9jaGFuZ2Vsb2ciIHRpdGxlPSJSZWFkIGFib3V0IHJl
+ Y2VudCBjaGFuZ2VzIHRvIG91ciBhcHBsaWNhdGlvbiI+Q2hhbmdlbG9nPC9h
+ PgogICAgICAgICAgPGEgaHJlZj0iIyIgb25jbGljaz0iQ29va2llQ29uc2Vu
+ dC5zaG93X2RpYWxvZygpO2V2ZW50LnByZXZlbnREZWZhdWx0KCk7Ij5Db29r
+ aWUgU2V0dGluZ3M8L2E+CiAgICAgICAgICA8YSBocmVmPSIvcHJpdmFjeS1w
+ b2xpY3kiPlByaXZhY3kgUG9saWN5PC9hPgogICAgICAgICAgPGEgaHJlZj0i
+ L2NvbnRhY3QiIHRpdGxlPSJDb250YWN0IHdpdGggdXMiPkNvbnRhY3Q8L2E+
+ CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdj4mY29weTsgVGFibGVzR2Vu
+ ZXJhdG9yLmNvbTwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PiA8IS0t
+ IC9jb250YWluZXIgLS0+CgogICAgCiAgICA8ZGl2IGlkPSJtZXNzYWdlX2Rp
+ YWxvZyIgY2xhc3M9Im1vZGFsIGhpZGUgZmFkZSIgdGFiaW5kZXg9Ii0xIiBy
+ b2xlPSJkaWFsb2ciIGFyaWEtbGFiZWxsZWRieT0ibWVzc2FnZV9kaWFsb2df
+ bGFiZWwiIGFyaWEtaGlkZGVuPSJ0cnVlIj4KICA8ZGl2IGNsYXNzPSJtb2Rh
+ bC1oZWFkZXIiPgogICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJj
+ bG9zZSIgZGF0YS1kaXNtaXNzPSJtb2RhbCIgYXJpYS1oaWRkZW49InRydWUi
+ PsOXPC9idXR0b24+CiAgICA8aDMgaWQ9Im1lc3NhZ2VfZGlhbG9nX2xhYmVs
+ Ij5Ob3RpZmljYXRpb248L2gzPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9Im1v
+ ZGFsLWJvZHkiPgogICAgPHAgaWQ9Im1lc3NhZ2VfZGlhbG9nX2JvZHkiPjwv
+ cD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPgogICAg
+ PGJ1dHRvbiBjbGFzcz0iYnRuIiBkYXRhLWRpc21pc3M9Im1vZGFsIiBhcmlh
+ LWhpZGRlbj0idHJ1ZSI+Q2xvc2U8L2J1dHRvbj4KICA8L2Rpdj4KPC9kaXY+
+ CiAgICA8ZGl2IGlkPSJuZXdfdGFibGVfZGlhbG9nIiBjbGFzcz0ibW9kYWwg
+ aGlkZSBmYWRlIiB0YWJpbmRleD0iLTEiIHJvbGU9ImRpYWxvZyIgYXJpYS1s
+ YWJlbGxlZGJ5PSJteU1vZGFsTGFiZWwiIGFyaWEtaGlkZGVuPSJ0cnVlIj4K
+ ICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+CiAgICAgICAgPGJ1dHRv
+ biB0eXBlPSJidXR0b24iIGNsYXNzPSJjbG9zZSIgZGF0YS1kaXNtaXNzPSJt
+ b2RhbCIgYXJpYS1oaWRkZW49InRydWUiPsOXPC9idXR0b24+CiAgICAgICAg
+ PGgzIGlkPSJteU1vZGFsTGFiZWwiPkNyZWF0ZSBuZXcgdGFibGU8L2gzPgog
+ ICAgPC9kaXY+Cgo8Zm9ybSBjbGFzcz0iZm9ybS1ob3Jpem9udGFsIj4KICAg
+ IDxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPgogICAgICAgIDxwPgogICAgICAg
+ IEVudGVyIHRhYmxlIHNpemUuIFBsZWFzZSwgcmVtZW1iZXIgdGhhdCB0aGUg
+ Y3VycmVudCB0YWJsZSBjb250ZW50cyB3aWxsCiAgICAgICAgYmUgbG9zdC4K
+ ICAgICAgICA8L3A+CgogIDxkaXYgY2xhc3M9ImNvbnRyb2wtZ3JvdXAiPgog
+ ICAgPGxhYmVsIGNsYXNzPSJjb250cm9sLWxhYmVsIiBmb3I9Im5ld190YWJs
+ ZV9yb3dzIj5Sb3dzPC9sYWJlbD4KICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xz
+ Ij4KICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgbWluPSIxIiBtYXg9IjUw
+ MCIgCiAgICAgICAgICAgICBpZD0ibmV3X3RhYmxlX3Jvd3NfaW5wdXQiIAog
+ ICAgICAgICAgICAgdmFsdWU9IjMiPgogICAgICA8c3BhbiBjbGFzcz0iaGVs
+ cC1pbmxpbmUiPlZhbGlkIHJhbmdlOiAxLTUwMDwvc3Bhbj4KICAgIDwvZGl2
+ PgogIDwvZGl2PgogIDxkaXYgY2xhc3M9ImNvbnRyb2wtZ3JvdXAiPgogICAg
+ PGxhYmVsIGNsYXNzPSJjb250cm9sLWxhYmVsIiBmb3I9Im5ld190YWJsZV9j
+ b2x1bW5zIj5Db2x1bW5zPC9sYWJlbD4KICAgIDxkaXYgY2xhc3M9ImNvbnRy
+ b2xzIj4KICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgbWluPSIxIiBtYXg9
+ IjIwIiAKICAgICAgICAgICAgIGlkPSJuZXdfdGFibGVfY29sdW1uc19pbnB1
+ dCIgCiAgICAgICAgICAgICB2YWx1ZT0iMyI+CiAgICAgIDxzcGFuIGNsYXNz
+ PSJoZWxwLWlubGluZSI+VmFsaWQgcmFuZ2U6IDEtMjA8L3NwYW4+CiAgICA8
+ L2Rpdj4KICA8L2Rpdj4KCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9Im1v
+ ZGFsLWZvb3RlciI+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIiBkYXRh
+ LWRpc21pc3M9Im1vZGFsIiBhcmlhLWhpZGRlbj0idHJ1ZSI+Q2FuY2VsPC9i
+ dXR0b24+CiAgICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgaWQ9ImNyZWF0
+ ZV9uZXdfdGFibGVfYnRuIiB2YWx1ZT0iQ3JlYXRlIiBjbGFzcz0iYnRuIGJ0
+ bi1wcmltYXJ5Ij4KICAgIDwvZGl2PgogICAgPC9mb3JtPgo8L2Rpdj4KICAg
+ IDwhLS0gSW1wb3J0IGRpYWxvZyAtLT4KPGRpdiBpZD0iaW1wb3J0X2RpYWxv
+ ZyIgY2xhc3M9Im1vZGFsIGhpZGUgZmFkZSIgdGFiaW5kZXg9Ii0xIiByb2xl
+ PSJkaWFsb2ciIGFyaWEtbGFiZWxsZWRieT0ibXlNb2RhbExhYmVsIiBhcmlh
+ LWhpZGRlbj0idHJ1ZSI+CiAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIi
+ PgogICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iY2xvc2Ui
+ IGRhdGEtZGlzbWlzcz0ibW9kYWwiIGFyaWEtaGlkZGVuPSJ0cnVlIj7Dlzwv
+ YnV0dG9uPgogICAgICAgIDxoMyBpZD0ibXlNb2RhbExhYmVsIj5JbXBvcnQg
+ ZGF0YSBmcm9tIENTViBmaWxlPC9oMz4KICAgIDwvZGl2PgogICAgPGZvcm0g
+ YWN0aW9uPSIvbWFya2Rvd25fdGFibGVzIiAKICAgICAgICAgIGVuY3R5cGU9
+ Im11bHRpcGFydC9mb3JtLWRhdGEiIAogICAgICAgICAgbWV0aG9kPSJwb3N0
+ IgogICAgICAgICAgc3R5bGU9Im1hcmdpbjogMDsiPgogICAgPGRpdiBjbGFz
+ cz0ibW9kYWwtYm9keSI+CiAgICAgICAgPHA+WW91IGNhbiBpbXBvcnQgdGFi
+ bGUgZGF0YSBieSB1cGxvYWRpbmcgZmlsZSBpbiBDU1YgZm9ybWF0IChDb21t
+ YQogICAgICAgIFNlcGFyYXRlZCBWYWx1ZSkuIE1vc3Qgc3ByZWFkc2hlZXQg
+ c29mdHdhcmUsIGJvdGggZGVza3RvcCBhbmQKICAgICAgICBvbmxpbmUsIGFs
+ bG93cyB0byBzYXZlIHRhYnVsYXIgZGF0YSBpbiBDU1YgZm9ybWF0ICZtZGFz
+ aDsKICAgICAgICBpdCBpcyB1c3VhbGx5IGF2YWlsYWJsZSBpbiB0aGUgRmls
+ ZSBtZW51IHVuZGVyIHRoZSBuYW1lICJTYXZlIEFzLi4uIiBvcgogICAgICAg
+ ICJFeHBvcnQiLiAKICAgICAgICA8L3A+CiAgICAgICAgPGRpdj4KICAgICAg
+ ICAgICAgPGxhYmVsIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ij5T
+ ZWxlY3QgQ1NWIGZpbGUgPC9sYWJlbD4KICAgICAgICAgICAgPGlucHV0IHR5
+ cGU9ImZpbGUiIG5hbWU9ImltcG9ydGVkIi8+CiAgICAgICAgPC9kaXY+CiAg
+ ICAgICAgPHAgY2xhc3M9InRleHQtaW5mbyIgc3R5bGU9InBhZGRpbmctdG9w
+ OiAxMHB4OyI+CiAgICAgICAgUGxlYXNlLCBlbnN1cmUgdGhhdCB0aGUgY2hh
+ cmFjdGVyIGVuY29kaW5nIG9mIHlvdXIgQ1NWIGZpbGUgd2FzIHNldCB0byBV
+ VEYtOAogICAgICAgIG90aGVyd2lzZSBzb21lIG9mIHRoZSBjaGFyYWN0ZXJz
+ IG1heSBiZSBkaXNwbGF5ZWQgaW5jb3JyZWN0bHkuCiAgICAgICAgPC9wPgog
+ ICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPgogICAg
+ ICAgIDxidXR0b24gY2xhc3M9ImJ0biIgZGF0YS1kaXNtaXNzPSJtb2RhbCIg
+ YXJpYS1oaWRkZW49InRydWUiPkNhbmNlbDwvYnV0dG9uPgogICAgICAgIDxp
+ bnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJJbXBvcnQiIGNsYXNzPSJidG4g
+ YnRuLXByaW1hcnkiPgogICAgPC9kaXY+CiAgICA8L2Zvcm0+CjwvZGl2Pjwh
+ LS0gSW1wb3J0IGRpYWxvZyAtLT4KICAgIDwhLS0gSW1wb3J0IGRpYWxvZyAt
+ LT4KPGRpdiBpZD0iaW1wb3J0X3Bhc3RlZF9kaWFsb2ciIAogICAgIGNsYXNz
+ PSJtb2RhbCBoaWRlIGZhZGUiCiAgICAgdGFiaW5kZXg9Ii0xIgogICAgIHJv
+ bGU9ImRpYWxvZyIKICAgICBhcmlhLWxhYmVsbGVkYnk9Im15TW9kYWxMYWJl
+ bCIKICAgICBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICA8ZGl2IGNsYXNzPSJt
+ b2RhbC1oZWFkZXIiPgogICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBj
+ bGFzcz0iY2xvc2UiIGRhdGEtZGlzbWlzcz0ibW9kYWwiIGFyaWEtaGlkZGVu
+ PSJ0cnVlIj7DlzwvYnV0dG9uPgogICAgICAgIDxoMyBpZD0ibXlNb2RhbExh
+ YmVsIj5QYXN0ZSB0YWJsZSBkYXRhPC9oMz4KICAgIDwvZGl2PgogICAgPGZv
+ cm0gYWN0aW9uPSIvbWFya2Rvd25fdGFibGVzIiAKICAgICAgICAgIG1ldGhv
+ ZD0icG9zdCIKICAgICAgICAgIGFjY2VwdC1jaGFyc2V0PSJVVEYtOCIKICAg
+ ICAgICAgIHN0eWxlPSJtYXJnaW46IDA7IgogICAgICAgICAgaWQ9ImltcG9y
+ dF9wYXN0ZWRfZm9ybSIKICAgICAgICAgID4KICAgIDxkaXYgY2xhc3M9Im1v
+ ZGFsLWJvZHkiIHN0eWxlPSJoZWlnaHQ6IDUwMHB4OyBkaXNwbGF5OiBmbGV4
+ OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyI+CiAgICAgICAgPHA+CiAgICAg
+ ICAgUGFzdGUgKEN0cmwgKyBWKSBiZWxvdyBhbiBleGlzdGluZyB0YWJsZSBj
+ b3BpZWQgKEN0cmwgKyBDKSBmcm9tIGEKICAgICAgICA8ZW0+c3ByZWFkc2hl
+ ZXQ8L2VtPiAoZS5nLiBNaWNyb3NvZnQgRXhjZWwpLCBhIDxlbT50ZXh0IGRv
+ Y3VtZW50PC9lbT4sIGEgPGVtPk1hcmtkb3duIC8gSFRNPC9lbT4gY29kZSwg
+ b3IKICAgICAgICBldmVuIGEgPGVtPndlYnNpdGU8L2VtPi4KICAgICAgICA8
+ L3A+CiAgICAgICAgPGRpdiBpZD0idGFibGVfaW1wb3J0X3Bhc3RlX3Rhcmdl
+ dCIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj48L2Rpdj4KCiAgICAgICAgPGxh
+ YmVsIGNsYXNzPSJjaGVja2JveCIgc3R5bGU9Im1hcmdpbjogNXB4IDAgMCAw
+ OyBkaXNwbGF5OiBub25lOyI+PGlucHV0IHR5cGU9ImNoZWNrYm94IgogICAg
+ ICAgICAgICAgICBpZD0iaW1wb3J0X3Bhc3RlZF93aXRoX3N0eWxlIj5QYXN0
+ ZSB3aXRoIGZvcm1hdHRpbmcgKGNvbG9ycywgdGV4dCBzdHlsZSwgZXRjLik8
+ L2xhYmVsPgoKICAgICAgICA8dGV4dGFyZWEgaWQ9ImltcG9ydF9wYXN0ZWQi
+ IG5hbWU9ImltcG9ydF9wYXN0ZWQiIGFjY2VwdC1jaGFyc2V0PSJ1dGYtOCIg
+ c3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij48L3RleHRhcmVhPgogICAgPC9kaXY+
+ CiAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPgogICAgICAgIDxidXR0
+ b24gY2xhc3M9ImJ0biIgZGF0YS1kaXNtaXNzPSJtb2RhbCIgYXJpYS1oaWRk
+ ZW49InRydWUiPkNhbmNlbDwvYnV0dG9uPgogICAgICAgIDxpbnB1dCB0eXBl
+ PSJzdWJtaXQiIHZhbHVlPSJMb2FkIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5
+ IiBpZD0idGFibGVfaW1wb3J0X3N1Ym1pdF9idG4iPgogICAgPC9kaXY+CiAg
+ ICA8L2Zvcm0+CjwvZGl2PjwhLS0gSW1wb3J0IGRpYWxvZyAtLT4KICAgIDxk
+ aXYgaWQ9InNhdmVfdGFibGVfZGlhbG9nIiBjbGFzcz0ibW9kYWwgaGlkZSBm
+ YWRlIiB0YWJpbmRleD0iLTEiIHJvbGU9ImRpYWxvZyIgYXJpYS1sYWJlbGxl
+ ZGJ5PSJteU1vZGFsTGFiZWwiIGFyaWEtaGlkZGVuPSJ0cnVlIj4KICAgIDxk
+ aXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+CiAgICAgICAgPGJ1dHRvbiB0eXBl
+ PSJidXR0b24iIGNsYXNzPSJjbG9zZSIgZGF0YS1kaXNtaXNzPSJtb2RhbCIg
+ YXJpYS1oaWRkZW49InRydWUiPsOXPC9idXR0b24+CiAgICAgICAgPGgzIGlk
+ PSJteU1vZGFsTGFiZWwiPlNhdmUgdGFibGU8L2gzPgogICAgPC9kaXY+Cgog
+ ICAgPGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+CiAgICAgICAgPHA+CiAgICAg
+ ICAgSWYgeW91IHdhbnQgdG8ga2VlcCB0aGUgdGFibGUgZm9yIGFueSBmdXR1
+ cmUgZWRpdGluZyBjbGljayB0aGUKICAgICAgICAiRG93bmxvYWQiIGJ1dHRv
+ biBiZWxvdy4gVGhlIGZpbGUgd2l0aCB0aGUgdGFibGUgY2FuIGJlIGxvYWRl
+ ZCBiYWNrIHVzaW5nCiAgICAgICAgdGhlICJMb2FkIHRhYmxlIiBvcHRpb24g
+ ZnJvbSB0aGUgbWVudS4KICAgICAgICA8L3A+CgogICAgICAgIDxmb3JtIGlk
+ PSJ0YWJsZS1zYXZlLWZvcm0iIGFjdGlvbj0iL3RhYmxlLXNhdmUiIG1ldGhv
+ ZD0iUE9TVCIgYWNjZXB0LWNoYXJzZXQ9InV0Zi04IiBjbGFzcz0iZm9ybS1o
+ b3Jpem9udGFsIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2wtZ3Jv
+ dXAiPgogICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbnRyb2wtbGFiZWwi
+ IGZvcj0idGFibGUtbmFtZSI+VGFibGUgbmFtZTwvbGFiZWw+CiAgICAgICAg
+ ICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xzIj4KICAgICAgICAgICAgICA8aW5w
+ dXQgdHlwZT0idGV4dCIgaWQ9InRhYmxlLW5hbWUiIG5hbWU9InRhYmxlLW5h
+ bWUiIHBsYWNlaG9sZGVyPSJFbnRlciBuYW1lLi4uIj4KICAgICAgICAgICAg
+ PC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9
+ ImNvbnRyb2wtZ3JvdXAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250
+ cm9scyI+CiAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImJ0biBi
+ dG4tcHJpbWFyeSIgaWQ9InRhYmxlLXNhdmUtbGluayIgdGl0bGU9IkNsaWNr
+ IHRvIGRvd25sb2FkIGZpbGUgd2l0aCB0aGUgdGFibGUiPkRvd25sb2FkPC9h
+ PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAg
+ ICAgICA8aW5wdXQgbmFtZT0idGFibGUtZGF0YSIgaWQ9InRhYmxlLXNhdmUt
+ ZGF0YSIgdHlwZT0iaGlkZGVuIj4KICAgICAgICA8L2Zvcm0+CgogICAgICAg
+ IDxwPgogICAgICAgIDwvcD4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9
+ Im1vZGFsLWZvb3RlciI+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIiBk
+ YXRhLWRpc21pc3M9Im1vZGFsIiBhcmlhLWhpZGRlbj0idHJ1ZSI+Q2FuY2Vs
+ PC9idXR0b24+CiAgICA8L2Rpdj4KPC9kaXY+PCEtLSBJbXBvcnQgZGlhbG9n
+ IC0tPgogICAgPCEtLSBMb2FkIHRhYmxlIGRpYWxvZyAtLT4KPGRpdiBpZD0i
+ bG9hZF90YWJsZV9kaWFsb2ciIGNsYXNzPSJtb2RhbCBoaWRlIGZhZGUiIHRh
+ YmluZGV4PSItMSIgcm9sZT0iZGlhbG9nIgogICAgIGFyaWEtbGFiZWxsZWRi
+ eT0ibG9hZF90YWJsZV9kaWFsb2dfbGFiZWwiIGFyaWEtaGlkZGVuPSJ0cnVl
+ Ij4KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+CiAgICAgICAgPGJ1
+ dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjbG9zZSIgZGF0YS1kaXNtaXNz
+ PSJtb2RhbCIgYXJpYS1oaWRkZW49InRydWUiPsOXPC9idXR0b24+CiAgICAg
+ ICAgPGgzIGlkPSJsb2FkX3RhYmxlX2RpYWxvZ19sYWJlbCI+TG9hZCB0YWJs
+ ZS4uLjwvaDM+CiAgICA8L2Rpdj4KICAgIDxmb3JtIGFjdGlvbj0iL21hcmtk
+ b3duX3RhYmxlcy9sb2FkIiAKICAgICAgICAgIGVuY3R5cGU9Im11bHRpcGFy
+ dC9mb3JtLWRhdGEiIAogICAgICAgICAgbWV0aG9kPSJwb3N0IgogICAgICAg
+ ICAgc3R5bGU9Im1hcmdpbjogMDsiPgogICAgPGRpdiBjbGFzcz0ibW9kYWwt
+ Ym9keSI+CiAgICAgICAgPHA+TG9hZCB0YWJsZSBmcm9tIGEgcHJldmlvdXNs
+ eSBzYXZlZCBmaWxlLjwvcD4KICAgICAgICA8ZGl2PgogICAgICAgICAgICA8
+ bGFiZWwgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsiPlNlbGVjdCBU
+ R04gZmlsZSA8L2xhYmVsPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0iZmls
+ ZSIgbmFtZT0ibG9hZF90YWJsZV9maWxlIi8+CiAgICAgICAgPC9kaXY+CiAg
+ ICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWZvb3RlciI+CiAgICAg
+ ICAgPGJ1dHRvbiBjbGFzcz0iYnRuIiBkYXRhLWRpc21pc3M9Im1vZGFsIiBh
+ cmlhLWhpZGRlbj0idHJ1ZSI+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgPGlu
+ cHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkxvYWQiIGNsYXNzPSJidG4gYnRu
+ LXByaW1hcnkiPgogICAgPC9kaXY+CiAgICA8L2Zvcm0+CjwvZGl2PjwhLS0g
+ SW1wb3J0IGRpYWxvZyAtLT4KCiAgICA8ZGl2IGlkPSJxdWlja19oZWxwX2Rp
+ YWxvZyIgY2xhc3M9Im1vZGFsIGhpZGUgZmFkZSIgdGFiaW5kZXg9Ii0xIiBy
+ b2xlPSJkaWFsb2ciIAogICAgIGFyaWEtbGFiZWxsZWRieT0icXVpY2tfaGVs
+ cF9kaWFsb2dfbGFiZWwiIGFyaWEtaGlkZGVuPSJ0cnVlIj4KICAgIDxkaXYg
+ Y2xhc3M9Im1vZGFsLWhlYWRlciI+CiAgICAgICAgPGJ1dHRvbiB0eXBlPSJi
+ dXR0b24iIGNsYXNzPSJjbG9zZSIgZGF0YS1kaXNtaXNzPSJtb2RhbCIgYXJp
+ YS1oaWRkZW49InRydWUiPsOXPC9idXR0b24+CiAgICAgICAgPGgzIGlkPSJx
+ dWlja19oZWxwX2RpYWxvZ19sYWJlbCI+UXVpY2sgaGVscDwvaDM+CiAgICA8
+ L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij4KICAgICAgICA8
+ cD5CYXNpYyBrZXkgY29tbWFuZHM8L3A+CiAgICAgICAgPHVsPgogICAgICAg
+ ICAgICA8bGk+PHN0cm9uZz5FTlRFUiBvciBkb3VibGUgY2xpY2s8L3N0cm9u
+ Zz4gJm1kYXNoOyB0byBzdGFydCBlZGl0aW5nIGEgY2VsbDwvbGk+CiAgICAg
+ ICAgICAgIDxsaT48c3Ryb25nPkVTQzwvc3Ryb25nPiAmbWRhc2g7IHRvIHN0
+ b3AgZWRpdGluZyBhIGNlbGw8L2xpPgogICAgICAgICAgICA8bGk+PHN0cm9u
+ Zz5DVFJMK0MsIENUUkwrWCwgQ1RSTCtWPC9zdHJvbmc+ICZtZGFzaDsgdG8g
+ Y29weSwgY3V0CiAgICAgICAgICAgICAgICBhbmQgcGFzdGUsIHJlc3BlY3Rp
+ dmVseTwvbGk+CiAgICAgICAgICAgIDxsaT48c3Ryb25nPlRBQiBvciBBcnJv
+ dyBLZXlzPC9zdHJvbmc+ICZtZGFzaDsgdG8gc2VsZWN0IGEgZGlmZmVyZW50
+ IGNlbGw8L2xpPgogICAgICAgICAgICA8bGk+PHN0cm9uZz5DVFJMK1o8L3N0
+ cm9uZz4gJm1kYXNoOyB0byB1bmRvIGEgY2hhbmdlPC9saT4KICAgICAgICAg
+ ICAgPGxpPjxzdHJvbmc+Q1RSTCtZPC9zdHJvbmc+ICZtZGFzaDsgdG8gcmVk
+ byBhIGNoYW5nZTwvbGk+CiAgICAgICAgICAgIDxsaT48c3Ryb25nPkxlZnQg
+ bW91c2UgYnV0dG9uPC9zdHJvbmc+ICZtZGFzaDsgY2xpY2sgYSBjZWxsIHRv
+ CiAgICAgICAgICAgIHNlbGVjdCBpdCAoaG9sZCBsZWZ0IGJ1dHRvbiBwcmVz
+ c2VkIHRvIHNlbGVjdCBhZGphY2VudCBjZWxscyk8L2xpPgogICAgICAgICAg
+ ICA8bGk+PHN0cm9uZz5Ib2xkIENUUkw8L3N0cm9uZz4gdG8gc2VsZWN0IG11
+ bHRpcGxlIGNlbGxzIChub3QgbmVjZXNzYXJpbHkgYWRqYWNlbnQpLjwvbGk+
+ CiAgICAgICAgPC91bD4KCiAgICAgICAgPHA+CiAgICAgICAgU29tZSBvZiB0
+ aGUgZnVuY3Rpb25hbGl0aWVzIG1heSBub3Qgd29yayBpbiBhbGwgYnJvd3Nl
+ cnMgJm1kYXNoOyBpZiB5b3UKICAgICAgICBlbmNvdW50ZXIgYSBwcm9ibGVt
+ LCBwbGVhc2UgdHJ5IHRvIHVzZSBhbm90aGVyIGJyb3dzZXIgKEdvb2dsZSBD
+ aHJvbWUsCiAgICAgICAgTW96aWxsYSBGaXJlZm94KSBvciB1cGRhdGUgeW91
+ ciBicm93c2VyIHRvIGEgbmV3ZXIgdmVyc2lvbiBpZiBhdmFpbGFibGUuIElm
+ IHRoZSBwcm9ibGVtCiAgICAgICAgc3RpbGwgcGVyc2lzdHMgcGxlYXNlIDxh
+ IGhyZWY9Ii9jb250YWN0IiB0aXRsZT0iQ29udGFjdCB3aXRoIHVzIj5sZXQg
+ dXMga25vdzwvYT4uCiAgICAgICAgPC9wPgogICAgPC9kaXY+CgogICAgPGRp
+ diBjbGFzcz0ibW9kYWwtZm9vdGVyIj4KICAgICAgICA8YnV0dG9uIGNsYXNz
+ PSJidG4iIGRhdGEtZGlzbWlzcz0ibW9kYWwiIGFyaWEtaGlkZGVuPSJ0cnVl
+ Ij5DbG9zZTwvYnV0dG9uPgogICAgPC9kaXY+CjwvZGl2PgogICAgPGRpdiBp
+ ZD0idGFibGUtYXV4LWNvbC1tZW51IiBjbGFzcz0iY29udGV4dC1tZW51LXdy
+ YXAiPgogICAgPHVsIGNsYXNzPSJjb250ZXh0LW1lbnUiIHJvbGU9Im1lbnUi
+ PgogICAgICAgIDxsaSBkYXRhLW1lbnUtaXRlbS1pZD0iYWRkX3RvX3RoZV9s
+ ZWZ0Ij4KICAgICAgICA8YSB0YWItaW5kZXg9Ii0xIj5BZGQgY29sdW1uIHRv
+ IHRoZSBsZWZ0PC9hPgogICAgICAgIDwvbGk+CgogICAgICAgIDxsaSBkYXRh
+ LW1lbnUtaXRlbS1pZD0iYWRkX3RvX3RoZV9yaWdodCI+CiAgICAgICAgPGEg
+ dGFiLWluZGV4PSItMSI+QWRkIGNvbHVtbiB0byB0aGUgcmlnaHQ8L2E+CiAg
+ ICAgICAgPC9saT4KCiAgICAgICAgPGxpIGRhdGEtbWVudS1pdGVtLWlkPSJy
+ ZW1vdmVfY29sdW1uIj4KICAgICAgICA8YSB0YWItaW5kZXg9Ii0xIj5SZW1v
+ dmUgY29sdW1uKHMpPC9hPgogICAgICAgIDwvbGk+CgogICAgICAgIAogICAg
+ PC91bD4KPC9kaXY+Cgo8ZGl2IGlkPSJ0YWJsZS1hdXgtcm93LW1lbnUiIGNs
+ YXNzPSJjb250ZXh0LW1lbnUtd3JhcCI+CiAgICA8dWwgY2xhc3M9ImNvbnRl
+ eHQtbWVudSIgcm9sZT0ibWVudSI+CiAgICAgICAgPGxpIGRhdGEtbWVudS1p
+ dGVtLWlkPSJhZGRfcm93X2Fib3ZlIj4KICAgICAgICA8YSB0YWItaW5kZXg9
+ Ii0xIj5BZGQgcm93IGFib3ZlPC9hPgogICAgICAgIDwvbGk+CgogICAgICAg
+ IDxsaSBkYXRhLW1lbnUtaXRlbS1pZD0iYWRkX3Jvd19iZWxvdyI+CiAgICAg
+ ICAgPGEgdGFiLWluZGV4PSItMSI+QWRkIHJvdyBiZWxvdzwvYT4KICAgICAg
+ ICA8L2xpPgoKICAgICAgICA8bGkgZGF0YS1tZW51LWl0ZW0taWQ9InJlbW92
+ ZV9yb3ciPgogICAgICAgIDxhIHRhYi1pbmRleD0iLTEiPlJlbW92ZSByb3co
+ cyk8L2E+CiAgICAgICAgPC9saT4KCiAgICA8L3VsPgo8L2Rpdj4KCgo8ZGl2
+ IGlkPSJ0YWJsZS1jZWxsLW1lbnUiIGNsYXNzPSJjb250ZXh0LW1lbnUtd3Jh
+ cCI+CiAgICA8dWwgY2xhc3M9ImNvbnRleHQtbWVudSIgcm9sZT0ibWVudSI+
+ CgogICAgICAgIDxsaSBkYXRhLW1lbnUtaXRlbS1pZD0iY2VsbF9jb250ZW50
+ c19jdXQiCiAgICAgICAgICAgIGNsYXNzPSJ3aXRoLXplcm8tY2xpcGJvYXJk
+ IGNvbnRleHQtbWVudS1pdGVtIgogICAgICAgICAgICBkYXRhLWFjdGlvbi1p
+ ZD0iY2VsbF9jb250ZW50c19jdXQiPgogICAgICAgICAgICA8YSB0YWItaW5k
+ ZXg9Ii0xIj48c3BhbiBjbGFzcz0iaWNvbi1jdXQiPiZuYnNwOzwvc3Bhbj5D
+ dXQgPHNwYW4gY2xhc3M9ImNvbnRleHQtbWVudS1pdGVtX19rZXlzIj4oQ3Ry
+ bCtYKTwvc3Bhbj48L2E+CiAgICAgICAgPC9saT4KCiAgICAgICAgPGxpIGRh
+ dGEtbWVudS1pdGVtLWlkPSJjZWxsX2NvbnRlbnRzX2NvcHkiCiAgICAgICAg
+ ICAgIGNsYXNzPSJ3aXRoLXplcm8tY2xpcGJvYXJkIgogICAgICAgICAgICBk
+ YXRhLWFjdGlvbi1pZD0iY2VsbF9jb250ZW50c19jb3B5Ij4KICAgICAgICAg
+ ICAgPGEgdGFiLWluZGV4PSItMSI+PHNwYW4gY2xhc3M9Imljb24tY29weSI+
+ Jm5ic3A7PC9zcGFuPkNvcHkgPHNwYW4gY2xhc3M9ImNvbnRleHQtbWVudS1p
+ dGVtX19rZXlzIj4oQ3RybCtDKTwvc3Bhbj48L2E+CiAgICAgICAgPC9saT4K
+ CiAgICAgICAgPGxpPgogICAgICAgICAgICA8YSB0YWItaW5kZXg9Ii0xIj48
+ c3BhbiBjbGFzcz0iaWNvbi1wYXN0ZSI+Jm5ic3A7PC9zcGFuPlByZXNzIEN0
+ cmwrViB0byBwYXN0ZTwvc3Bhbj48L2E+CiAgICAgICAgPC9saT4KCiAgICAg
+ ICAgPGxpIGNsYXNzPSJkaXZpZGVyIj48L2xpPgoKICAgICAgICA8bGkgY2xh
+ c3M9ImRyb3Bkb3duLXN1Ym1lbnUiPgogICAgICAgICAgICA8YSB0YWJpbmRl
+ eD0iLTEiIGhyZWY9IiMiPlJvdzwvYT4KICAgICAgICAgICAgPHVsIGNsYXNz
+ PSJkcm9wZG93bi1tZW51Ij4KICAgICAgICAgICAgICAgIDxsaSBkYXRhLW1l
+ bnUtaXRlbS1pZD0iYWRkX3Jvd19hYm92ZSI+CiAgICAgICAgICAgICAgICAg
+ ICAgPGEgdGFiLWluZGV4PSItMSI+QWRkIHJvdyBhYm92ZTwvYT4KICAgICAg
+ ICAgICAgICAgIDwvbGk+CgogICAgICAgICAgICAgICAgPGxpIGRhdGEtbWVu
+ dS1pdGVtLWlkPSJhZGRfcm93X2JlbG93Ij4KICAgICAgICAgICAgICAgICAg
+ ICA8YSB0YWItaW5kZXg9Ii0xIj5BZGQgcm93IGJlbG93PC9hPgogICAgICAg
+ ICAgICAgICAgPC9saT4KCiAgICAgICAgICAgICAgICA8bGkgZGF0YS1tZW51
+ LWl0ZW0taWQ9InJlbW92ZV9yb3ciPgogICAgICAgICAgICAgICAgICAgIDxh
+ IHRhYi1pbmRleD0iLTEiPlJlbW92ZSByb3cocyk8L2E+CiAgICAgICAgICAg
+ ICAgICA8L2xpPgoKICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPgoK
+ ICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duLXN1Ym1lbnUiPgogICAgICAg
+ ICAgICA8YSB0YWJpbmRleD0iLTEiIGhyZWY9IiMiPkNvbHVtbjwvYT4KICAg
+ ICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51IiByb2xlPSJtZW51
+ Ij4KICAgICAgICAgICAgICAgIDxsaSBkYXRhLW1lbnUtaXRlbS1pZD0iYWRk
+ X3RvX3RoZV9sZWZ0Ij4KICAgICAgICAgICAgICAgIDxhIHRhYi1pbmRleD0i
+ LTEiPkFkZCBjb2x1bW4gdG8gdGhlIGxlZnQ8L2E+CiAgICAgICAgICAgICAg
+ ICA8L2xpPgoKICAgICAgICAgICAgICAgIDxsaSBkYXRhLW1lbnUtaXRlbS1p
+ ZD0iYWRkX3RvX3RoZV9yaWdodCI+CiAgICAgICAgICAgICAgICA8YSB0YWIt
+ aW5kZXg9Ii0xIj5BZGQgY29sdW1uIHRvIHRoZSByaWdodDwvYT4KICAgICAg
+ ICAgICAgICAgIDwvbGk+CgogICAgICAgICAgICAgICAgPGxpIGRhdGEtbWVu
+ dS1pdGVtLWlkPSJyZW1vdmVfY29sdW1uIj4KICAgICAgICAgICAgICAgIDxh
+ IHRhYi1pbmRleD0iLTEiPlJlbW92ZSBjb2x1bW4ocyk8L2E+CiAgICAgICAg
+ ICAgICAgICA8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgPC9saT4K
+ CiAgICAgICAgPGxpIGNsYXNzPSJkaXZpZGVyIj48L2xpPgoKICAgICAgICA8
+ bGkgY2xhc3M9ImRyb3Bkb3duLXN1Ym1lbnUiPgogICAgICAgICAgICA8YSB0
+ YWJpbmRleD0iLTEiIGhyZWY9IiMiPlRleHQgYWxpZ248L2E+CiAgICAgICAg
+ ICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSIgcm9sZT0ibWVudSI+CiAg
+ ICAgICAgICAgICAgICA8bGkgZGF0YS1tZW51LWl0ZW0taWQ9ImNlbGxfYWxp
+ Z25fbGVmdCI+CiAgICAgICAgICAgICAgICA8YSB0YWItaW5kZXg9Ii0xIj4K
+ ICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51LWl0ZW0taWNv
+ bi1hbGlnbi1sZWZ0Ij4mbmJzcDs8L3NwYW4+CiAgICAgICAgICAgICAgICAg
+ ICAgTGVmdDwvYT4KICAgICAgICAgICAgICAgIDwvbGk+CgogICAgICAgICAg
+ ICAgICAgPGxpIGRhdGEtbWVudS1pdGVtLWlkPSJjZWxsX2FsaWduX2NlbnRl
+ ciI+CiAgICAgICAgICAgICAgICA8YSB0YWItaW5kZXg9Ii0xIj4KICAgICAg
+ ICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51LWl0ZW0taWNvbi1hbGln
+ bi1jZW50ZXIiPiZuYnNwOzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICBD
+ ZW50ZXI8L2E+CiAgICAgICAgICAgICAgICA8L2xpPgoKICAgICAgICAgICAg
+ ICAgIDxsaSBkYXRhLW1lbnUtaXRlbS1pZD0iY2VsbF9hbGlnbl9yaWdodCI+
+ CiAgICAgICAgICAgICAgICA8YSB0YWItaW5kZXg9Ii0xIj4KICAgICAgICAg
+ ICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZW51LWl0ZW0taWNvbi1hbGlnbi1y
+ aWdodCI+Jm5ic3A7PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIFJpZ2h0
+ PC9hPgogICAgICAgICAgICAgICAgPC9saT4KCiAgICAgICAgICAgICAgICA8
+ bGkgZGF0YS1tZW51LWl0ZW0taWQ9ImNlbGxfYWxpZ25fdG9wIgogICAgICAg
+ ICAgICAgICAgICAgIHN0eWxlPSJib3JkZXItdG9wOiAxcHggbGlnaHRncmF5
+ IHNvbGlkOyI+CiAgICAgICAgICAgICAgICA8YSB0YWItaW5kZXg9Ii0xIgog
+ ICAgICAgICAgICAgICAgICAgdGl0bGU9IkFsaWduIHRvIHRoZSB0b3AgKHZl
+ cnRpY2FsbHkpIj4KICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJt
+ ZW51LWl0ZW0taWNvbi1hbGlnbi10b3AiPiZuYnNwOzwvc3Bhbj4KICAgICAg
+ ICAgICAgICAgICAgIFRvcDwvYT4KICAgICAgICAgICAgICAgIDwvbGk+Cgog
+ ICAgICAgICAgICAgICAgPGxpIGRhdGEtbWVudS1pdGVtLWlkPSJjZWxsX2Fs
+ aWduX21pZGRsZSI+CiAgICAgICAgICAgICAgICA8YSB0YWItaW5kZXg9Ii0x
+ IgogICAgICAgICAgICAgICAgICAgdGl0bGU9IkFsaWduIHRvIHRoZSBtaWRk
+ bGUgKHZlcnRpY2FsbHkpIj4KICAgICAgICAgICAgICAgICAgIDxzcGFuIGNs
+ YXNzPSJtZW51LWl0ZW0taWNvbi1hbGlnbi1taWRkbGUiPiZuYnNwOzwvc3Bh
+ bj4KICAgICAgICAgICAgICAgICAgIE1pZGRsZTwvYT4KICAgICAgICAgICAg
+ ICAgIDwvbGk+CgogICAgICAgICAgICAgICAgPGxpIGRhdGEtbWVudS1pdGVt
+ LWlkPSJjZWxsX2FsaWduX2JvdHRvbSI+CiAgICAgICAgICAgICAgICA8YSB0
+ YWItaW5kZXg9Ii0xIgogICAgICAgICAgICAgICAgICAgdGl0bGU9IkFsaWdu
+ IHRvIHRoZSBib3R0b20gKHZlcnRpY2FsbHkpIj4KICAgICAgICAgICAgICAg
+ ICAgIDxzcGFuIGNsYXNzPSJtZW51LWl0ZW0taWNvbi1hbGlnbi1ib3R0b20i
+ PiZuYnNwOzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgIEJvdHRvbTwvYT4K
+ ICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAg
+ ICA8L2xpPgoKICAgIDwvdWw+CjwvZGl2PgoKCiAgICA8ZGl2IGlkPSJjb2x1
+ bW5fd2lkdGhfZGlhbG9nIiBjbGFzcz0ibW9kYWwgaGlkZSBmYWRlIiB0YWJp
+ bmRleD0iLTEiIHJvbGU9ImRpYWxvZyIgIGFyaWEtaGlkZGVuPSJ0cnVlIj4K
+ ICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+CiAgICAgICAgPGJ1dHRv
+ biB0eXBlPSJidXR0b24iIGNsYXNzPSJjbG9zZSIgZGF0YS1kaXNtaXNzPSJt
+ b2RhbCIgYXJpYS1oaWRkZW49InRydWUiPsOXPC9idXR0b24+CiAgICAgICAg
+ PGgzIGlkPSJteU1vZGFsTGFiZWwiPlNldCBjb2x1bW4gd2lkdGg8L2gzPgog
+ ICAgPC9kaXY+CgogICAgPGZvcm0gY2xhc3M9ImZvcm0taG9yaXpvbnRhbCI+
+ CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+CiAgICAgICAgICA8
+ ZGl2IGNsYXNzPSJjb250cm9sLWdyb3VwIj4KICAgICAgICAgICAgPGxhYmVs
+ IGNsYXNzPSJjb250cm9sLWxhYmVsIiBmb3I9ImNvbHVtbl93aWR0aF9pbnB1
+ dCI+V2lkdGg8L2xhYmVsPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250
+ cm9scyI+CiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgbWlu
+ PSIxIiBtYXg9IjI1NjAiIAogICAgICAgICAgICAgICAgICAgICBpZD0iY29s
+ dW1uX3dpZHRoX2lucHV0IiAKICAgICAgICAgICAgICAgICAgICAgdmFsdWU9
+ IjMiPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJoZWxwLWlubGluZSI+
+ cHg8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+
+ CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtZm9v
+ dGVyIj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIiBkYXRhLWRp
+ c21pc3M9Im1vZGFsIiBhcmlhLWhpZGRlbj0idHJ1ZSI+Q2FuY2VsPC9idXR0
+ b24+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIGlkPSJzZXRf
+ Y29sdW1uX3dpZHRoX2J0biIgdmFsdWU9Ik9LIiBjbGFzcz0iYnRuIGJ0bi1w
+ cmltYXJ5Ij4KICAgICAgICA8L2Rpdj4KICAgIDwvZm9ybT4KPC9kaXY+CiAg
+ ICA8ZGl2IGlkPSJkcm9wYm94X3NhdmVfdGFibGVfZGlhbG9nIiBjbGFzcz0i
+ bW9kYWwgaGlkZSBmYWRlIiB0YWJpbmRleD0iLTEiIHJvbGU9ImRpYWxvZyIg
+ YXJpYS1sYWJlbGxlZGJ5PSJteU1vZGFsTGFiZWwiIGFyaWEtaGlkZGVuPSJ0
+ cnVlIj4KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+CiAgICAgICAg
+ PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjbG9zZSIgZGF0YS1kaXNt
+ aXNzPSJtb2RhbCIgYXJpYS1oaWRkZW49InRydWUiPsOXPC9idXR0b24+CiAg
+ ICAgICAgPGgzIGlkPSJteU1vZGFsTGFiZWwiPlNhdmUgdGFibGUgdG8geW91
+ ciBEcm9wYm94IGFjY291bnQ8L2gzPgogICAgPC9kaXY+CgogICAgPGRpdiBj
+ bGFzcz0ibW9kYWwtYm9keSI+CiAgICAgICAgPHA+CiAgICAgICAgWW91ciB0
+ YWJsZSB3aWxsIGJlIHNhdmVkIHVzaW5nIHlvdXIgRHJvcGJveCBhY2NvdW50
+ LgogICAgICAgIFBsZWFzZSBlbnRlciBhIG5hbWUgZm9yIHRoZSB0YWJsZS4K
+ ICAgICAgICBZb3UgY2FuIGxvYWQgbGF0ZXIgeW91ciBzYXZlZCB0YWJsZXMg
+ dXNpbmcgIkZpbGUvRHJvcGJveC9Mb2FkIHRhYmxlIiBtZW51IGl0ZW0uCiAg
+ ICAgICAgPC9wPgoKICAgICAgICA8Zm9ybSBpZD0iZHJvcGJveC10YWJsZS1z
+ YXZlLWZvcm0iIGFjY2VwdC1jaGFyc2V0PSJ1dGYtOCIgY2xhc3M9ImZvcm0t
+ aG9yaXpvbnRhbCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250cm9sLWdy
+ b3VwIj4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJjb250cm9sLWxhYmVs
+ IiBmb3I9InRhYmxlLW5hbWUiPlRhYmxlIG5hbWU8L2xhYmVsPgogICAgICAg
+ ICAgICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgICAgICAgPGlu
+ cHV0IHR5cGU9InRleHQiIGlkPSJkcm9wYm94X3RhYmxlX25hbWUiIAogICAg
+ ICAgICAgICAgICAgICAgICBuYW1lPSJkcm9wYm94X3RhYmxlX25hbWUiIHBs
+ YWNlaG9sZGVyPSJFbnRlciBuYW1lLi4uIj4KICAgICAgICAgICAgPC9kaXY+
+ CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Zvcm0+CgogICAgICAgIDxw
+ PgogICAgICAgIDwvcD4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im1v
+ ZGFsLWZvb3RlciI+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIiBkYXRh
+ LWRpc21pc3M9Im1vZGFsIiBhcmlhLWhpZGRlbj0idHJ1ZSI+Q2FuY2VsPC9i
+ dXR0b24+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5
+ IiAKICAgICAgICAgICAgaWQ9ImRyb3Bib3hfdGFibGVfc2F2ZSI+PGRpdiBj
+ bGFzcz0ic3Bpbi1idXR0b24iPjwvZGl2PjxzcGFuPlNhdmU8L3NwYW4+PC9i
+ dXR0b24+CiAgICA8L2Rpdj4KPC9kaXY+CiAgICA8ZGl2IGlkPSJkcm9wYm94
+ X2xvYWRfdGFibGVfZGlhbG9nIiAKICAgICBjbGFzcz0ibW9kYWwgaGlkZSBm
+ YWRlIiAKICAgICB0YWJpbmRleD0iLTEiIHJvbGU9ImRpYWxvZyIKICAgICBh
+ cmlhLWxhYmVsbGVkYnk9ImRyb3Bib3hfbG9hZF90YWJsZV9kaWFsb2dfbGFi
+ ZWwiIAogICAgIGFyaWEtaGlkZGVuPSJ0cnVlIj4KICAgIDxkaXYgY2xhc3M9
+ Im1vZGFsLWhlYWRlciI+CiAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24i
+ IGNsYXNzPSJjbG9zZSIgZGF0YS1kaXNtaXNzPSJtb2RhbCIgYXJpYS1oaWRk
+ ZW49InRydWUiPsOXPC9idXR0b24+CiAgICAgICAgPGgzIGlkPSJkcm9wYm94
+ X2xvYWRfdGFibGVfZGlhbG9nX2xhYmVsIj5Mb2FkIHRhYmxlIGZyb20gRHJv
+ cGJveC4uLjwvaDM+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9Im1vZGFs
+ LWJvZHkiPgogICAgICAgIDxwPlNlbGVjdCBhIHRhYmxlIHRvIGxvYWQuPC9w
+ PgogICAgICAgIDxkaXYgaWQ9ImRyb3Bib3hfdGFibGVzX2xpc3QiPjwvZGl2
+ PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPgog
+ ICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biIgZGF0YS1kaXNtaXNzPSJtb2Rh
+ bCIgYXJpYS1oaWRkZW49InRydWUiPkNhbmNlbDwvYnV0dG9uPgogICAgPC9k
+ aXY+CjwvZGl2PgoKCiAgICAKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
+ cHQiIGNoYXJzZXQ9InV0Zi04Ij4KJChkb2N1bWVudCkucmVhZHkoIGZ1bmN0
+ aW9uKCkgewogICAgY29uc3QganNvbl90YWJsZSA9ICcnOwogICAgY29uc3Qg
+ bG9hZGVkX3RhYmxlID0gJyc7CiAgICBtYXJrZG93bl90YWJsZXNfdWkoanNv
+ bl90YWJsZSwgbG9hZGVkX3RhYmxlKTsKfSkKPC9zY3JpcHQ+CgoKICAgIAoK
+ CgoKCgoKPHNjcmlwdCBhc3luYyBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZXRh
+ Z21hbmFnZXIuY29tL2d0YWcvanM/aWQ9VUEtNDA2NjY2MDAtMSI+PC9zY3Jp
+ cHQ+CjxzY3JpcHQ+CiAgICB3aW5kb3cuZGF0YUxheWVyID0gd2luZG93LmRh
+ dGFMYXllciB8fCBbXTsKICAgIGZ1bmN0aW9uIGd0YWcoKSB7IGRhdGFMYXll
+ ci5wdXNoKGFyZ3VtZW50cyk7IH0KCiAgICBndGFnKCdjb25zZW50JywgJ2Rl
+ ZmF1bHQnLCB7CiAgICAgICAgICdhbmFseXRpY3Nfc3RvcmFnZSc6ICdkZW5p
+ ZWQnLAogICAgICAgICAnYWRfc3RvcmFnZSc6ICdkZW5pZWQnLAogICAgICAg
+ ICAnd2FpdF9mb3JfdXBkYXRlJzogMTAwCiAgICB9KTsKICAgIGd0YWcoJ3Nl
+ dCcsICdhZHNfZGF0YV9yZWRhY3Rpb24nLCB0cnVlKTsKICAgIGd0YWcoJ2pz
+ JywgbmV3IERhdGUoKSk7CiAgICBndGFnKCdjb25maWcnLCAnVUEtNDA2NjY2
+ MDAtMScpOwogICAgZ3RhZygnY29uZmlnJywgJ2NhLXB1Yi0yODY1NTgxNjc2
+ MjU2ODY4Jyk7Cjwvc2NyaXB0PgoKCgoKPHNjcmlwdCBhc3luYyBzcmM9Imh0
+ dHBzOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL2pz
+ L2Fkc2J5Z29vZ2xlLmpzP2NsaWVudD1jYS1wdWItMjg2NTU4MTY3NjI1Njg2
+ OCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+CgoKCjxzY3Jp
+ cHQ+KGFkc2J5Z29vZ2xlPXdpbmRvdy5hZHNieWdvb2dsZXx8W10pLnBhdXNl
+ QWRSZXF1ZXN0cz0xOzwvc2NyaXB0PgoKCgo8c2NyaXB0Pgp3aW5kb3cuYWRk
+ RXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKGV2
+ ZW50KSB7CiAgICBmdW5jdGlvbiB1cGRhdGVfY29uc2VudChjYXRzKSB7CiAg
+ ICAgICAgZnVuY3Rpb24gaXNfZ3JhbnRlZChjYXQpIHsgcmV0dXJuIChjYXRz
+ LmluZGV4T2YoY2F0KSAhPT0gLTEpOyB9CgogICAgICAgIGlmIChpc19ncmFu
+ dGVkKCdhbmFseXRpY3MnKSkgewogICAgICAgICAgICBndGFnKCdjb25zZW50
+ JywgJ3VwZGF0ZScsIHsgJ2FuYWx5dGljc19zdG9yYWdlJzogJ2dyYW50ZWQn
+ IH0pOwogICAgICAgIH0KICAgICAgICBpZiAoaXNfZ3JhbnRlZCgndGFyZ2V0
+ aW5nJykpIHsKICAgICAgICAgICAgZ3RhZygnY29uc2VudCcsICd1cGRhdGUn
+ LCB7ICdhZF9zdG9yYWdlJzogJ2dyYW50ZWQnIH0pOwogICAgICAgIH0KICAg
+ ICAgICBpZiAoaXNfZ3JhbnRlZCgndGFyZ2V0aW5nJykgfHwgaXNfZ3JhbnRl
+ ZCgnYWRkaXRpb25hbCcpKSB7CiAgICAgICAgICAgIChhZHNieWdvb2dsZT13
+ aW5kb3cuYWRzYnlnb29nbGV8fFtdKS5wYXVzZUFkUmVxdWVzdHM9MDsKICAg
+ ICAgICB9CiAgICB9CiAgICBDb29raWVDb25zZW50LmluaXQoJ0pQJywgJzAx
+ JywgdXBkYXRlX2NvbnNlbnQpOwp9KTsKPC9zY3JpcHQ+CgoKCiAgPC9ib2R5
+ Pgo8L2h0bWw+
+ recorded_at: Mon, 31 Jan 2022 09:42:22 GMT
+recorded_with: VCR 6.0.0
diff --git a/test/fixtures/articles.yml b/test/fixtures/articles.yml
index 85673b7a8f1..3c73b988863 100644
--- a/test/fixtures/articles.yml
+++ b/test/fixtures/articles.yml
@@ -2,8 +2,25 @@ article1:
title: タイトル1
body: 本文1
user: komagata
+ wip: false
+ published_at: "2022-01-01 00:00:00"
article2:
title: タイトル2
body: 本文2
user: machida
+ wip: false
+ published_at: "2022-01-02 00:00:00"
+
+article3:
+ title: タイトル3
+ body: 本文3
+ user: komagata
+ wip: true
+
+# published_at=nilかつwip=false
+article4:
+ title: タイトル4
+ body: 本文4
+ user: komagata
+ wip: false
diff --git a/test/fixtures/campaigns.yml b/test/fixtures/campaigns.yml
new file mode 100644
index 00000000000..0a090df3a6d
--- /dev/null
+++ b/test/fixtures/campaigns.yml
@@ -0,0 +1,11 @@
+# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
+
+campaign1:
+ start_at: <%= Time.current %>
+ end_at: <%= Time.current + 3.days %>
+ title: 'GW特別キャンペーン'
+
+campaign2:
+ start_at: <%= Time.current - 1.months %>
+ end_at: <%= Time.current - 1.months + 7.days %>
+ title: 'GWスペシャルキャンペーン'
diff --git a/test/fixtures/comments.yml b/test/fixtures/comments.yml
index 9622744da7c..a0035706c5f 100644
--- a/test/fixtures/comments.yml
+++ b/test/fixtures/comments.yml
@@ -61,29 +61,29 @@ comment9:
description: "@sotugyou 🎉🎉🎉🎉"
comment10:
- user: yamada
+ user: mentormentaro
commentable: product1 (Product)
description: "提出物へのコメント"
comment11:
- user: yamada
+ user: mentormentaro
commentable: report1 (Report)
description: "テスト用 report1へのコメント"
created_at: <%= now + 2.seconds %>
updated_at: <%= now + 2.seconds %>
comment12:
- user: yamada
+ user: mentormentaro
commentable: announcement1 (Announcement)
description: "テスト用 announcement1へのコメント"
comment13:
- user: yamada
+ user: mentormentaro
commentable: product1 (Product)
description: "テスト用 product1へのコメント"
comment14:
- user: yamada
+ user: mentormentaro
commentable: product3 (Product)
description: "テスト用 product3へのコメント"
@@ -94,7 +94,7 @@ comment15:
created_at: "2019-01-02 12:00:01"
comment16:
- user: yamada
+ user: mentormentaro
commentable: event1 (Event)
description: "テスト用 event1へのコメント"
@@ -109,7 +109,7 @@ comment18:
description: "@kimura 1つ目のメンションありの未読通知を発生させる"
comment19:
- user: yamada
+ user: mentormentaro
commentable: report7 (Report)
description: "@kimura 2つ目のメンションありの未読通知を発生させる"
diff --git a/test/fixtures/files/practices/ogp_images/1.jpg b/test/fixtures/files/practices/ogp_images/1.jpg
new file mode 100644
index 00000000000..ee2f8a23192
Binary files /dev/null and b/test/fixtures/files/practices/ogp_images/1.jpg differ
diff --git a/test/fixtures/files/users/avatars/yamada.jpg b/test/fixtures/files/users/avatars/mentormentaro.jpg
similarity index 100%
rename from test/fixtures/files/users/avatars/yamada.jpg
rename to test/fixtures/files/users/avatars/mentormentaro.jpg
diff --git a/test/fixtures/learnings.yml b/test/fixtures/learnings.yml
index aac7551fd0e..c28a6875ef5 100644
--- a/test/fixtures/learnings.yml
+++ b/test/fixtures/learnings.yml
@@ -1,43 +1,51 @@
-<% today = Time.zone.today %>
+<% today = Time.current %>
learning1:
user: komagata
practice: practice1
status: "started"
+ completion_message_displayed: false
learning2:
user: komagata
practice: practice2
status: "complete"
+ completion_message_displayed: true
learning3:
user: komagata
practice: practice3
status: "unstarted"
+ completion_message_displayed: false
learning4:
user: machida
practice: practice2
status: "complete"
+ completion_message_displayed: true
learning5:
user: sotugyou
practice: practice2
status: "complete"
+ completion_message_displayed: true
learning6:
user: kimura
practice: practice1
status: "complete"
+ completion_message_displayed: true
learning7:
user: komagata
practice: practice4
status: "submitted"
+ completion_message_displayed: false
learning8:
user: machida
practice: practice5
status: "complete"
+ completion_message_displayed: true
created_at: "2020-04-12 14:05:53.782503"
updated_at: "2020-04-12 14:05:53.782503"
@@ -45,6 +53,7 @@ learning9:
user: machida
practice: practice6
status: "complete"
+ completion_message_displayed: true
created_at: "2020-04-10 14:05:53.782503"
updated_at: "2020-04-10 14:05:53.782503"
@@ -52,6 +61,7 @@ learning10:
user: machida
practice: practice7
status: "complete"
+ completion_message_displayed: true
created_at: "2020-04-19 14:05:53.782503"
updated_at: "2020-04-19 14:05:53.782503"
@@ -59,6 +69,7 @@ learning11:
user: machida
practice: practice8
status: "complete"
+ completion_message_displayed: true
created_at: "2020-04-22 14:05:53.782503"
updated_at: "2020-04-22 14:05:53.782503"
@@ -66,24 +77,40 @@ learning12:
user: hajime
practice: practice1
status: "started"
+ completion_message_displayed: false
learning13:
user: kananashi
practice: practice3
status: "started"
+ completion_message_displayed: false
learning14:
user: hajime
practice: practice27
status: "complete"
+ completion_message_displayed: true
learning15:
user: hajime
practice: practice48
status: "complete"
+ completion_message_displayed: true
+
+learning16:
+ user: kimura
+ practice: practice6
+ status: "complete"
+ completion_message_displayed: false
+
+learning17:
+ user: sotugyou
+ practice: practice3
+ status: "submitted"
+ completion_message_displayed: false
<% (0..1).each do |i| %>
-learning<%= i + 16 %>:
+learning<%= i + 18 %>:
user: <%= [:jobseeker, :muryou][i] %>
practice: practice1
status: "complete"
diff --git a/test/fixtures/notifications.yml b/test/fixtures/notifications.yml
index c9c43b8abdf..8845f44379c 100644
--- a/test/fixtures/notifications.yml
+++ b/test/fixtures/notifications.yml
@@ -41,8 +41,8 @@ notification_mentioned_and_unread_1:
notification_mentioned_and_unread_2:
kind: 2
user: kimura
- sender: yamada
- message: yamadaさんからメンションがきました。
+ sender: mentormentaro
+ message: mentormentaroさんからメンションがきました。
link: "/reports/<%= ActiveRecord::FixtureSet.identify(:report8) %>#comment_<%= ActiveRecord::FixtureSet.identify(:comment19)%>"
read: false
diff --git a/test/fixtures/pages.yml b/test/fixtures/pages.yml
index 8a08d5ffa79..f6e774d25eb 100644
--- a/test/fixtures/pages.yml
+++ b/test/fixtures/pages.yml
@@ -21,6 +21,7 @@ page3:
## 存在しないDocsページ遷移テスト
[存在しないページ](http://example.com/xxxxx)
user: komagata
+ published_at: "2020-01-01 00:00:00"
page4:
title: Bootcampの作業のページ
@@ -28,6 +29,7 @@ page4:
## テスト
テスト
user: komagata
+ published_at: "2020-01-01 00:00:00"
page5:
title: WIPのテスト
@@ -38,6 +40,7 @@ page6:
title: Docsの検索結果テスト用
body: Docsの検索結果テスト用
user: komagata
+ published_at: "2020-01-01 00:00:00"
page7:
title: プラクティスに紐付いたDocs
@@ -45,3 +48,24 @@ page7:
user: komagata
practice: practice1
published_at: "2021-10-01 00:00:00"
+
+page8:
+ title: apt
+ body: |-
+ aptとはdebianでソフトウェアをネットワークからインストールするコマンドです。
+
+ [TEST](/test)(/test2)
+
+ [missing](test)
+
+ - 参考
+ - [APT - Wikipedia](http://ja.wikipedia.org/wiki/APT)
+
+ ## Q&A
+
+ - Q. `$ apt-cache search vim` の検索結果が多すぎる
+ - A. [正規表現](https://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE) を使う。
+ - 完全一致: `$ apt-cache search ^vim$`
+ - 前方一致: `$ apt-cache search ^vim`
+ user: komagata
+ published_at: "2022-01-01 00:00:00"
diff --git a/test/fixtures/products.yml b/test/fixtures/products.yml
index 56d7e60c9ed..86e7a0d2034 100644
--- a/test/fixtures/products.yml
+++ b/test/fixtures/products.yml
@@ -1,6 +1,6 @@
product1: # 自分のコメントあり(2つ)
practice: practice1
- user: yamada
+ user: mentormentaro
body: テストの提出物1です。
checker_id: nil
@@ -23,7 +23,7 @@ product3: # チェック済, 他者のコメントあり
product4: # チェック済
practice: practice2
- user: yamada
+ user: mentormentaro
body: テストの提出物4です。
created_at: <%= 3.day.ago %>
updated_at: <%= 3.day.ago %>
@@ -48,7 +48,7 @@ product6:
product7: # チェック済
practice: practice3
- user: yamada
+ user: mentormentaro
body: テストの提出物7です。
created_at: <%= 6.day.ago %>
updated_at: <%= 6.day.ago %>
@@ -64,7 +64,7 @@ product8:
product9: # チェック済
practice: practice4
- user: yamada
+ user: mentormentaro
body: テストの提出物9です。
created_at: <%= 8.day.ago %>
updated_at: <%= 8.day.ago %>
@@ -88,7 +88,7 @@ product11:
product12:
practice: practice5
- user: yamada
+ user: mentormentaro
body: リアクションテスト
created_at: <%= 11.day.ago %>
updated_at: <%= 11.day.ago %>
@@ -117,6 +117,7 @@ product15:
created_at: <%= 6.day.ago %>
updated_at: <%= 6.day.ago %>
published_at: <%= 6.day.ago %>
+ checker_id: "<%= ActiveRecord::FixtureSet.identify(:machida) %>"
product16:
practice: practice2
@@ -348,7 +349,7 @@ product60:
product61:
practice: practice46
- user: yamada
+ user: mentormentaro
body: 提出物の検索結果テスト用
product62:
@@ -370,3 +371,8 @@ product64:
user: kimura
body: 担当者のいる提出物です。
checker_id: "<%= ActiveRecord::FixtureSet.identify(:machida) %>"
+
+product65:
+ practice: practice6
+ user: kimura
+ body: プラクティス完了メッセージ未表示の提出物です。
diff --git a/test/fixtures/reports.yml b/test/fixtures/reports.yml
index 6cb563d463f..a403a0e2c6e 100644
--- a/test/fixtures/reports.yml
+++ b/test/fixtures/reports.yml
@@ -55,7 +55,7 @@ report7:
reported_on: "2017-01-03"
report8:
- user: yamada
+ user: mentormentaro
title: テストの日報
description: |-
いろいろやりました。
@@ -93,27 +93,30 @@ sotugyou:
reported_on: "2018-02-01"
report12:
- user: yamada
+ user: mentormentaro
title: 検索結果確認用-C
description:
今年で150歳でーす
reported_on: "2020-01-01"
+ updated_at: "2020-01-01 00:00:00"
created_at: "2020-01-01 00:00:00"
report13:
- user: yamada
+ user: mentormentaro
title: 検索結果確認用-A
description:
きたるべき20世紀
reported_on: "1900-01-01"
+ updated_at: "1900-01-01 00:00:00"
created_at: "1900-01-01 00:00:00"
report14:
- user: yamada
+ user: mentormentaro
title: 検索結果確認用-B
description:
あれから100年か
reported_on: "2000-01-01"
+ updated_at: "2000-01-01 00:00:00"
created_at: "2000-01-01 00:00:00"
report15:
@@ -133,10 +136,10 @@ report16:
reported_on: <%= Time.now - 2.day %>
report17:
- user: yamada
+ user: mentormentaro
title: 1時間だけ学習
description: |-
- yamadaです、メンターです。
+ mentormentaroです、メンターです。
今日は1時間学習しました。
practices: practice1
reported_on: "2020-06-01"
diff --git a/test/fixtures/talks.yml b/test/fixtures/talks.yml
index 11aa4c1f3ba..80deb87edc5 100644
--- a/test/fixtures/talks.yml
+++ b/test/fixtures/talks.yml
@@ -19,7 +19,7 @@ talk5:
unreplied: false
talk6:
- user: yamada
+ user: mentormentaro
unreplied: false
talk7:
@@ -76,3 +76,11 @@ talk19:
talk20:
user: adminonly
unreplied: false
+
+talk21:
+ user: otameshi
+ unreplied: false
+
+talk22:
+ user: sotugyou_with_job
+ unreplied: false
diff --git a/test/fixtures/users.yml b/test/fixtures/users.yml
index 026e36142cc..58e76e11c56 100644
--- a/test/fixtures/users.yml
+++ b/test/fixtures/users.yml
@@ -72,6 +72,28 @@ adminonly: # adminのroleだけを持ったユーザー
updated_at: "2021-02-01 00:00:30"
created_at: "2021-02-01 00:00:30"
+sotugyou_with_job:
+ login_name: sotugyou-with-job
+ email: sotugyouwithjob@example.com
+ crypted_password: $2a$10$n/xv4/1luueN6plzm2OyDezWlZFyGHjQEf4hwAW1r3k.lCm0frPK. # testtest
+ salt: zW3kQ9ubsxQQtzzzs4ap
+ name: 卒業 就職済美
+ name_kana: ソツギョウ シュウショクズミ
+ twitter_account: sotugyou_with_job
+ facebook_url: http://www.facebook.com/sotugyou_with_job
+ blog_url: http://sotugyou_with_job.example.com/
+ description: "卒業です。卒業しちゃいました。就職は希望していません。"
+ course: course1
+ job: office_worker
+ os: mac
+ experience: rails
+ job_seeker: false
+ organization: 株式会社卒業
+ graduated_on: "2015-01-01"
+ unsubscribe_email_token: YnhyqxqalslEkTCM2jyVwj
+ updated_at: "2014-01-01 00:00:03"
+ created_at: "2014-01-01 00:00:03"
+
sotugyou:
login_name: sotugyou
email: sotugyou@example.com
@@ -84,11 +106,9 @@ sotugyou:
blog_url: http://sotugyou.example.com/
description: "卒業です。卒業しちゃいました。"
course: course1
- job: office_worker
os: mac
experience: rails
job_seeker: true
- organization: 株式会社卒業
graduated_on: "2015-01-01"
unsubscribe_email_token: YnhyqxqalslEkTCM2jyVwg
updated_at: "2014-01-01 00:00:03"
@@ -135,22 +155,22 @@ yameo:
updated_at: "2014-01-01 00:00:05"
created_at: "2014-01-01 00:00:05"
-yamada:
- login_name: yamada
- email: yamada@fjord.jp
+mentormentaro:
+ login_name: mentormentaro
+ email: mentormentaro@fjord.jp
crypted_password: $2a$10$n/xv4/1luueN6plzm2OyDezWlZFyGHjQEf4hwAW1r3k.lCm0frPK. # testtest
salt: zW3kQ9ubsxQQtzzzs4ap
- name: Yamada Taro
- name_kana: ヤマダ タロウ
- twitter_account: yamada
- facebook_url: http://www.facebook.com/yamada
- blog_url: http://yamada.com
- description: "山田です。メンターです。"
+ name: メンタ 麺太郎
+ name_kana: メンタ メンタロウ
+ twitter_account: mentormentaro
+ facebook_url: http://www.facebook.com/mentormentaro
+ blog_url: http://mentormentaro.com
+ description: "メンタ麺太郎です。メンターです。"
course: course1
job: office_worker
os: mac
experience: inexperienced
- organization: 木村大学
+ organization: メンター大学
mentor: true
unsubscribe_email_token: -PmtH0Rmh36FIPhbxzkMGA
updated_at: "2014-01-01 00:00:06"
@@ -497,3 +517,24 @@ taikai3: # 退会3ヶ月後のユーザー
unsubscribe_email_token: Vb3zzFj5oO4zcwOURn14qW
updated_at: "2021-12-10 00:00:11"
created_at: "2021-12-10 00:00:11"
+
+otameshi:
+ login_name: otameshi
+ email: otameshi@fjord.jp
+ crypted_password: $2a$10$n/xv4/1luueN6plzm2OyDezWlZFyGHjQEf4hwAW1r3k.lCm0frPK. # testtest
+ salt: zW3kQ9ubsxQQtzzzs4ap
+ name: お試し 延長
+ name_kana: オタメシ エンチョウ
+ github_account: otameshi
+ discord_account: otameshi#1234
+ twitter_account: otameshi
+ facebook_url: http://www.facebook.com/otameshi
+ blog_url: http://otameshi.org
+ description: "testユーザーです。お試し延長期間テスト用。"
+ course: course1
+ job: student
+ os: mac
+ experience: ruby
+ unsubscribe_email_token: iIT7nlauOm7TOhQFoLs3UA
+ updated_at: <%= Time.current %>
+ created_at: <%= Time.current %>
diff --git a/test/integration/api/checks_test.rb b/test/integration/api/checks_test.rb
index b189fda9d02..e3314436861 100644
--- a/test/integration/api/checks_test.rb
+++ b/test/integration/api/checks_test.rb
@@ -52,7 +52,7 @@ class API::ChecksTest < ActionDispatch::IntegrationTest
assert_response :created
# mentor login
- token = create_token('yamada', 'testtest')
+ token = create_token('mentormentaro', 'testtest')
post api_checks_path(format: :json),
params: { checkable_type: @check4.checkable_type, checkable_id: @check4.checkable_id },
headers: { 'Authorization' => "Bearer #{token}" }
@@ -82,7 +82,7 @@ class API::ChecksTest < ActionDispatch::IntegrationTest
assert_response :no_content
# mentor login
- token = create_token('yamada', 'testtest')
+ token = create_token('mentormentaro', 'testtest')
delete api_check_path(@check4.id, format: :json),
headers: { 'Authorization' => "Bearer #{token}" }
assert_response :no_content
diff --git a/test/integration/api/practices_test.rb b/test/integration/api/practices_test.rb
index 9391ea64bbf..cdcf550feaa 100644
--- a/test/integration/api/practices_test.rb
+++ b/test/integration/api/practices_test.rb
@@ -25,7 +25,7 @@ class API::PracticesTest < ActionDispatch::IntegrationTest
headers: { 'Authorization' => "Bearer #{token}" }
assert_response :unauthorized
- token = create_token('yamada', 'testtest')
+ token = create_token('mentormentaro', 'testtest')
get api_practice_path(practices(:practice1).id, format: :json),
headers: { 'Authorization' => "Bearer #{token}" }
assert_response :ok
@@ -42,7 +42,7 @@ class API::PracticesTest < ActionDispatch::IntegrationTest
headers: { 'Authorization' => "Bearer #{token}" }
assert_response :unauthorized
- token = create_token('yamada', 'testtest')
+ token = create_token('mentormentaro', 'testtest')
patch api_practice_path(practices(:practice1).id, format: :json),
params: { practice: { memo: 'test' } },
headers: { 'Authorization' => "Bearer #{token}" }
diff --git a/test/integration/api/products/unassigned_counts_test.rb b/test/integration/api/products/unassigned_counts_test.rb
new file mode 100644
index 00000000000..950350ff688
--- /dev/null
+++ b/test/integration/api/products/unassigned_counts_test.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'test_helper'
+
+class API::Products::UnassignedTextTest < ActionDispatch::IntegrationTest
+ fixtures :products
+
+ test 'GET /api/products/unassigned/counts.txt' do
+ get counts_api_products_unassigned_index_path(format: :text)
+ assert_response :unauthorized
+
+ token = create_token('komagata', 'testtest')
+ get counts_api_products_unassigned_index_path(format: :text),
+ headers: { 'Authorization' => "Bearer #{token}" }
+ assert_response :ok
+ assert_match '5日経過:1件', response.body
+ assert_match '6日経過:1件', response.body
+ assert_match '7日以上経過:6件', response.body
+ end
+end
diff --git a/test/integration/api/products_test.rb b/test/integration/api/products_test.rb
index 698ab3cbc1f..55b598abdfc 100644
--- a/test/integration/api/products_test.rb
+++ b/test/integration/api/products_test.rb
@@ -7,7 +7,7 @@ class API::ProductsTest < ActionDispatch::IntegrationTest
get api_products_path(format: :json)
assert_response :unauthorized
- token = create_token('yamada', 'testtest')
+ token = create_token('mentormentaro', 'testtest')
get api_products_path(format: :json),
headers: { 'Authorization' => "Bearer #{token}" }
assert_response :ok
@@ -22,7 +22,7 @@ class API::ProductsTest < ActionDispatch::IntegrationTest
headers: { 'Authorization' => "Bearer #{token}" }
assert_response :unauthorized
- token = create_token('yamada', 'testtest')
+ token = create_token('mentormentaro', 'testtest')
get api_products_unchecked_index_path(format: :json),
headers: { 'Authorization' => "Bearer #{token}" }
assert_response :ok
@@ -37,7 +37,7 @@ class API::ProductsTest < ActionDispatch::IntegrationTest
headers: { 'Authorization' => "Bearer #{token}" }
assert_response :unauthorized
- token = create_token('yamada', 'testtest')
+ token = create_token('mentormentaro', 'testtest')
get api_products_self_assigned_index_path(format: :json),
headers: { 'Authorization' => "Bearer #{token}" }
assert_response :ok
diff --git a/test/integration/api/users_test.rb b/test/integration/api/users_test.rb
index 3e80acd8eaa..9caa34e9f61 100644
--- a/test/integration/api/users_test.rb
+++ b/test/integration/api/users_test.rb
@@ -30,7 +30,7 @@ class API::UsersTest < ActionDispatch::IntegrationTest
get api_users_path(users(:kimura).id, format: :json)
assert_response :unauthorized
- token = create_token('yamada', 'testtest')
+ token = create_token('mentormentaro', 'testtest')
get api_user_path(users(:kimura).id, format: :json),
headers: { 'Authorization' => "Bearer #{token}" }
assert_response :ok
diff --git a/test/models/campaign_test.rb b/test/models/campaign_test.rb
new file mode 100644
index 00000000000..731b34befeb
--- /dev/null
+++ b/test/models/campaign_test.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+require 'test_helper'
+
+class CampaignTest < ActiveSupport::TestCase
+ test 'recently campaign' do
+ past_campaign = campaigns(:campaign2)
+ current_campaign = campaigns(:campaign1)
+
+ assert_equal Campaign.recently_campaign, current_campaign.start_at..current_campaign.end_at
+ assert_not_equal Campaign.recently_campaign, past_campaign.start_at..past_campaign.end_at
+ end
+
+ test 'today is campaign?' do
+ campaign = campaigns(:campaign1)
+ assert_equal Campaign.today_is_campaign?, (campaign.start_at..campaign.end_at).cover?(Time.current)
+ end
+end
diff --git a/test/models/card_test.rb b/test/models/card_test.rb
index 5c3a9bde67a..880cfa7efe6 100644
--- a/test/models/card_test.rb
+++ b/test/models/card_test.rb
@@ -23,8 +23,8 @@ class CardTest < ActiveSupport::TestCase
test '#search' do
VCR.use_cassette 'customer/list' do
- customer = @card.search(email: 'yamada@example.com')
- assert_equal 'yamada@example.com', customer['email']
+ customer = @card.search(email: 'mentormentaro@example.com')
+ assert_equal 'mentormentaro@example.com', customer['email']
end
end
end
diff --git a/test/models/link_checker/checker_test.rb b/test/models/link_checker/checker_test.rb
index ba33082f66d..55c5a75d19a 100644
--- a/test/models/link_checker/checker_test.rb
+++ b/test/models/link_checker/checker_test.rb
@@ -1,47 +1,39 @@
# frozen_string_literal: true
require 'test_helper'
-require 'link_checker/extractor'
module LinkChecker
class CheckerTest < ActiveSupport::TestCase
setup do
- @link_hdd = LinkChecker::Link.new(
+ @link_hdd = Link.new(
'HDDが分かる',
'http://homepage2.nifty.com/kamurai/HDD.htm',
'PC性能の見方を知る',
"https://bootcamp.fjord.jp/practices/#{practices(:practice3).id}"
)
- @link_cpu = LinkChecker::Link.new(
+ @link_cpu = Link.new(
'CPUとは',
'https://www.pc-master.jp/words/cpu.html',
'PC性能の見方を知る',
"https://bootcamp.fjord.jp/practices/#{practices(:practice3).id}"
)
- @link_not_exist = LinkChecker::Link.new(
+ @link_not_exist = Link.new(
'存在しないページ',
'http://example.com/xxxxx',
'Docsページ',
"https://bootcamp.fjord.jp/pages/#{pages(:page3).id}"
)
- @link_example = LinkChecker::Link.new(
+ @link_example = Link.new(
'example',
'http://example.com',
'テスト',
"https://bootcamp.fjord.jp/pages/#{pages(:page2).id}"
)
- @link_example = LinkChecker::Link.new(
- 'example',
- 'http://example.com',
- 'テスト',
- "https://bootcamp.fjord.jp/pages/#{pages(:page2).id}"
- )
-
- @link_mac = LinkChecker::Link.new(
+ @link_mac = Link.new(
'Macの型番調べ辛い',
'https://docs.komagata.org/4433',
'PC性能の見方を知る',
@@ -49,20 +41,65 @@ class CheckerTest < ActiveSupport::TestCase
)
end
- test '#check' do
- VCR.use_cassette 'link_checker/checker/check' do
- checker = LinkChecker::Checker.new
- @link_hdd.response = false
- @link_not_exist.response = 404
- expected = [@link_hdd, @link_not_exist]
- assert_equal Set.new(expected), Set.new(checker.check)
+ test '.check_response' do
+ VCR.use_cassette 'link_checker/checker/check_response' do
+ expected = [
+ LinkChecker::Link.new(
+ 'HDDが分かる',
+ 'http://homepage2.nifty.com/kamurai/HDD.htm',
+ 'PC性能の見方を知る',
+ "https://bootcamp.fjord.jp/practices/#{practices(:practice3).id}",
+ false
+ ),
+ LinkChecker::Link.new(
+ '存在しないページ',
+ 'http://example.com/xxxxx',
+ 'Docsページ',
+ "https://bootcamp.fjord.jp/pages/#{pages(:page3).id}",
+ 404
+ ),
+ LinkChecker::Link.new(
+ 'example',
+ 'http://example.com',
+ 'テスト',
+ "https://bootcamp.fjord.jp/pages/#{pages(:page2).id}",
+ 200
+ )
+ ]
+
+ assert_equal expected, Checker.check_response([@link_hdd, @link_not_exist, @link_example])
end
end
- test '#all_links' do
- checker = LinkChecker::Checker.new
- expected = [@link_example, @link_not_exist, @link_cpu, @link_hdd, @link_mac]
- assert_equal Set.new(expected), Set.new(checker.all_links)
+ test '.valid_url? returns true with a valid url' do
+ assert Checker.valid_url?('http://example.com')
+ assert Checker.valid_url?('https://ja.wikipedia.org/wiki/あ')
+ end
+
+ test '.valid_url? returns false with an invalid url' do
+ assert_not Checker.valid_url?('http://invalid space exists')
+ end
+
+ test '.denied_host? returns true when an url contains a denied host' do
+ assert Checker.denied_host?('https://codepen.io/')
+ assert Checker.denied_host?('https://www.amazon.co.jp')
+ end
+
+ test '.denied_host? returns false when an url doesn\'t contain a denied host' do
+ assert_not Checker.denied_host?('http://example.com')
+ end
+
+ test '.summary' do
+ expected = <<~TEXT
+ リンク切れがありました。
+ -
in:
+ - in:
+ - in:
+ - in:
+ - in:
+ TEXT
+
+ assert_equal expected.chomp, Checker.summary([@link_hdd, @link_cpu, @link_not_exist, @link_example, @link_mac])
end
end
end
diff --git a/test/models/link_checker/client_test.rb b/test/models/link_checker/client_test.rb
index 4edddc9374c..6afd7c41366 100644
--- a/test/models/link_checker/client_test.rb
+++ b/test/models/link_checker/client_test.rb
@@ -39,5 +39,11 @@ class ClientTest < ActiveSupport::TestCase
assert_equal 200, Client.new('https://developer.mozilla.org/ja/docs/Web/JavaScript#Tutorials').request
end
end
+
+ test '#request can get a response from the server whose server certificate cannot be verified' do
+ VCR.use_cassette 'link_checker/client/request/www.tablesgenerator.com' do
+ assert_equal 200, Client.request('https://www.tablesgenerator.com/markdown_tables')
+ end
+ end
end
end
diff --git a/test/models/link_checker/extractor_test.rb b/test/models/link_checker/extractor_test.rb
index 23ebe3b3486..eda5770ec51 100644
--- a/test/models/link_checker/extractor_test.rb
+++ b/test/models/link_checker/extractor_test.rb
@@ -4,47 +4,67 @@
module LinkChecker
class ExtractorTest < ActiveSupport::TestCase
- test '#extract' do
- extractor = LinkChecker::Extractor.new(<<~TEXT, 'apt', 'https://bootcamp.fjord.jp/1234')
- aptとはdebianでソフトウェアをネットワークからインストールするコマンドです。
- #{' '}
- [TEST](/test)(/test2)
- #{' '}
- [missing](test)
- #{' '}
- - 参考
- - [APT - Wikipedia](http://ja.wikipedia.org/wiki/APT)
- #{' '}
- ## Q&A
- #{' '}
- - Q. `$ apt-cache search vim` の検索結果が多すぎる
- - A. [正規表現](https://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE) を使う。
- - 完全一致: `$ apt-cache search ^vim$`
- - 前方一致: `$ apt-cache search ^vim`
- TEXT
-
+ test '.extract_links_from_multi' do
+ page = pages(:page8)
+ practice = practices(:practice3)
expected = [
- LinkChecker::Link.new(
+ Link.new(
'TEST',
'https://bootcamp.fjord.jp/test',
'apt',
- 'https://bootcamp.fjord.jp/1234'
+ "https://bootcamp.fjord.jp#{page.path}"
),
- LinkChecker::Link.new(
+ Link.new(
'APT - Wikipedia',
'http://ja.wikipedia.org/wiki/APT',
'apt',
- 'https://bootcamp.fjord.jp/1234'
+ "https://bootcamp.fjord.jp#{page.path}"
),
- LinkChecker::Link.new(
+ Link.new(
'正規表現',
'https://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE',
'apt',
- 'https://bootcamp.fjord.jp/1234'
+ "https://bootcamp.fjord.jp#{page.path}"
+ ),
+ Link.new(
+ 'CPUとは',
+ 'https://www.pc-master.jp/words/cpu.html',
+ 'PC性能の見方を知る',
+ "https://bootcamp.fjord.jp#{practice.path}"
+ ),
+ Link.new(
+ 'HDDが分かる',
+ 'http://homepage2.nifty.com/kamurai/HDD.htm',
+ 'PC性能の見方を知る',
+ "https://bootcamp.fjord.jp#{practice.path}"
+ ),
+ Link.new(
+ 'Macの型番調べ辛い',
+ 'https://docs.komagata.org/4433',
+ 'PC性能の見方を知る',
+ "https://bootcamp.fjord.jp#{practice.path}"
)
]
- assert_equal expected, extractor.extract
+ assert_equal expected, Extractor.extract_links_from_multi([page, practice])
+ end
+
+ test '::MARKDOWN_LINK_REGEXP' do
+ actual = pages(:page8).body.scan(Extractor::MARKDOWN_LINK_REGEXP).map { |match| match.take(2) }
+ expected = [
+ ['TEST', '/test'],
+ ['APT - Wikipedia', 'http://ja.wikipedia.org/wiki/APT'],
+ ['正規表現', 'https://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE']
+ ]
+
+ assert_equal expected, actual
+ end
+
+ test '::MARKDOWN_LINK_REGEXP matches exactly an url that ends with closing parentheses' do
+ actual = '[末尾が閉じ括弧の URL のリンク](https://example.com/(hoge))'.scan(Extractor::MARKDOWN_LINK_REGEXP).map { |match| match.take(2) }
+ expected = [['末尾が閉じ括弧の URL のリンク', 'https://example.com/(hoge)']]
+
+ assert_equal expected, actual
end
end
end
diff --git a/test/models/notifications_test.rb b/test/models/notifications_test.rb
index 286d49eba57..61fe1c692a8 100644
--- a/test/models/notifications_test.rb
+++ b/test/models/notifications_test.rb
@@ -4,7 +4,7 @@
class NotificationTest < ActiveSupport::TestCase
setup do
- @receiver = users(:yamada)
+ @receiver = users(:mentormentaro)
@sender = users(:machida)
@link = 'path/to/link'
@now = Time.current
diff --git a/test/models/product_test.rb b/test/models/product_test.rb
index 2b89c3ae541..a29537605de 100644
--- a/test/models/product_test.rb
+++ b/test/models/product_test.rb
@@ -113,7 +113,7 @@ class ProductTest < ActiveSupport::TestCase
end
test '.self_assigned_no_replied_products' do
- current_user = users(:yamada)
+ current_user = users(:mentormentaro)
product = Product.create!(
body: 'test',
user: users(:kimura),
diff --git a/test/models/searcher_test.rb b/test/models/searcher_test.rb
index 2d9190fad6c..49a44823e1b 100644
--- a/test/models/searcher_test.rb
+++ b/test/models/searcher_test.rb
@@ -63,7 +63,7 @@ def assert_includes_classes(results, *expected_classes)
test 'sort search results in descending order of updated date' do
result = Searcher.search('検索結果確認用', document_type: :reports)
- assert_equal [reports(:report14), reports(:report13), reports(:report12)], result
+ assert_equal [reports(:report12), reports(:report14), reports(:report13)], result
assert_not_includes(result, Answer)
end
diff --git a/test/models/user_test.rb b/test/models/user_test.rb
index db1b096b9f9..9425361e261 100644
--- a/test/models/user_test.rb
+++ b/test/models/user_test.rb
@@ -146,7 +146,7 @@ class UserTest < ActiveSupport::TestCase
test '.order_by_counts' do
ordered_users = User.order_by_counts('report', 'desc')
more_report_user = users(:sotugyou)
- less_report_user = users(:yamada)
+ less_report_user = users(:mentormentaro)
assert ordered_users.index(more_report_user) < ordered_users.index(less_report_user)
ordered_users = User.order_by_counts('comment', 'asc')
@@ -290,7 +290,7 @@ class UserTest < ActiveSupport::TestCase
assert_includes(target, users(:komagata))
assert_not_includes(target, users(:yameo))
assert_not_includes(target, users(:sotugyou))
- assert_not_includes(target, users(:yamada))
+ assert_not_includes(target, users(:mentormentaro))
assert_not_includes(target, users(:advijirou))
assert_not_includes(target, users(:kensyu))
end
@@ -299,7 +299,8 @@ class UserTest < ActiveSupport::TestCase
target = User.announcement_receiver('job_seekers')
assert_includes(target, users(:jobseeker))
assert_includes(target, users(:komagata))
- assert_not_includes(target, users(:sotugyou))
+ assert_includes(target, users(:sotugyou))
+ assert_not_includes(target, users(:sotugyou_with_job))
assert_not_includes(target, users(:kimura))
assert_not_includes(target, users(:yameo))
end
@@ -356,10 +357,10 @@ class UserTest < ActiveSupport::TestCase
kimura = users(:kimura)
hatsuno = users(:hatsuno)
hajime = users(:hajime)
- yamada = users(:yamada)
+ mentormentaro = users(:mentormentaro)
kimura.follow(hatsuno, watch: true)
kimura.follow(hajime, watch: true)
- kimura.follow(yamada, watch: false)
+ kimura.follow(mentormentaro, watch: false)
assert_equal 3, kimura.followees_list.count
assert_equal 2, kimura.followees_list(watch: 'true').count
assert_equal 1, kimura.followees_list(watch: 'false').count
diff --git a/test/supports/notification_helper.rb b/test/supports/notification_helper.rb
index 40ba4a9c804..36697533b28 100644
--- a/test/supports/notification_helper.rb
+++ b/test/supports/notification_helper.rb
@@ -1,11 +1,6 @@
# frozen_string_literal: true
module NotificationHelper
- def open_notification
- sleep 1
- first('.test-bell').click
- end
-
def notification_message
first('.test-notification-message').text
end
diff --git a/test/system/admin/campaigns_test.rb b/test/system/admin/campaigns_test.rb
new file mode 100644
index 00000000000..5a3a68841d4
--- /dev/null
+++ b/test/system/admin/campaigns_test.rb
@@ -0,0 +1,56 @@
+# frozen_string_literal: true
+
+require 'application_system_test_case'
+
+class CampaignsTest < ApplicationSystemTestCase
+ WEEK_DAY = %w[日 月 火 水 木 金 土].freeze
+
+ test 'show link new campaign' do
+ visit_with_auth admin_campaigns_path, 'komagata'
+ assert_link 'お試し延長作成'
+ end
+
+ test 'not visit except admin' do
+ visit_with_auth admin_campaigns_path, 'kimura'
+ assert_text '管理者としてログインしてください'
+ end
+
+ test 'create a new campaign' do
+ today = Time.current
+ seven_days_later = Time.current + 7.days
+ visit_with_auth new_admin_campaign_path, 'komagata'
+ within 'form[name=campaign]' do
+ fill_in 'campaign[start_at]', with: Time.zone.parse(today.to_s)
+ fill_in 'campaign[end_at]', with: Time.zone.parse(seven_days_later.to_s)
+ fill_in 'campaign[title]', with: 'お正月キャンペーン'
+ click_button '内容を保存'
+ end
+ assert_text 'お試し延長を作成しました。'
+ assert_text 'お正月キャンペーン'
+ assert_text today.strftime("%Y年%m月%d日(#{WEEK_DAY[today.wday]}) %H:%M")
+ assert_text seven_days_later.strftime("%Y年%m月%d日(#{WEEK_DAY[seven_days_later.wday]}) %H:%M")
+ end
+
+ test 'update a campaign' do
+ visit_with_auth edit_admin_campaign_path(campaigns(:campaign1)), 'komagata'
+ within 'form[name=campaign]' do
+ fill_in 'campaign[start_at]', with: '2022-03-01'
+ fill_in 'campaign[end_at]', with: '2022-03-08'
+ fill_in 'campaign[title]', with: '春のお試し祭り'
+ click_button '内容を保存'
+ end
+ assert_text 'お試し延長を更新しました。'
+ assert_text '春のお試し祭り'
+ end
+
+ test 'cannot create a new campaign when start_at > end_at' do
+ visit_with_auth new_admin_campaign_path, 'komagata'
+ within 'form[name=campaign]' do
+ fill_in 'campaign[title]', with: 'お試し延長開始日時 > お試し延長終了日時のテスト'
+ fill_in 'campaign[start_at]', with: Time.zone.parse('2021-12-10 00:00')
+ fill_in 'campaign[end_at]', with: Time.zone.parse('2021-12-5 23:59')
+ click_button '内容を保存'
+ end
+ assert_text '終了日時は開始日時よりも後の日時にしてください。'
+ end
+end
diff --git a/test/system/announcements_test.rb b/test/system/announcements_test.rb
index ec0f1303f3c..0bcc7cc850f 100644
--- a/test/system/announcements_test.rb
+++ b/test/system/announcements_test.rb
@@ -113,7 +113,7 @@ class AnnouncementsTest < ApplicationSystemTestCase
visit_with_auth '/notifications', 'yameo'
assert_no_text 'お知らせ「現役生にのみお知らせtest」'
- visit_with_auth '/notifications', 'yamada'
+ visit_with_auth '/notifications', 'mentormentaro'
assert_no_text 'お知らせ「現役生にのみお知らせtest」'
visit_with_auth '/notifications', 'kensyu'
diff --git a/test/system/api/check/products_test.rb b/test/system/api/check/products_test.rb
index d82613e741d..a62f57a8b94 100644
--- a/test/system/api/check/products_test.rb
+++ b/test/system/api/check/products_test.rb
@@ -21,7 +21,7 @@ class Check::ProductsTest < ApplicationSystemTestCase
assert_text '確認済'
assert has_button? '提出物の確認を取り消す'
- visit_with_auth "/practices/#{products(:product1).practice.id}", 'yamada'
+ visit_with_auth "/practices/#{products(:product1).practice.id}", 'mentormentaro'
assert_text '完了しています'
end
diff --git a/test/system/articles_test.rb b/test/system/articles_test.rb
index ba0eb55f7e3..78893606b12 100644
--- a/test/system/articles_test.rb
+++ b/test/system/articles_test.rb
@@ -5,6 +5,7 @@
class ArticlesTest < ApplicationSystemTestCase
setup do
@article = articles(:article1)
+ @article3 = articles(:article3)
end
# 仮デザインなので一時的に無効化
@@ -50,4 +51,55 @@ class ArticlesTest < ApplicationSystemTestCase
visit edit_article_path(@article)
assert_text '管理者としてログインしてください'
end
+
+ test 'save article with WIP' do
+ visit_with_auth new_article_path, 'komagata'
+
+ fill_in 'article[title]', with: 'タイトル4'
+ fill_in 'article[body]', with: '本文4'
+ click_on 'WIP'
+ assert_text 'WIPとして保存しました'
+ end
+
+ test 'WIP label visible on index and show' do
+ visit_with_auth articles_path, 'komagata'
+ assert_text 'WIP'
+ assert_text '執筆中'
+
+ click_on @article3.title
+ assert_text 'WIP'
+ assert_text '執筆中'
+ assert_selector 'head', visible: false do
+ assert_selector "meta[name='robots'][content='none']", visible: false
+ end
+ end
+
+ test 'WIP articles not visible to users' do
+ visit_with_auth articles_url, 'kimura'
+ assert_no_text 'WIP'
+ end
+
+ test 'WIP articles not accessible to users' do
+ visit_with_auth article_path(@article3), 'kimura'
+ assert_text '管理者・メンターとしてログインしてください'
+ end
+
+ test 'no WIP marks after publication' do
+ visit_with_auth edit_article_path(@article3), 'komagata'
+ click_on '更新する'
+ assert_no_text 'WIP'
+ assert_no_text '執筆中'
+ assert_selector 'head', visible: false do
+ assert_no_selector "meta[name='robots'][content='none']", visible: false
+ end
+
+ visit_with_auth articles_url, 'kimura'
+ assert_text @article3.title
+ assert_no_text 'WIP'
+ assert_no_text '執筆中'
+
+ click_on @article3.title
+ assert_text @article3.title
+ assert_text @article3.body
+ end
end
diff --git a/test/system/comments_test.rb b/test/system/comments_test.rb
index d5443d43c17..9e9772d5e04 100644
--- a/test/system/comments_test.rb
+++ b/test/system/comments_test.rb
@@ -237,11 +237,14 @@ class CommentsTest < ApplicationSystemTestCase
visit_with_auth "/reports/#{reports(:report1).id}", 'komagata'
find('#comments.loaded', wait: 10)
first(:css, '.thread-comment__created-at').click
- # クリップボードを直接読み取る方法がないので、未入力のテキストエリアを経由してクリップボードの値を読み取っている
- # また、Ctrl-Vではペーストできなかったので、かわりにShift-Insertをショートカットキーとして使っている
- # 参考 https://stackoverflow.com/a/57955123/1058763
- find('#js-new-comment').send_keys %i[shift insert]
- clip_text = find('#js-new-comment').value
+ # 参考:https://gist.github.com/ParamagicDev/5fe937ee60695ff1d227f18fe4b1d5c4
+ cdp_permission = {
+ origin: page.server_url,
+ permission: { name: 'clipboard-read' },
+ setting: 'granted'
+ }
+ page.driver.browser.execute_cdp('Browser.setPermission', **cdp_permission)
+ clip_text = page.evaluate_async_script('navigator.clipboard.readText().then(arguments[0])')
assert_equal current_url + "#comment_#{comments(:comment1).id}", clip_text
end
diff --git a/test/system/courses_test.rb b/test/system/courses_test.rb
index b47bfaf353c..63a1271c00d 100644
--- a/test/system/courses_test.rb
+++ b/test/system/courses_test.rb
@@ -4,7 +4,7 @@
class CoursesTest < ApplicationSystemTestCase
test 'show listing courses' do
- visit_with_auth '/courses', 'yamada'
+ visit_with_auth '/courses', 'mentormentaro'
assert_equal 'コース一覧 | FJORD BOOT CAMP(フィヨルドブートキャンプ)', title
end
@@ -30,14 +30,14 @@ class CoursesTest < ApplicationSystemTestCase
end
test 'show published courses' do
- visit_with_auth '/courses', 'yamada'
+ visit_with_auth '/courses', 'mentormentaro'
assert_no_text courses(:course1).title
visit_with_auth "/admin/courses/#{courses(:course1).id}/edit", 'komagata'
within 'form[name=course]' do
find(:css, '#checkbox-published-course').set(true)
click_button '内容を保存'
end
- visit_with_auth '/courses', 'yamada'
+ visit_with_auth '/courses', 'mentormentaro'
assert_text courses(:course1).title
end
end
diff --git a/test/system/current_user/reports_test.rb b/test/system/current_user/reports_test.rb
index 04a926dbb5a..07504bb26b2 100644
--- a/test/system/current_user/reports_test.rb
+++ b/test/system/current_user/reports_test.rb
@@ -7,4 +7,16 @@ class CurrentUser::ReportsTest < ApplicationSystemTestCase
visit_with_auth '/current_user/reports', 'hatsuno'
assert_equal '自分の日報 | FJORD BOOT CAMP(フィヨルドブートキャンプ)', title
end
+
+ test 'show reports download button when reports exist' do
+ # 日報があるユーザーでログイン
+ visit_with_auth '/current_user/reports', 'hatsuno'
+ assert_text '日報一括ダウンロード'
+ end
+
+ test 'not show reports download button when no reports' do
+ # 日報がないユーザーでログイン
+ visit_with_auth '/current_user/reports', 'nippounashi'
+ assert_no_text '日報一括ダウンロード'
+ end
end
diff --git a/test/system/emotions_test.rb b/test/system/emotions_test.rb
index c936f7d2224..ddbebd409e1 100644
--- a/test/system/emotions_test.rb
+++ b/test/system/emotions_test.rb
@@ -21,4 +21,24 @@ class EmotionsTest < ApplicationSystemTestCase
assert_text '日報を保存しました。'
assert_selector 'img#happy'
end
+
+ test 'create a report with the sad emotion' do
+ visit_with_auth '/reports/new', 'komagata'
+ within('#new_report') do
+ fill_in('report[title]', with: 'test title')
+ fill_in('report[description]', with: 'test')
+ end
+
+ all('.learning-time')[0].all('.learning-time__started-at select')[0].select('07')
+ all('.learning-time')[0].all('.learning-time__started-at select')[1].select('30')
+ all('.learning-time')[0].all('.learning-time__finished-at select')[0].select('08')
+ all('.learning-time')[0].all('.learning-time__finished-at select')[1].select('30')
+
+ find('#sad').click
+
+ click_button '提出'
+ assert_text '日報を保存しました。'
+ assert_selector 'img#sad'
+ assert_text '困った時は'
+ end
end
diff --git a/test/system/followings_test.rb b/test/system/followings_test.rb
index d0b9ed8cea1..fe57920c736 100644
--- a/test/system/followings_test.rb
+++ b/test/system/followings_test.rb
@@ -37,14 +37,14 @@ class FollowingsTest < ApplicationSystemTestCase
click_button 'コメントあり'
assert_selector 'summary', text: 'コメントあり'
- visit_with_auth user_path(users(:yamada)), 'kimura'
+ visit_with_auth user_path(users(:mentormentaro)), 'kimura'
find('.following').click
click_button 'コメントなし'
assert_selector 'summary', text: 'コメントなし'
visit '/users?target=followings'
assert_text users(:hatsuno).login_name
- assert_text users(:yamada).login_name
+ assert_text users(:mentormentaro).login_name
end
test 'show followings with comments' do
@@ -53,14 +53,14 @@ class FollowingsTest < ApplicationSystemTestCase
click_button 'コメントあり'
assert_selector 'summary', text: 'コメントあり'
- visit_with_auth user_path(users(:yamada)), 'kimura'
+ visit_with_auth user_path(users(:mentormentaro)), 'kimura'
find('.following').click
click_button 'コメントなし'
assert_selector 'summary', text: 'コメントなし'
visit '/users?target=followings&watch=true'
assert_text users(:hatsuno).login_name
- assert_no_text users(:yamada).login_name
+ assert_no_text users(:mentormentaro).login_name
end
test 'show followings with no comments' do
@@ -69,14 +69,14 @@ class FollowingsTest < ApplicationSystemTestCase
click_button 'コメントあり'
assert_selector 'summary', text: 'コメントあり'
- visit_with_auth user_path(users(:yamada)), 'kimura'
+ visit_with_auth user_path(users(:mentormentaro)), 'kimura'
find('.following').click
click_button 'コメントなし'
assert_selector 'summary', text: 'コメントなし'
visit '/users?target=followings&watch=false'
assert_no_text users(:hatsuno).login_name
- assert_text users(:yamada).login_name
+ assert_text users(:mentormentaro).login_name
end
test 'receive a notification when following user create a report' do
@@ -84,7 +84,7 @@ class FollowingsTest < ApplicationSystemTestCase
find('.following').click
click_button 'コメントあり'
- visit_with_auth user_path(users(:hatsuno)), 'yamada'
+ visit_with_auth user_path(users(:hatsuno)), 'mentormentaro'
find('.following').click
click_button 'コメントなし'
@@ -106,7 +106,7 @@ class FollowingsTest < ApplicationSystemTestCase
visit_with_auth '/notifications', 'kimura'
assert_text 'hatsunoさんが日報【 test title 】を書きました!'
- visit_with_auth '/notifications', 'yamada'
+ visit_with_auth '/notifications', 'mentormentaro'
assert_text 'hatsunoさんが日報【 test title 】を書きました!'
end
@@ -115,7 +115,7 @@ class FollowingsTest < ApplicationSystemTestCase
find('.following').click
click_button 'コメントあり'
- visit_with_auth user_path(users(:hatsuno)), 'yamada'
+ visit_with_auth user_path(users(:hatsuno)), 'mentormentaro'
find('.following').click
click_button 'コメントなし'
@@ -144,7 +144,7 @@ class FollowingsTest < ApplicationSystemTestCase
visit_with_auth '/notifications', 'kimura'
assert_text 'hatsunoさんの【 「test title」の日報 】にhatsunoさんがコメントしました。'
- visit_with_auth '/notifications', 'yamada'
+ visit_with_auth '/notifications', 'mentormentaro'
assert_no_text 'hatsunoさんの【 「test title」の日報 】にhatsunoさんがコメントしました。'
end
end
diff --git a/test/system/footprint/products_test.rb b/test/system/footprint/products_test.rb
index 798950f3eab..daba3f7442b 100644
--- a/test/system/footprint/products_test.rb
+++ b/test/system/footprint/products_test.rb
@@ -4,16 +4,16 @@
class Footprint::ProductsTest < ApplicationSystemTestCase
test 'should be create footprint in product page' do
- product = users(:yamada).products.first
+ product = users(:mentormentaro).products.first
visit_with_auth product_path(product), 'komagata'
assert_text '見たよ'
assert page.has_css?('.footprints-item__checker-icon.is-komagata')
end
test 'should not footpoint with my own product' do
- product = users(:yamada).products.first
- visit_with_auth product_path(product), 'yamada'
+ product = users(:mentormentaro).products.first
+ visit_with_auth product_path(product), 'mentormentaro'
assert_no_text '見たよ'
- assert_not page.has_css?('.footprints-item__checker-icon.is-yamada')
+ assert_not page.has_css?('.footprints-item__checker-icon.is-mentormentaro')
end
end
diff --git a/test/system/notification/after_retirement.rb b/test/system/notification/after_retirement.rb
index d63820055eb..7ad727f2766 100644
--- a/test/system/notification/after_retirement.rb
+++ b/test/system/notification/after_retirement.rb
@@ -5,10 +5,10 @@
class Notification::AfterRetirementTest < ApplicationSystemTestCase
test 'three months have passed since user retired' do
visit_with_auth '/scheduler/daily', 'komagata'
+ visit '/notifications'
- visit '/'
- open_notification
- assert_equal 'taikai3さんが退会してから3カ月が経過しました。Discord ID: taikai#3333, ユーザーページ: https://bootcamp.fjord.jp/users/1008501353',
- notification_message
+ within first('.thread-list-item.is-unread') do
+ assert_text 'taikai3さんが退会してから3カ月が経過しました。Discord ID: taikai#3333, ユーザーページ: https://bootcamp.fjord.jp/users/1008501353'
+ end
end
end
diff --git a/test/system/notification/announcements_test.rb b/test/system/notification/announcements_test.rb
index e9662f72b6e..8fab0772642 100644
--- a/test/system/notification/announcements_test.rb
+++ b/test/system/notification/announcements_test.rb
@@ -19,13 +19,13 @@ class Notification::AnnouncementsTest < ApplicationSystemTestCase
choose '全員にお知らせ', allow_label_click: true
click_button '作成'
end
+ assert_text 'お知らせを作成しました。'
- logout
+ visit_with_auth '/notifications', 'sotugyou'
- visit_with_auth '/', 'sotugyou'
- open_notification
- assert_equal @notice_text, notification_message
- logout
+ within first('.thread-list-item.is-unread') do
+ assert_text @notice_text
+ end
visit_with_auth '/', 'komagata'
refute_text @notice_text
diff --git a/test/system/notification/answers_test.rb b/test/system/notification/answers_test.rb
index 33dd6bcb17e..82bc272379a 100644
--- a/test/system/notification/answers_test.rb
+++ b/test/system/notification/answers_test.rb
@@ -7,19 +7,19 @@ class Notification::AnswersTest < ApplicationSystemTestCase
@notice_text = 'komagataさんから回答がありました。'
end
- test "recieve a notification when I got my question's answer" do
+ test "receive a notification when I got my question's answer" do
visit_with_auth "/questions/#{questions(:question2).id}", 'komagata'
within('.thread-comment-form__form') do
fill_in('answer[description]', with: 'reduceも使ってみては?')
end
click_button 'コメントする'
- wait_for_vuejs
- logout
+ assert_text '回答を投稿しました!'
- visit_with_auth '/', 'sotugyou'
- open_notification
- assert_equal @notice_text, notification_message
- logout
+ visit_with_auth '/notifications', 'sotugyou'
+
+ within first('.thread-list-item.is-unread') do
+ assert_text @notice_text
+ end
visit_with_auth '/', 'komagata'
refute_text @notice_text
diff --git a/test/system/notification/comments_test.rb b/test/system/notification/comments_test.rb
index 5171226fae0..2316fe8727b 100644
--- a/test/system/notification/comments_test.rb
+++ b/test/system/notification/comments_test.rb
@@ -13,12 +13,11 @@ class Notification::CommentsTest < ApplicationSystemTestCase
wait_for_vuejs
assert_text '@machida @machida test'
- logout
- login_user 'machida', 'testtest'
+ visit_with_auth '/notifications', 'machida'
- open_notification
- assert_equal 'komagataさんの日報「作業週1日目」へのコメントでkomagataさんからメンションがきました。',
- notification_message
+ within first('.thread-list-item.is-unread') do
+ assert_text 'komagataさんの日報「作業週1日目」へのコメントでkomagataさんからメンションがきました。'
+ end
assert_selector '.header-notification-count', text: '1'
end
end
diff --git a/test/system/notification/events_test.rb b/test/system/notification/events_test.rb
index e3dc51b9e20..2b508c2c7e1 100644
--- a/test/system/notification/events_test.rb
+++ b/test/system/notification/events_test.rb
@@ -9,13 +9,13 @@ class Notification::EventsTest < ApplicationSystemTestCase
accept_confirm do
click_link '参加を取り消す'
end
- sleep 1
- logout
+ assert_text '参加を取り消しました。'
- login_user 'hatsuno', 'testtest'
- open_notification
- assert_equal "#{event.title}で、補欠から参加に繰り上がりました。",
- notification_message
+ visit_with_auth '/notifications', 'hatsuno'
+
+ within first('.thread-list-item.is-unread') do
+ assert_text "#{event.title}で、補欠から参加に繰り上がりました。"
+ end
end
test 'waiting user receive notification when the event capacity is increased' do
@@ -25,11 +25,12 @@ class Notification::EventsTest < ApplicationSystemTestCase
fill_in 'event_capacity', with: 2
click_button '内容変更'
- logout
+ assert_text 'イベントを更新しました。'
- login_user 'hatsuno', 'testtest'
- open_notification
- assert_equal "#{event.title}で、補欠から参加に繰り上がりました。",
- notification_message
+ visit_with_auth '/notifications', 'hatsuno'
+
+ within first('.thread-list-item.is-unread') do
+ assert_text "#{event.title}で、補欠から参加に繰り上がりました。"
+ end
end
end
diff --git a/test/system/notification/pages_test.rb b/test/system/notification/pages_test.rb
index c9e39a4044e..c191c5cc3b3 100644
--- a/test/system/notification/pages_test.rb
+++ b/test/system/notification/pages_test.rb
@@ -12,18 +12,19 @@ class Notification::PagesTest < ApplicationSystemTestCase
fill_in('page[body]', with: 'DocsTestBody')
end
click_button '内容を保存'
+ assert_text 'ページを作成しました。'
- logout
- login_user 'hatsuno', 'testtest'
- open_notification
- assert_equal 'komagataさんがDocsにDocsTestを投稿しました。',
- notification_message
+ visit_with_auth '/notifications', 'hatsuno'
- logout
- login_user 'machida', 'testtest'
- open_notification
- assert_equal 'komagataさんがDocsにDocsTestを投稿しました。',
- notification_message
+ within first('.thread-list-item.is-unread') do
+ assert_text 'komagataさんがDocsにDocsTestを投稿しました。'
+ end
+
+ visit_with_auth '/notifications', 'machida'
+
+ within first('.thread-list-item.is-unread') do
+ assert_text 'komagataさんがDocsにDocsTestを投稿しました。'
+ end
logout
visit_with_auth '/notifications', 'yameo'
@@ -39,6 +40,7 @@ class Notification::PagesTest < ApplicationSystemTestCase
fill_in('page[body]', with: 'DocsTestBody')
end
click_button 'WIP'
+ assert_text 'ページをWIPとして保存しました。'
logout
visit_with_auth '/notifications', 'hatsuno'
@@ -51,11 +53,12 @@ class Notification::PagesTest < ApplicationSystemTestCase
click_link '内容変更'
click_button '内容を保存'
+ assert_text 'ページを更新しました。'
- logout
- login_user 'machida', 'testtest'
- open_notification
- assert_equal 'komagataさんがDocsにWIPのテストを投稿しました。',
- notification_message
+ visit_with_auth '/notifications', 'machida'
+
+ within first('.thread-list-item.is-unread') do
+ assert_text 'komagataさんがDocsにWIPのテストを投稿しました。'
+ end
end
end
diff --git a/test/system/notification/products_test.rb b/test/system/notification/products_test.rb
index 5d06322ef3a..479efb00e65 100644
--- a/test/system/notification/products_test.rb
+++ b/test/system/notification/products_test.rb
@@ -12,12 +12,11 @@ class Notification::ProductsTest < ApplicationSystemTestCase
click_button '提出する'
assert_text "7日以内にメンターがレビューしますので、次のプラクティスにお進みください。\nもし、7日以上経ってもレビューされない場合は、メンターにお問い合わせください。"
- logout
- login_user 'senpai', 'testtest'
+ visit_with_auth '/notifications', 'senpai'
- open_notification
- assert_equal "kensyuさんが「#{practices(:practice5).title}」の提出物を提出しました。",
- notification_message
+ within first('.thread-list-item.is-unread') do
+ assert_text "kensyuさんが「#{practices(:practice5).title}」の提出物を提出しました。"
+ end
end
test 'update product notificationmessage' do
@@ -29,11 +28,11 @@ class Notification::ProductsTest < ApplicationSystemTestCase
end
click_button '提出する'
assert_text '提出物を更新しました。'
- logout
- login_user 'komagata', 'testtest'
- open_notification
- assert_equal 'kimuraさんの提出物が更新されました',
- notification_message
+ visit_with_auth '/notifications', 'komagata'
+
+ within first('.thread-list-item.is-unread') do
+ assert_text 'kimuraさんの提出物が更新されました'
+ end
end
end
diff --git a/test/system/notification/questions_test.rb b/test/system/notification/questions_test.rb
index 1e66f040d28..783ee555afb 100644
--- a/test/system/notification/questions_test.rb
+++ b/test/system/notification/questions_test.rb
@@ -19,18 +19,19 @@ class Notification::QuestionsTest < ApplicationSystemTestCase
first('.select2-selection--single').click
find('li', text: '[Mac OS X] OS X Mountain Lionをクリーンインストールする').click
click_button '登録する'
- logout
+ assert_text '質問を作成しました。'
- login_user 'yamada', 'testtest'
- open_notification
- assert_equal @notice_text, notification_message
- logout
+ visit_with_auth '/notifications', 'mentormentaro'
+
+ within first('.thread-list-item.is-unread') do
+ assert_text @notice_text
+ end
assert_equal @notified_count + @mentor_count, Notification.where(kind: @notice_kind).size
end
test 'There is no notification to the mentor who posted' do
- visit_with_auth '/questions/new', 'yamada'
+ visit_with_auth '/questions/new', 'mentormentaro'
within 'form[name=question]' do
fill_in('question[title]', with: '皆さんに質問!!')
fill_in('question[description]', with: '通知行ってますか?')
@@ -40,11 +41,11 @@ class Notification::QuestionsTest < ApplicationSystemTestCase
click_button '登録する'
logout
- login_user users(:yamada).login_name, 'testtest'
+ login_user users(:mentormentaro).login_name, 'testtest'
# 通知メッセージが非表示項目でassert_textでは取得できないため、findでvisible指定
# 存在時、findは複数取得してエラーになるためassert_raisesにて検証
assert_raises Capybara::ElementNotFound do
- find('yamadaさんから質問がありました。', visible: false)
+ find('mentormentaroさんから質問がありました。', visible: false)
end
logout
end
diff --git a/test/system/notification/reports_test.rb b/test/system/notification/reports_test.rb
index 14f445d744c..217d8f0af78 100644
--- a/test/system/notification/reports_test.rb
+++ b/test/system/notification/reports_test.rb
@@ -5,8 +5,8 @@
class Notification::ReportsTest < ApplicationSystemTestCase
test 'the first daily report notification is sent only to current students and mentors' do
report = users(:muryou).reports.create!(
- title: 'test title',
- description: 'test',
+ title: '初日報です',
+ description: '初日報の内容です',
reported_on: Date.current
)
@@ -20,16 +20,20 @@ class Notification::ReportsTest < ApplicationSystemTestCase
)
notification_message = 'muryouさんがはじめての日報を書きました!'
- visit_with_auth '/notifications', 'komagata'
+ visit_with_auth '/notifications', 'machida'
+ find('#notifications.loaded', wait: 10)
assert_text notification_message
visit_with_auth '/notifications', 'kimura'
+ find('#notifications.loaded', wait: 10)
assert_text notification_message
visit_with_auth '/notifications', 'advijirou'
+ find('#notifications.loaded', wait: 10)
assert_no_text notification_message
visit_with_auth '/notifications', 'sotugyou'
+ find('#notifications.loaded', wait: 10)
assert_no_text notification_message
end
@@ -155,7 +159,7 @@ def assert_notify_only_at_first_published_of_report(
test 'notify to mentors when a student submitted reports with sad icon at twice in a row' do
student = 'kimura'
- mentor = 'yamada'
+ mentor = 'mentormentaro'
visit_with_auth '/reports', student
@@ -171,6 +175,7 @@ def assert_notify_only_at_first_published_of_report(
all('.learning-time')[0].all('.learning-time__finished-at select')[0].select('08')
all('.learning-time')[0].all('.learning-time__finished-at select')[1].select('30')
click_button '提出'
+ find('.modal-header__close').click
click_link '日報作成'
within('#new_report') do
@@ -184,12 +189,12 @@ def assert_notify_only_at_first_published_of_report(
all('.learning-time')[0].all('.learning-time__finished-at select')[0].select('08')
all('.learning-time')[0].all('.learning-time__finished-at select')[1].select('30')
click_button '提出'
+ find('.modal-header__close').click
- logout
-
- login_user mentor, 'testtest'
- open_notification
+ visit_with_auth '/notifications', mentor
- assert_equal "#{student}さんが2回連続でsadアイコンの日報を提出しました。", notification_message
+ within first('.thread-list-item.is-unread') do
+ assert_text "#{student}さんが2回連続でsadアイコンの日報を提出しました。"
+ end
end
end
diff --git a/test/system/notification/tabs_badges_test.rb b/test/system/notification/tabs_badges_test.rb
new file mode 100644
index 00000000000..9f21cd5a17b
--- /dev/null
+++ b/test/system/notification/tabs_badges_test.rb
@@ -0,0 +1,115 @@
+# frozen_string_literal: true
+
+require 'application_system_test_case'
+
+class Notification::TabsBadgesTest < ApplicationSystemTestCase
+ setup do
+ Notification.create!(
+ message: 'お知らせ',
+ kind: 5,
+ link: '/notifications/1',
+ user: users(:sotugyou),
+ sender: users(:komagata),
+ read: false
+ )
+
+ Notification.create!(
+ message: 'メンション',
+ kind: 2,
+ link: '/notifications/2',
+ user: users(:sotugyou),
+ sender: users(:komagata),
+ read: false
+ )
+
+ Notification.create!(
+ message: 'コメント',
+ kind: 0,
+ link: '/notifications/3',
+ user: users(:sotugyou),
+ sender: users(:komagata),
+ read: false
+ )
+
+ Notification.create!(
+ message: '提出物の確認',
+ kind: 1,
+ link: '/notifications/4',
+ user: users(:sotugyou),
+ sender: users(:komagata),
+ read: false
+ )
+
+ Notification.create!(
+ message: 'watch中',
+ kind: 8,
+ link: '/notifications/5',
+ user: users(:sotugyou),
+ sender: users(:komagata),
+ read: false
+ )
+ Notification.create!(
+ message: 'フォロー中',
+ kind: 13,
+ link: '/notifications/6',
+ user: users(:sotugyou),
+ sender: users(:komagata),
+ read: false
+ )
+ end
+
+ test 'unread badges are displayed' do
+ visit_with_auth '/notifications', 'sotugyou'
+
+ within first('.page-tabs__item:nth-child(1)') do
+ find('div', text: '10')
+ end
+ within first('.page-tabs__item:nth-child(2)') do
+ find('div', text: '2')
+ end
+ within first('.page-tabs__item:nth-child(3)') do
+ find('div', text: '2')
+ end
+ within first('.page-tabs__item:nth-child(4)') do
+ find('div', text: '3')
+ end
+ within first('.page-tabs__item:nth-child(5)') do
+ find('div', text: '2')
+ end
+ within first('.page-tabs__item:nth-child(6)') do
+ find('div', text: '1')
+ end
+ within first('.page-tabs__item:nth-child(7)') do
+ find('div', text: '1')
+ end
+ end
+
+ test 'unread badges are not displayed' do
+ user = users(:sotugyou)
+ user.notifications.unreads.update_all(read: true) # rubocop:disable Rails/SkipsModelValidations
+
+ visit_with_auth '/notifications', 'sotugyou'
+
+ within all('.page-tabs__item')[0] do
+ assert_no_selector '.page-tabs__item-count'
+ end
+ within all('.page-tabs__item')[1] do
+ assert_no_selector '.page-tabs__item-count'
+ end
+ within all('.page-tabs__item')[2] do
+ assert_no_selector '.page-tabs__item-count'
+ end
+ within all('.page-tabs__item')[3] do
+ assert_no_selector '.page-tabs__item-count'
+ end
+ within all('.page-tabs__item')[4] do
+ assert_no_selector '.page-tabs__item-count'
+ end
+ within all('.page-tabs__item')[5] do
+ assert_no_selector '.page-tabs__item-count'
+ end
+ within all('.page-tabs__item')[6] do
+ assert_no_selector '.page-tabs__item-count'
+ end
+ end
+end
diff --git a/test/system/notification/talk_test.rb b/test/system/notification/talk_test.rb
index 2eda942425c..51b89d2f6f7 100644
--- a/test/system/notification/talk_test.rb
+++ b/test/system/notification/talk_test.rb
@@ -15,11 +15,11 @@ class Notification::TalkTest < ApplicationSystemTestCase
wait_for_vuejs
assert_text 'test'
- logout
- login_user 'machida', 'testtest'
+ visit_with_auth '/notifications', 'machida'
- open_notification
- assert_equal 'kimuraさんからコメントが届きました。', notification_message
+ within first('.thread-list-item.is-unread') do
+ assert_text 'kimuraさんの相談部屋でkimuraさんからコメントが届きました。'
+ end
end
test 'Admin except myself receive a notification when other admin comments on a talk room' do
@@ -33,15 +33,18 @@ class Notification::TalkTest < ApplicationSystemTestCase
click_button 'コメントする'
wait_for_vuejs
assert_text 'test'
- visit '/'
- open_notification
- assert_no_text 'komagataさんからコメントが届きました。'
- logout
- login_user 'machida', 'testtest'
+ visit '/notifications'
+
+ within first('.thread-list-item.is-unread') do
+ assert_no_text 'kimuraさんの相談部屋でkomagataさんからコメントが届きました。'
+ end
- open_notification
- assert_equal 'komagataさんからコメントが届きました。', notification_message
+ visit_with_auth '/notifications', 'machida'
+
+ within first('.thread-list-item.is-unread') do
+ assert_text 'kimuraさんの相談部屋でkomagataさんからコメントが届きました。'
+ end
end
test 'Receive a notification when someone except myself comments on my talk room' do
@@ -56,10 +59,35 @@ class Notification::TalkTest < ApplicationSystemTestCase
wait_for_vuejs
assert_text 'test'
- logout
- login_user 'kimura', 'testtest'
+ visit_with_auth '/notifications', 'kimura'
- open_notification
- assert_equal 'komagataさんからコメントが届きました。', notification_message
+ within first('.thread-list-item.is-unread') do
+ assert_text 'komagataさんからコメントが届きました。'
+ end
+ end
+
+ test 'The number of unreplied comments is displayed in the global navigation and unreplied tab of the talks room' do
+ visit_with_auth '/talks/unreplied', 'komagata'
+ within(:css, '.global-nav') do
+ within(:css, "a[href='/talks']") do
+ assert_selector '.global-nav__item-count.a-notification-count.is-only-mentor', count: 1
+ end
+ end
+ assert_selector '.page-tabs__item-count.a-notification-count', count: 1
+
+ talk_id = users(:with_hyphen).talk.id
+ visit_with_auth "/talks/#{talk_id}", 'komagata'
+ within('.thread-comment-form__form') do
+ fill_in('new_comment[description]', with: 'test')
+ end
+ click_button 'コメントする'
+
+ visit '/talks/unreplied'
+ within(:css, '.global-nav') do
+ within(:css, "a[href='/talks'") do
+ assert_no_selector '.global-nav__item-count.a-notification-count.is-only-mentor'
+ end
+ end
+ assert_no_selector '.page-tabs__item-count.a-notification-count'
end
end
diff --git a/test/system/notification/watches_test.rb b/test/system/notification/watches_test.rb
index ff7f2bfb58e..7b48f7e296a 100644
--- a/test/system/notification/watches_test.rb
+++ b/test/system/notification/watches_test.rb
@@ -19,19 +19,19 @@ class Notification::WatchesTest < ApplicationSystemTestCase
fill_in('new_comment[description]', with: 'コメントありがとうございます。')
end
click_button 'コメントする'
- wait_for_vuejs
- logout
+ assert_text 'コメントを投稿しました!'
+
+ visit_with_auth '/notifications', 'kimura'
- login_user 'kimura', 'testtest'
- open_notification
- assert_equal "komagataさんの【 「#{reports(:report1).title}」の日報 】にkomagataさんがコメントしました。",
- notification_message
+ within first('.thread-list-item.is-unread') do
+ assert_text "komagataさんの【 「#{reports(:report1).title}」の日報 】にkomagataさんがコメントしました。"
+ end
- login_user 'machida', 'testtest'
- open_notification
+ visit_with_auth '/notifications', 'machida'
- assert_equal "komagataさんの【 「#{reports(:report1).title}」の日報 】にkomagataさんがコメントしました。",
- notification_message
+ within first('.thread-list-item.is-unread') do
+ assert_text "komagataさんの【 「#{reports(:report1).title}」の日報 】にkomagataさんがコメントしました。"
+ end
end
test '質問作成者がコメントをした際、ウォッチ通知が飛ばないバグの再現' do
@@ -50,17 +50,18 @@ class Notification::WatchesTest < ApplicationSystemTestCase
fill_in('answer[description]', with: '質問へのご回答ありがとうございます。')
end
click_button 'コメントする'
- wait_for_vuejs
- logout
+ assert_text '回答を投稿しました!'
+
+ visit_with_auth '/notifications', 'kimura'
- login_user 'kimura', 'testtest'
- open_notification
- assert_equal "machidaさんの【 「#{questions(:question1).title}」のQ&A 】にmachidaさんがコメントしました。",
- notification_message
+ within first('.thread-list-item.is-unread') do
+ assert_text "machidaさんの【 「#{questions(:question1).title}」のQ&A 】にmachidaさんがコメントしました。"
+ end
- login_user 'komagata', 'testtest'
- open_notification
- assert_equal "machidaさんの【 「#{questions(:question1).title}」のQ&A 】にmachidaさんがコメントしました。",
- notification_message
+ visit_with_auth '/notifications', 'komagata'
+
+ within first('.thread-list-item.is-unread') do
+ assert_text "machidaさんの【 「#{questions(:question1).title}」のQ&A 】にmachidaさんがコメントしました。"
+ end
end
end
diff --git a/test/system/notifications_test.rb b/test/system/notifications_test.rb
index 1f84062eb81..60b20abab37 100644
--- a/test/system/notifications_test.rb
+++ b/test/system/notifications_test.rb
@@ -48,9 +48,9 @@ class NotificationsTest < ApplicationSystemTestCase
created_at: '2040-01-18 06:06:42',
kind: 'mentioned',
link: '/reports/20400118',
- user: users(:yamada),
+ user: users(:mentormentaro),
sender: users(:machida))
- visit_with_auth '/notifications?status=unread', 'yamada'
+ visit_with_auth '/notifications?status=unread', 'mentormentaro'
wait_for_vuejs
assert_no_text '1番新しい既読の通知'
end
@@ -61,22 +61,22 @@ class NotificationsTest < ApplicationSystemTestCase
Notification.create(message: "machidaさんからメンションが届きました#{n}",
kind: 'mentioned',
link: "/reports/#{n}",
- user: users(:yamada),
+ user: users(:mentormentaro),
sender: users(:machida))
end
Notification.create(message: '1番新しい通知',
created_at: '2040-01-18 06:06:42',
kind: 'mentioned',
link: '/reports/20400118',
- user: users(:yamada),
+ user: users(:mentormentaro),
sender: users(:machida))
Notification.create(message: '1番古い通知',
created_at: '2000-01-18 06:06:42',
kind: 'mentioned',
link: '/reports/20000118',
- user: users(:yamada),
+ user: users(:mentormentaro),
sender: users(:machida))
- visit_with_auth '/notifications', 'yamada'
+ visit_with_auth '/notifications', 'mentormentaro'
wait_for_vuejs
within first('nav.pagination') do
find('a', text: '2').click
@@ -96,22 +96,22 @@ class NotificationsTest < ApplicationSystemTestCase
Notification.create(message: "machidaさんからメンションが届きました#{n}",
kind: 'mentioned',
link: "/reports/#{n}",
- user: users(:yamada),
+ user: users(:mentormentaro),
sender: users(:machida))
end
Notification.create(message: '1番新しい通知',
created_at: '2040-01-18 06:06:42',
kind: 'mentioned',
link: '/reports/20400118',
- user: users(:yamada),
+ user: users(:mentormentaro),
sender: users(:machida))
Notification.create(message: '1番古い通知',
created_at: '2000-01-18 06:06:42',
kind: 'mentioned',
link: '/reports/20000118',
- user: users(:yamada),
+ user: users(:mentormentaro),
sender: users(:machida))
- login_user 'yamada', 'testtest'
+ login_user 'mentormentaro', 'testtest'
visit '/notifications?page=2'
wait_for_vuejs
assert_text '1番古い通知'
@@ -126,22 +126,22 @@ class NotificationsTest < ApplicationSystemTestCase
Notification.create(message: "machidaさんからメンションが届きました#{n}",
kind: 'mentioned',
link: "/reports/#{n}",
- user: users(:yamada),
+ user: users(:mentormentaro),
sender: users(:machida))
end
Notification.create(message: '1番新しい通知',
created_at: '2040-01-18 06:06:42',
kind: 'mentioned',
link: '/reports/20400118',
- user: users(:yamada),
+ user: users(:mentormentaro),
sender: users(:machida))
Notification.create(message: '1番古い通知',
created_at: '2000-01-18 06:06:42',
kind: 'mentioned',
link: '/reports/20000118',
- user: users(:yamada),
+ user: users(:mentormentaro),
sender: users(:machida))
- login_user 'yamada', 'testtest'
+ login_user 'mentormentaro', 'testtest'
visit '/notifications?page=2'
wait_for_vuejs
within first('nav.pagination') do
@@ -176,10 +176,10 @@ class NotificationsTest < ApplicationSystemTestCase
created_at: '2040-01-18 06:06:42',
kind: 'mentioned',
link: '/reports/20400118',
- user: users(:yamada),
+ user: users(:mentormentaro),
sender: users(:machida))
- visit_with_auth '/notifications', 'yamada'
+ visit_with_auth '/notifications', 'mentormentaro'
wait_for_vuejs
assert_selector '.header-notification-count', text: '1'
@@ -187,10 +187,10 @@ class NotificationsTest < ApplicationSystemTestCase
Notification.create(message: "machidaさんからメンションが届きました#{n}",
kind: 'mentioned',
link: "/reports/#{n}",
- user: users(:yamada),
+ user: users(:mentormentaro),
sender: users(:machida))
end
- visit_with_auth '/notifications', 'yamada'
+ visit_with_auth '/notifications', 'mentormentaro'
wait_for_vuejs
assert_selector '.header-notification-count', text: '21'
end
@@ -311,11 +311,11 @@ class NotificationsTest < ApplicationSystemTestCase
visit_with_auth '/notifications?status=unread', 'machida'
wait_for_vuejs
- assert_text "yamadaさんの提出物#{products(:product1).title}の担当になりました。"
+ assert_text "mentormentaroさんの提出物#{products(:product1).title}の担当になりました。"
if ActionMailer::Base.deliveries.present?
last_mail = ActionMailer::Base.deliveries.last
- assert_equal "[bootcamp] yamadaさんの提出物#{products(:product1).title}の担当になりました。", last_mail.subject
+ assert_equal "[bootcamp] mentormentaroさんの提出物#{products(:product1).title}の担当になりました。", last_mail.subject
end
end
@@ -328,7 +328,7 @@ class NotificationsTest < ApplicationSystemTestCase
visit_with_auth '/notifications?status=unread', 'komagata'
wait_for_vuejs
- assert_no_text "yamadaさんの提出物#{products(:product1).title}の担当になりました。"
+ assert_no_text "mentormentaroさんの提出物#{products(:product1).title}の担当になりました。"
end
test 'show the total number of mentions on the mentioned tab' do
diff --git a/test/system/practice/completion_test.rb b/test/system/practice/completion_test.rb
new file mode 100644
index 00000000000..c0c035b914a
--- /dev/null
+++ b/test/system/practice/completion_test.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'application_system_test_case'
+
+class Practice::CompletionTest < ApplicationSystemTestCase
+ test 'not logging-in user can access show' do
+ visit "/practices/#{practices(:practice1).id}/completion"
+ assert_text '「OS X Mountain Lionをクリーンインストールする」'
+ end
+
+ test 'ogp image is displayed' do
+ practice = practices(:practice1)
+ visit_with_auth "/practices/#{practice.id}/edit", 'komagata'
+ attach_file 'practice[ogp_image]', 'test/fixtures/files/practices/ogp_images/1.jpg', make_visible: true
+ click_button '更新する'
+
+ visit "/practices/#{practice.id}/completion"
+ assert_selector 'img'
+ end
+end
diff --git a/test/system/practices_test.rb b/test/system/practices_test.rb
index 862473e02ac..a2cc1aae966 100644
--- a/test/system/practices_test.rb
+++ b/test/system/practices_test.rb
@@ -30,12 +30,35 @@ class PracticesTest < ApplicationSystemTestCase
end
test "don't show [提出物を作る] link if user don't have to submit product" do
- visit_with_auth "/practices/#{practices(:practice1).id}", 'yamada'
+ visit_with_auth "/practices/#{practices(:practice1).id}", 'mentormentaro'
assert_no_link '提出物を作る'
end
+ # [TODO]完了Tweetの正式リリース後にコメントを外す
+ # test 'complete and tweet' do
+ # visit_with_auth "/practices/#{practices(:practice2).id}", 'kimura'
+ # find('#js-complete').click
+ # assert_text '喜びを Tweet する!'
+
+ # click_link '喜びを Tweet する!'
+ # switch_to_window(windows.last)
+ # assert_includes current_url, 'https://twitter.com/intent/tweet'
+ # end
+ #
+ # test 'can see tweet button when current_user has completed a practice' do
+ # visit_with_auth "/practices/#{practices(:practice1).id}", 'kimura'
+ # assert_text '完了 Tweet する'
+
+ # find(:label, '完了 Tweet する').click
+ # assert_text '喜びを Tweet する!'
+
+ # click_link '喜びを Tweet する!'
+ # switch_to_window(windows.last)
+ # assert_includes current_url, 'https://twitter.com/intent/tweet'
+ # end
+
test "only show when user isn't admin " do
- visit_with_auth "/practices/#{practices(:practice1).id}/edit", 'yamada'
+ visit_with_auth "/practices/#{practices(:practice1).id}/edit", 'mentormentaro'
assert_not_equal 'プラクティス編集', title
end
@@ -130,6 +153,18 @@ class PracticesTest < ApplicationSystemTestCase
click_button '更新する'
end
+ test 'add ogp image' do
+ practice = practices(:practice1)
+ visit_with_auth "/practices/#{practice.id}/edit", 'komagata'
+ attach_file 'practice[ogp_image]', 'test/fixtures/files/practices/ogp_images/1.jpg', make_visible: true
+ click_button '更新する'
+
+ visit_with_auth "/practices/#{practice.id}/edit", 'komagata'
+ within('form[name=practice]') do
+ assert_selector 'img'
+ end
+ end
+
test 'show setting for completed percentage' do
visit_with_auth '/practices/new', 'komagata'
assert_text '進捗の計算'
@@ -169,7 +204,7 @@ class PracticesTest < ApplicationSystemTestCase
test 'update practice in the role of mentor' do
practice = practices(:practice2)
- visit_with_auth "/practices/#{practice.id}/edit", 'yamada'
+ visit_with_auth "/practices/#{practice.id}/edit", 'mentormentaro'
within 'form[name=practice]' do
fill_in 'practice[title]', with: 'テストプラクティス'
within '#reference_books' do
diff --git a/test/system/product/self_assigned_test.rb b/test/system/product/self_assigned_test.rb
index 70719fb4eb6..f90dd39a515 100644
--- a/test/system/product/self_assigned_test.rb
+++ b/test/system/product/self_assigned_test.rb
@@ -74,7 +74,7 @@ class Product::SelfAssignedTest < ApplicationSystemTestCase
end
test 'display no replied products if click on self-assigned-tab' do
- checker = users(:yamada)
+ checker = users(:mentormentaro)
practice = practices(:practice5)
user = users(:kimura)
Product.create!(
@@ -83,7 +83,7 @@ class Product::SelfAssignedTest < ApplicationSystemTestCase
practice: practice,
checker_id: checker.id
)
- visit_with_auth '/products/self_assigned', 'yamada'
+ visit_with_auth '/products/self_assigned', 'mentormentaro'
wait_for_vuejs
titles = all('.thread-list-item-title__title').map { |t| t.text.gsub('★', '') }
names = all('.thread-list-item-meta .a-user-name').map(&:text)
@@ -92,7 +92,7 @@ class Product::SelfAssignedTest < ApplicationSystemTestCase
end
test 'display no replied products if click on no-replied-button' do
- checker = users(:yamada)
+ checker = users(:mentormentaro)
practice = practices(:practice5)
user = users(:kimura)
Product.create!(
@@ -101,7 +101,7 @@ class Product::SelfAssignedTest < ApplicationSystemTestCase
practice: practice,
checker_id: checker.id
)
- visit_with_auth '/products/self_assigned?target=self_assigned_no_replied', 'yamada'
+ visit_with_auth '/products/self_assigned?target=self_assigned_no_replied', 'mentormentaro'
wait_for_vuejs
titles = all('.thread-list-item-title__title').map { |t| t.text.gsub('★', '') }
names = all('.thread-list-item-meta .a-user-name').map(&:text)
@@ -110,7 +110,7 @@ class Product::SelfAssignedTest < ApplicationSystemTestCase
end
test 'display replied products if click on self_assigned_all-button' do
- checker = users(:yamada)
+ checker = users(:mentormentaro)
practice = practices(:practice5)
user = users(:kimura)
product = Product.create!(
@@ -119,18 +119,18 @@ class Product::SelfAssignedTest < ApplicationSystemTestCase
practice: practice,
checker_id: checker.id
)
- visit_with_auth "/products/#{product.id}", 'yamada'
+ visit_with_auth "/products/#{product.id}", 'mentormentaro'
within('.thread-comment-form__form') do
fill_in('new_comment[description]', with: 'test')
end
click_button 'コメントする'
- visit_with_auth '/products/self_assigned?target=self_assigned_all', 'yamada'
+ visit_with_auth '/products/self_assigned?target=self_assigned_all', 'mentormentaro'
wait_for_vuejs
titles = all('.thread-list-item-title__title').map { |t| t.text.gsub('★', '') }
names = all('.thread-list-item-meta .a-user-name').map(&:text)
assert_equal ["#{practice.title}の提出物"], titles
assert_equal [user.login_name], names
- visit_with_auth '/products/self_assigned?target=self_assigned_no_replied', 'yamada'
+ visit_with_auth '/products/self_assigned?target=self_assigned_no_replied', 'mentormentaro'
wait_for_vuejs
assert_text 'レビューを担当する未返信の提出物はありません'
end
diff --git a/test/system/product/unchecked_test.rb b/test/system/product/unchecked_test.rb
index 76969c22caa..073b4ec3def 100644
--- a/test/system/product/unchecked_test.rb
+++ b/test/system/product/unchecked_test.rb
@@ -57,7 +57,7 @@ class Product::UncheckedTest < ApplicationSystemTestCase
test 'not display products in listing unchecked if unchecked products all checked' do
checker = users(:komagata)
practice = practices(:practice47)
- user = users(:yamada)
+ user = users(:mentormentaro)
product = Product.create!(
body: 'test',
user: user,
@@ -86,6 +86,7 @@ class Product::UncheckedTest < ApplicationSystemTestCase
click_button 'コメントする'
visit_with_auth '/products/unchecked', 'komagata'
wait_for_vuejs
+ click_link '自分の担当'
assert_text product.practice.title
end
@@ -122,6 +123,7 @@ class Product::UncheckedTest < ApplicationSystemTestCase
click_button 'コメントする'
visit_with_auth '/products/unchecked?target=unchecked_all', 'komagata'
wait_for_vuejs
+ click_link '自分の担当'
assert_text product.practice.title
end
diff --git a/test/system/products_test.rb b/test/system/products_test.rb
index e5d508ce76f..4878487295e 100644
--- a/test/system/products_test.rb
+++ b/test/system/products_test.rb
@@ -4,7 +4,7 @@
class ProductsTest < ApplicationSystemTestCase
test 'see my product' do
- visit_with_auth "/products/#{products(:product1).id}", 'yamada'
+ visit_with_auth "/products/#{products(:product1).id}", 'mentormentaro'
assert_equal "#{products(:product1).practice.title}の提出物 | FJORD BOOT CAMP(フィヨルドブートキャンプ)", title
end
@@ -39,8 +39,48 @@ class ProductsTest < ApplicationSystemTestCase
assert_text 'プラクティスを完了するまで他の人の提出物は見れません。'
end
+ # [TODO]完了Tweetの正式リリース後にコメントを外す
+ # test 'can not see tweet button when current_user does not complete a practice' do
+ # visit_with_auth "/products/#{products(:product1).id}", 'yamada'
+ # assert_no_text '完了 Tweet する'
+ # end
+
+ # test 'display learning completion message when a user of the completed product visits show first time' do
+ # visit_with_auth "/products/#{products(:product65).id}", 'kimura'
+ # assert_text '喜びを Tweet する!'
+ # end
+
+ # test 'not display learning completion message when a user of the completed product visits after the second time' do
+ # visit_with_auth "/products/#{products(:product65).id}", 'kimura'
+ # find('label.card-main-actions__delete').click
+ # visit current_path
+ # assert_no_text '喜びを Tweet する!'
+ # end
+
+ # test 'not display learning completion message when a user whom the product does not belongs to visits show' do
+ # visit_with_auth "/products/#{products(:product65).id}", 'yamada'
+ # assert_no_text '喜びを Tweet する!'
+ # end
+
+ # test 'not display learning completion message when a user of the non-completed product visits show' do
+ # visit_with_auth "/products/#{products(:product6).id}", 'sotugyou'
+ # assert_no_text '喜びを Tweet する!'
+ # end
+
+ # test 'can see tweet button when current_user has completed a practice' do
+ # visit_with_auth "/products/#{products(:product2).id}", 'kimura'
+ # assert_text '完了 Tweet する'
+
+ # find('.a-button.is-tweet').click
+ # assert_text '喜びを Tweet する!'
+
+ # click_link '喜びを Tweet する!'
+ # switch_to_window(windows.last)
+ # assert_includes current_url, 'https://twitter.com/intent/tweet'
+ # end
+
test 'create product' do
- visit_with_auth "/products/new?practice_id=#{practices(:practice6).id}", 'yamada'
+ visit_with_auth "/products/new?practice_id=#{practices(:practice6).id}", 'mentormentaro'
within('#new_product') do
fill_in('product[body]', with: 'test')
end
@@ -50,7 +90,7 @@ class ProductsTest < ApplicationSystemTestCase
end
test 'create product change status submitted' do
- visit_with_auth "/products/new?practice_id=#{practices(:practice6).id}", 'yamada'
+ visit_with_auth "/products/new?practice_id=#{practices(:practice6).id}", 'mentormentaro'
within('#new_product') do
fill_in('product[body]', with: 'test')
end
@@ -63,7 +103,7 @@ class ProductsTest < ApplicationSystemTestCase
test 'update product' do
product = products(:product1)
- visit_with_auth "/products/#{product.id}/edit", 'yamada'
+ visit_with_auth "/products/#{product.id}/edit", 'mentormentaro'
within('form[name=product]') do
fill_in('product[body]', with: 'test')
end
@@ -73,7 +113,7 @@ class ProductsTest < ApplicationSystemTestCase
test 'update product if product page is WIP' do
product = products(:product1)
- visit_with_auth "/products/#{product.id}/edit", 'yamada'
+ visit_with_auth "/products/#{product.id}/edit", 'mentormentaro'
click_button 'WIP'
visit "/products/#{product.id}"
click_button '提出する'
@@ -82,7 +122,7 @@ class ProductsTest < ApplicationSystemTestCase
test 'delete product' do
product = products(:product1)
- visit_with_auth "/products/#{product.id}", 'yamada'
+ visit_with_auth "/products/#{product.id}", 'mentormentaro'
accept_confirm do
click_link '削除'
end
@@ -91,7 +131,7 @@ class ProductsTest < ApplicationSystemTestCase
end
test 'product has a comment form ' do
- visit_with_auth "/products/#{products(:product1).id}", 'yamada'
+ visit_with_auth "/products/#{products(:product1).id}", 'mentormentaro'
assert_selector '.thread-comment-form'
end
@@ -136,7 +176,7 @@ class ProductsTest < ApplicationSystemTestCase
end
test 'create product as WIP' do
- visit_with_auth "/products/new?practice_id=#{practices(:practice6).id}", 'yamada'
+ visit_with_auth "/products/new?practice_id=#{practices(:practice6).id}", 'mentormentaro'
within('#new_product') do
fill_in('product[body]', with: 'test')
end
@@ -146,7 +186,7 @@ class ProductsTest < ApplicationSystemTestCase
test 'update product as WIP' do
product = products(:product1)
- visit_with_auth "/products/#{product.id}/edit", 'yamada'
+ visit_with_auth "/products/#{product.id}/edit", 'mentormentaro'
within('form[name=product]') do
fill_in('product[body]', with: 'test')
end
@@ -156,7 +196,7 @@ class ProductsTest < ApplicationSystemTestCase
test 'update product as WIP with blank body to fail update and successfully get back to editor' do
product = products(:product1)
- visit_with_auth "/products/#{product.id}/edit", 'yamada'
+ visit_with_auth "/products/#{product.id}/edit", 'mentormentaro'
within('form[name=product]') do
fill_in('product[body]', with: '')
end
@@ -315,7 +355,7 @@ class ProductsTest < ApplicationSystemTestCase
test 'show user full_name next to user login_name' do
visit_with_auth "/products/#{products(:product1).id}", 'kimura'
- assert_text 'yamada (Yamada Taro)'
+ assert_text 'mentormentaro (メンタ 麺太郎)'
end
test 'notice accessibility to open products on products index' do
@@ -351,7 +391,7 @@ class ProductsTest < ApplicationSystemTestCase
end
test 'mentors can see block for mentors' do
- visit_with_auth "/products/#{products(:product2).id}", 'yamada'
+ visit_with_auth "/products/#{products(:product2).id}", 'mentormentaro'
assert_text '直近の日報'
assert_text 'プラクティスメモ'
assert_text 'ユーザーメモ'
diff --git a/test/system/report_templates_test.rb b/test/system/report_templates_test.rb
index dd47e567dc6..a6d66e85cfe 100644
--- a/test/system/report_templates_test.rb
+++ b/test/system/report_templates_test.rb
@@ -4,11 +4,11 @@
class ReportTemplatesTest < ApplicationSystemTestCase
test 'register template' do
- visit_with_auth '/reports/new', 'yamada'
+ visit_with_auth '/reports/new', 'mentormentaro'
click_button 'テンプレート登録'
fill_in('report_template[description]', with: 'create test')
click_button '登録'
- visit_with_auth '/reports/new', 'yamada'
+ visit_with_auth '/reports/new', 'mentormentaro'
click_button 'テンプレート変更'
assert_text 'create test'
end
diff --git a/test/system/reports_test.rb b/test/system/reports_test.rb
index 3c4917b4e33..7e2f771261b 100644
--- a/test/system/reports_test.rb
+++ b/test/system/reports_test.rb
@@ -367,7 +367,7 @@ class ReportsTest < ApplicationSystemTestCase
end
test 'report has a comment form ' do
- visit_with_auth "/reports/#{reports(:report1).id}", 'yamada'
+ visit_with_auth "/reports/#{reports(:report1).id}", 'mentormentaro'
assert_selector '.thread-comment-form'
end
@@ -597,4 +597,27 @@ class ReportsTest < ApplicationSystemTestCase
assert_selector 'h1', text: 'h1'
end
end
+
+ test 'automatically resizes textarea of a new report' do
+ visit_with_auth '/reports/new', 'komagata'
+ fill_in('report[description]', with: 'test')
+ height = find('#report_description').style('height')['height'][/\d+/].to_i
+
+ fill_in('report[description]', with: "\n1\n2\n3\n4\n5\n6\7\n8\n9\n10\n11\n12\n13\n14\n15")
+ after_height = find('#report_description').style('height')['height'][/\d+/].to_i
+
+ assert height < after_height
+ end
+
+ test 'automatically resizes textarea of an edit report' do
+ visit_with_auth report_path(reports(:report1)), 'komagata'
+ click_link '内容修正'
+
+ height = find('#report_description').style('height')['height'][/\d+/].to_i
+
+ fill_in('report[description]', with: "\n1\n2\n3\n4\n5\n6\7\n8\n9\n10\n11\n12\n13\n14\n15")
+ after_height = find('#report_description').style('height')['height'][/\d+/].to_i
+
+ assert height < after_height
+ end
end
diff --git a/test/system/searchables_test.rb b/test/system/searchables_test.rb
index ed049d8fff8..d4706801979 100644
--- a/test/system/searchables_test.rb
+++ b/test/system/searchables_test.rb
@@ -86,7 +86,7 @@ class SearchablesTest < ApplicationSystemTestCase
fill_in 'word', with: 'テストの日報'
end
find('#test-search').click
- assert_text 'yamada'
+ assert_text 'mentormentaro'
assert_css '.a-meta'
assert_no_text 'テストの回答'
end
diff --git a/test/system/talks_test.rb b/test/system/talks_test.rb
index 7dc0cc10437..0bb92377ae4 100644
--- a/test/system/talks_test.rb
+++ b/test/system/talks_test.rb
@@ -15,8 +15,8 @@ class TalksTest < ApplicationSystemTestCase
test 'cannot access other users talk page' do
visited_user = users(:hatsuno)
- visit_user = users(:yamada)
- visit_with_auth talk_path(visited_user.talk), 'yamada'
+ visit_user = users(:mentormentaro)
+ visit_with_auth talk_path(visited_user.talk), 'mentormentaro'
assert_no_text "#{visited_user.name}さんの相談部屋"
assert_text "#{visit_user.name}さんの相談部屋"
end
diff --git a/test/system/user/memos_test.rb b/test/system/user/memos_test.rb
index f99660f9ef3..b58e009681b 100644
--- a/test/system/user/memos_test.rb
+++ b/test/system/user/memos_test.rb
@@ -33,7 +33,7 @@ class User::MemoTest < ApplicationSystemTestCase
end
test 'mentor can see memo' do
- visit_with_auth user_path(users(:hatsuno)), 'yamada'
+ visit_with_auth user_path(users(:hatsuno)), 'mentormentaro'
assert_text 'メンター向けユーザーメモ'
end
diff --git a/test/system/user/reports_test.rb b/test/system/user/reports_test.rb
index d4b9bc553ef..9836c2c5a60 100644
--- a/test/system/user/reports_test.rb
+++ b/test/system/user/reports_test.rb
@@ -5,6 +5,6 @@
class User::ReportsTest < ApplicationSystemTestCase
test 'show listing reports' do
visit_with_auth "/users/#{users(:hatsuno).id}/reports", 'hatsuno'
- assert_equal 'hatsunoの日報 | FJORD BOOT CAMP(フィヨルドブートキャンプ)', title
+ assert_equal 'hatsuno | FJORD BOOT CAMP(フィヨルドブートキャンプ)', title
end
end
diff --git a/test/system/user/tags_test.rb b/test/system/user/tags_test.rb
index 7481f3c3e77..c668af1965a 100644
--- a/test/system/user/tags_test.rb
+++ b/test/system/user/tags_test.rb
@@ -12,7 +12,7 @@ class User::TagsTest < ApplicationSystemTestCase
click_on name
assert_text "タグ「#{name}」のユーザー"
assert_text user.name
- assert_no_text "#{user.name}のプロフィール"
+ assert_no_text 'プロフィール'
end
end
diff --git a/test/system/user/works_test.rb b/test/system/user/works_test.rb
index cc00ed6c03d..be1594b9ab2 100644
--- a/test/system/user/works_test.rb
+++ b/test/system/user/works_test.rb
@@ -5,6 +5,6 @@
class User::WorksTest < ApplicationSystemTestCase
test 'show portfolio' do
visit_with_auth "/users/#{users(:hatsuno).id}/portfolio", 'hatsuno'
- assert_equal 'hatsunoのポートフォリオ | FJORD BOOT CAMP(フィヨルドブートキャンプ)', title
+ assert_equal 'hatsuno | FJORD BOOT CAMP(フィヨルドブートキャンプ)', title
end
end
diff --git a/test/system/users_test.rb b/test/system/users_test.rb
index 969d26ea19d..d1365576538 100644
--- a/test/system/users_test.rb
+++ b/test/system/users_test.rb
@@ -5,7 +5,7 @@
class UsersTest < ApplicationSystemTestCase
test 'show profile' do
visit_with_auth "/users/#{users(:hatsuno).id}", 'hatsuno'
- assert_equal 'hatsunoのプロフィール | FJORD BOOT CAMP(フィヨルドブートキャンプ)', title
+ assert_equal 'hatsuno | FJORD BOOT CAMP(フィヨルドブートキャンプ)', title
end
test 'autolink profile when url is included' do
@@ -18,12 +18,12 @@ class UsersTest < ApplicationSystemTestCase
test 'access by other users' do
user = users(:hatsuno)
- visit_with_auth edit_admin_user_path(user.id), 'yamada'
+ visit_with_auth edit_admin_user_path(user.id), 'mentormentaro'
assert_text '管理者としてログインしてください'
end
test 'graduation date is displayed' do
- visit_with_auth "/users/#{users(:yamada).id}", 'komagata'
+ visit_with_auth "/users/#{users(:mentormentaro).id}", 'komagata'
assert_no_text '卒業日'
visit "/users/#{users(:sotugyou).id}"
@@ -58,7 +58,7 @@ class UsersTest < ApplicationSystemTestCase
visit_with_auth "/users/#{users(:komagata).id}", 'komagata'
assert_text '管理者'
- visit_with_auth "/users/#{users(:yamada).id}", 'yamada'
+ visit_with_auth "/users/#{users(:mentormentaro).id}", 'mentormentaro'
assert_text 'メンター'
visit_with_auth "/users/#{users(:advijirou).id}", 'advijirou'
@@ -153,7 +153,7 @@ class UsersTest < ApplicationSystemTestCase
end
test 'mentor access control' do
- visit_with_auth '/users', 'yamada'
+ visit_with_auth '/users', 'mentormentaro'
assert find_link('就職活動中')
assert find_link('全員')
end
@@ -236,4 +236,14 @@ class UsersTest < ApplicationSystemTestCase
visit current_path
assert_link(href: 'https://discord.com/channels/715806612824260640/123456789000000007')
end
+
+ test 'only admin can see link to talk on user list page' do
+ visit_with_auth '/users', 'komagata'
+ assert_link '相談部屋'
+ end
+
+ test 'not admin cannot see link to talk on user list page' do
+ visit_with_auth '/users', 'kimura'
+ assert_no_link '相談部屋'
+ end
end
diff --git a/test/test_helper.rb b/test/test_helper.rb
index 539c5a94429..b06cfc13fd5 100644
--- a/test/test_helper.rb
+++ b/test/test_helper.rb
@@ -12,6 +12,7 @@
Capybara.disable_animation = true
Webdrivers.cache_time = 86_400
Minitest::Retry.use! if ENV['CI']
+Selenium::WebDriver.logger.ignore(:browser_options) # TODO: Remove it when capybara-3.36.0 greater is released.
class ActiveSupport::TestCase
# Run tests in parallel with specified workers
@@ -27,3 +28,7 @@ class ActionDispatch::IntegrationTest
include Sorcery::TestHelpers::Rails::Integration
include APIHelper
end
+
+ActiveSupport.on_load(:action_dispatch_system_test_case) do
+ ActionDispatch::SystemTesting::Server.silence_puma = true
+end
diff --git a/yarn.lock b/yarn.lock
index ec2c52d08f0..8e53ce92d03 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,6 +2,13 @@
# yarn lockfile v1
+"@ampproject/remapping@^2.0.0":
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.0.tgz#72becdf17ee44b2d1ac5651fb12f1952c336fe23"
+ integrity sha512-d5RysTlJ7hmw5Tw4UxgxcY3lkMe92n8sXCcuLPAyIAHK6j8DefDwtGnVVDgOnv+RnEosulDJ9NPKQL27bDId0g==
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.0"
+
"@babel/code-frame@7.12.11":
version "7.12.11"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
@@ -16,33 +23,45 @@
dependencies:
"@babel/highlight" "^7.12.13"
-"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.15", "@babel/compat-data@^7.14.0":
+"@babel/code-frame@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789"
+ integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==
+ dependencies:
+ "@babel/highlight" "^7.16.7"
+
+"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.15":
version "7.14.0"
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.0.tgz#a901128bce2ad02565df95e6ecbf195cf9465919"
integrity sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==
-"@babel/core@^7.13.16":
- version "7.14.3"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.3.tgz#5395e30405f0776067fbd9cf0884f15bfb770a38"
- integrity sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==
- dependencies:
- "@babel/code-frame" "^7.12.13"
- "@babel/generator" "^7.14.3"
- "@babel/helper-compilation-targets" "^7.13.16"
- "@babel/helper-module-transforms" "^7.14.2"
- "@babel/helpers" "^7.14.0"
- "@babel/parser" "^7.14.3"
- "@babel/template" "^7.12.13"
- "@babel/traverse" "^7.14.2"
- "@babel/types" "^7.14.2"
+"@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8":
+ version "7.17.0"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.0.tgz#86850b8597ea6962089770952075dcaabb8dba34"
+ integrity sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==
+
+"@babel/core@^7.15.0":
+ version "7.17.0"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.0.tgz#16b8772b0a567f215839f689c5ded6bb20e864d5"
+ integrity sha512-x/5Ea+RO5MvF9ize5DeVICJoVrNv0Mi2RnIABrZEKYvPEpldXwauPkgvYA17cKa6WpU3LoYvYbuEMFtSNFsarA==
+ dependencies:
+ "@ampproject/remapping" "^2.0.0"
+ "@babel/code-frame" "^7.16.7"
+ "@babel/generator" "^7.17.0"
+ "@babel/helper-compilation-targets" "^7.16.7"
+ "@babel/helper-module-transforms" "^7.16.7"
+ "@babel/helpers" "^7.17.0"
+ "@babel/parser" "^7.17.0"
+ "@babel/template" "^7.16.7"
+ "@babel/traverse" "^7.17.0"
+ "@babel/types" "^7.17.0"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.2"
json5 "^2.1.2"
semver "^6.3.0"
- source-map "^0.5.0"
-"@babel/generator@^7.14.2", "@babel/generator@^7.14.3":
+"@babel/generator@^7.14.2":
version "7.14.3"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91"
integrity sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==
@@ -51,6 +70,15 @@
jsesc "^2.5.1"
source-map "^0.5.0"
+"@babel/generator@^7.17.0":
+ version "7.17.0"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.0.tgz#7bd890ba706cd86d3e2f727322346ffdbf98f65e"
+ integrity sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==
+ dependencies:
+ "@babel/types" "^7.17.0"
+ jsesc "^2.5.1"
+ source-map "^0.5.0"
+
"@babel/helper-annotate-as-pure@^7.12.13":
version "7.12.13"
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab"
@@ -58,15 +86,22 @@
dependencies:
"@babel/types" "^7.12.13"
-"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc"
- integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==
+"@babel/helper-annotate-as-pure@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862"
+ integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==
dependencies:
- "@babel/helper-explode-assignable-expression" "^7.12.13"
- "@babel/types" "^7.12.13"
+ "@babel/types" "^7.16.7"
-"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.16":
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b"
+ integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==
+ dependencies:
+ "@babel/helper-explode-assignable-expression" "^7.16.7"
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-compilation-targets@^7.13.0":
version "7.13.16"
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c"
integrity sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==
@@ -76,17 +111,28 @@
browserslist "^4.14.5"
semver "^6.3.0"
-"@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.14.0", "@babel/helper-create-class-features-plugin@^7.14.3":
- version "7.14.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.3.tgz#832111bcf4f57ca57a4c5b1a000fc125abc6554a"
- integrity sha512-BnEfi5+6J2Lte9LeiL6TxLWdIlEv9Woacc1qXzXBgbikcOzMRM2Oya5XGg/f/ngotv1ej2A/b+3iJH8wbS1+lQ==
+"@babel/helper-compilation-targets@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b"
+ integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.12.13"
- "@babel/helper-function-name" "^7.14.2"
- "@babel/helper-member-expression-to-functions" "^7.13.12"
- "@babel/helper-optimise-call-expression" "^7.12.13"
- "@babel/helper-replace-supers" "^7.14.3"
- "@babel/helper-split-export-declaration" "^7.12.13"
+ "@babel/compat-data" "^7.16.4"
+ "@babel/helper-validator-option" "^7.16.7"
+ browserslist "^4.17.5"
+ semver "^6.3.0"
+
+"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7":
+ version "7.17.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz#9699f14a88833a7e055ce57dcd3ffdcd25186b21"
+ integrity sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.16.7"
+ "@babel/helper-environment-visitor" "^7.16.7"
+ "@babel/helper-function-name" "^7.16.7"
+ "@babel/helper-member-expression-to-functions" "^7.16.7"
+ "@babel/helper-optimise-call-expression" "^7.16.7"
+ "@babel/helper-replace-supers" "^7.16.7"
+ "@babel/helper-split-export-declaration" "^7.16.7"
"@babel/helper-create-regexp-features-plugin@^7.12.13":
version "7.14.3"
@@ -96,10 +142,18 @@
"@babel/helper-annotate-as-pure" "^7.12.13"
regexpu-core "^4.7.1"
-"@babel/helper-define-polyfill-provider@^0.2.0":
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz#a640051772045fedaaecc6f0c6c69f02bdd34bf1"
- integrity sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw==
+"@babel/helper-create-regexp-features-plugin@^7.16.7":
+ version "7.17.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1"
+ integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.16.7"
+ regexpu-core "^5.0.1"
+
+"@babel/helper-define-polyfill-provider@^0.3.1":
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665"
+ integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==
dependencies:
"@babel/helper-compilation-targets" "^7.13.0"
"@babel/helper-module-imports" "^7.12.13"
@@ -110,14 +164,21 @@
resolve "^1.14.2"
semver "^6.1.2"
-"@babel/helper-explode-assignable-expression@^7.12.13":
- version "7.13.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz#17b5c59ff473d9f956f40ef570cf3a76ca12657f"
- integrity sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==
+"@babel/helper-environment-visitor@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7"
+ integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==
+ dependencies:
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-explode-assignable-expression@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a"
+ integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==
dependencies:
- "@babel/types" "^7.13.0"
+ "@babel/types" "^7.16.7"
-"@babel/helper-function-name@^7.12.13", "@babel/helper-function-name@^7.14.2":
+"@babel/helper-function-name@^7.14.2":
version "7.14.2"
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2"
integrity sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==
@@ -126,6 +187,15 @@
"@babel/template" "^7.12.13"
"@babel/types" "^7.14.2"
+"@babel/helper-function-name@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f"
+ integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==
+ dependencies:
+ "@babel/helper-get-function-arity" "^7.16.7"
+ "@babel/template" "^7.16.7"
+ "@babel/types" "^7.16.7"
+
"@babel/helper-get-function-arity@^7.12.13":
version "7.12.13"
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583"
@@ -133,86 +203,105 @@
dependencies:
"@babel/types" "^7.12.13"
-"@babel/helper-hoist-variables@^7.13.0":
- version "7.13.16"
- resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz#1b1651249e94b51f8f0d33439843e33e39775b30"
- integrity sha512-1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg==
+"@babel/helper-get-function-arity@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419"
+ integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==
dependencies:
- "@babel/traverse" "^7.13.15"
- "@babel/types" "^7.13.16"
+ "@babel/types" "^7.16.7"
-"@babel/helper-member-expression-to-functions@^7.13.12":
- version "7.13.12"
- resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72"
- integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==
+"@babel/helper-hoist-variables@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246"
+ integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==
dependencies:
- "@babel/types" "^7.13.12"
+ "@babel/types" "^7.16.7"
-"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.13.12":
+"@babel/helper-member-expression-to-functions@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz#42b9ca4b2b200123c3b7e726b0ae5153924905b0"
+ integrity sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==
+ dependencies:
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-module-imports@^7.12.13":
version "7.13.12"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977"
integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==
dependencies:
"@babel/types" "^7.13.12"
-"@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.14.0", "@babel/helper-module-transforms@^7.14.2":
- version "7.14.2"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz#ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5"
- integrity sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==
+"@babel/helper-module-imports@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437"
+ integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==
dependencies:
- "@babel/helper-module-imports" "^7.13.12"
- "@babel/helper-replace-supers" "^7.13.12"
- "@babel/helper-simple-access" "^7.13.12"
- "@babel/helper-split-export-declaration" "^7.12.13"
- "@babel/helper-validator-identifier" "^7.14.0"
- "@babel/template" "^7.12.13"
- "@babel/traverse" "^7.14.2"
- "@babel/types" "^7.14.2"
+ "@babel/types" "^7.16.7"
-"@babel/helper-optimise-call-expression@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea"
- integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==
+"@babel/helper-module-transforms@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz#7665faeb721a01ca5327ddc6bba15a5cb34b6a41"
+ integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==
dependencies:
- "@babel/types" "^7.12.13"
+ "@babel/helper-environment-visitor" "^7.16.7"
+ "@babel/helper-module-imports" "^7.16.7"
+ "@babel/helper-simple-access" "^7.16.7"
+ "@babel/helper-split-export-declaration" "^7.16.7"
+ "@babel/helper-validator-identifier" "^7.16.7"
+ "@babel/template" "^7.16.7"
+ "@babel/traverse" "^7.16.7"
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-optimise-call-expression@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2"
+ integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==
+ dependencies:
+ "@babel/types" "^7.16.7"
"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
version "7.13.0"
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af"
integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==
-"@babel/helper-remap-async-to-generator@^7.13.0":
- version "7.13.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209"
- integrity sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==
+"@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5"
+ integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==
+
+"@babel/helper-remap-async-to-generator@^7.16.8":
+ version "7.16.8"
+ resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3"
+ integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.12.13"
- "@babel/helper-wrap-function" "^7.13.0"
- "@babel/types" "^7.13.0"
+ "@babel/helper-annotate-as-pure" "^7.16.7"
+ "@babel/helper-wrap-function" "^7.16.8"
+ "@babel/types" "^7.16.8"
-"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.12", "@babel/helper-replace-supers@^7.14.3":
- version "7.14.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.3.tgz#ca17b318b859d107f0e9b722d58cf12d94436600"
- integrity sha512-Rlh8qEWZSTfdz+tgNV/N4gz1a0TMNwCUcENhMjHTHKp3LseYH5Jha0NSlyTQWMnjbYcwFt+bqAMqSLHVXkQ6UA==
+"@babel/helper-replace-supers@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1"
+ integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==
dependencies:
- "@babel/helper-member-expression-to-functions" "^7.13.12"
- "@babel/helper-optimise-call-expression" "^7.12.13"
- "@babel/traverse" "^7.14.2"
- "@babel/types" "^7.14.2"
+ "@babel/helper-environment-visitor" "^7.16.7"
+ "@babel/helper-member-expression-to-functions" "^7.16.7"
+ "@babel/helper-optimise-call-expression" "^7.16.7"
+ "@babel/traverse" "^7.16.7"
+ "@babel/types" "^7.16.7"
-"@babel/helper-simple-access@^7.13.12":
- version "7.13.12"
- resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6"
- integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==
+"@babel/helper-simple-access@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7"
+ integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==
dependencies:
- "@babel/types" "^7.13.12"
+ "@babel/types" "^7.16.7"
-"@babel/helper-skip-transparent-expression-wrappers@^7.12.1":
- version "7.12.1"
- resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf"
- integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==
+"@babel/helper-skip-transparent-expression-wrappers@^7.16.0":
+ version "7.16.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09"
+ integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==
dependencies:
- "@babel/types" "^7.12.1"
+ "@babel/types" "^7.16.0"
"@babel/helper-split-export-declaration@^7.12.13":
version "7.12.13"
@@ -221,34 +310,51 @@
dependencies:
"@babel/types" "^7.12.13"
-"@babel/helper-validator-identifier@^7.12.11", "@babel/helper-validator-identifier@^7.14.0":
+"@babel/helper-split-export-declaration@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b"
+ integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==
+ dependencies:
+ "@babel/types" "^7.16.7"
+
+"@babel/helper-validator-identifier@^7.14.0":
version "7.14.0"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288"
integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==
+"@babel/helper-validator-identifier@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad"
+ integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==
+
"@babel/helper-validator-option@^7.12.17":
version "7.12.17"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831"
integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==
-"@babel/helper-wrap-function@^7.13.0":
- version "7.13.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4"
- integrity sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==
+"@babel/helper-validator-option@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23"
+ integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==
+
+"@babel/helper-wrap-function@^7.16.8":
+ version "7.16.8"
+ resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200"
+ integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==
dependencies:
- "@babel/helper-function-name" "^7.12.13"
- "@babel/template" "^7.12.13"
- "@babel/traverse" "^7.13.0"
- "@babel/types" "^7.13.0"
+ "@babel/helper-function-name" "^7.16.7"
+ "@babel/template" "^7.16.7"
+ "@babel/traverse" "^7.16.8"
+ "@babel/types" "^7.16.8"
-"@babel/helpers@^7.14.0":
- version "7.14.0"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62"
- integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==
+"@babel/helpers@^7.17.0":
+ version "7.17.0"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.0.tgz#79cdf6c66a579f3a7b5e739371bc63ca0306886b"
+ integrity sha512-Xe/9NFxjPwELUvW2dsukcMZIp6XwPSbI4ojFBJuX5ramHuVE22SVcZIwqzdWo5uCgeTXW8qV97lMvSOjq+1+nQ==
dependencies:
- "@babel/template" "^7.12.13"
- "@babel/traverse" "^7.14.0"
- "@babel/types" "^7.14.0"
+ "@babel/template" "^7.16.7"
+ "@babel/traverse" "^7.17.0"
+ "@babel/types" "^7.17.0"
"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13":
version "7.14.0"
@@ -259,141 +365,170 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
-"@babel/parser@^7.12.13", "@babel/parser@^7.14.2", "@babel/parser@^7.14.3", "@babel/parser@^7.6.0", "@babel/parser@^7.9.6":
+"@babel/highlight@^7.16.7":
+ version "7.16.10"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88"
+ integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.16.7"
+ chalk "^2.0.0"
+ js-tokens "^4.0.0"
+
+"@babel/parser@^7.12.13", "@babel/parser@^7.14.2", "@babel/parser@^7.6.0", "@babel/parser@^7.9.6":
version "7.14.3"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.3.tgz#9b530eecb071fd0c93519df25c5ff9f14759f298"
integrity sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ==
-"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12":
- version "7.13.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz#a3484d84d0b549f3fc916b99ee4783f26fabad2a"
- integrity sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ==
+"@babel/parser@^7.16.7", "@babel/parser@^7.17.0":
+ version "7.17.0"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.0.tgz#f0ac33eddbe214e4105363bb17c3341c5ffcc43c"
+ integrity sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==
+
+"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050"
+ integrity sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==
dependencies:
- "@babel/helper-plugin-utils" "^7.13.0"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
- "@babel/plugin-proposal-optional-chaining" "^7.13.12"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-proposal-async-generator-functions@^7.14.2":
- version "7.14.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.2.tgz#3a2085abbf5d5f962d480dbc81347385ed62eb1e"
- integrity sha512-b1AM4F6fwck4N8ItZ/AtC4FP/cqZqmKRQ4FaTDutwSYyjuhtvsGEMLK4N/ztV/ImP40BjIDyMgBQAeAMsQYVFQ==
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz#cc001234dfc139ac45f6bcf801866198c8c72ff9"
+ integrity sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==
dependencies:
- "@babel/helper-plugin-utils" "^7.13.0"
- "@babel/helper-remap-async-to-generator" "^7.13.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
+ "@babel/plugin-proposal-optional-chaining" "^7.16.7"
+
+"@babel/plugin-proposal-async-generator-functions@^7.16.8":
+ version "7.16.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz#3bdd1ebbe620804ea9416706cd67d60787504bc8"
+ integrity sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-remap-async-to-generator" "^7.16.8"
"@babel/plugin-syntax-async-generators" "^7.8.4"
-"@babel/plugin-proposal-class-properties@^7.13.0":
- version "7.13.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37"
- integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==
+"@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz#925cad7b3b1a2fcea7e59ecc8eb5954f961f91b0"
+ integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.13.0"
- "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/helper-create-class-features-plugin" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-proposal-class-static-block@^7.13.11":
- version "7.14.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.3.tgz#5a527e2cae4a4753119c3a3e7f64ecae8ccf1360"
- integrity sha512-HEjzp5q+lWSjAgJtSluFDrGGosmwTgKwCXdDQZvhKsRlwv3YdkUEqxNrrjesJd+B9E9zvr1PVPVBvhYZ9msjvQ==
+"@babel/plugin-proposal-class-static-block@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz#712357570b612106ef5426d13dc433ce0f200c2a"
+ integrity sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.14.3"
- "@babel/helper-plugin-utils" "^7.13.0"
- "@babel/plugin-syntax-class-static-block" "^7.12.13"
+ "@babel/helper-create-class-features-plugin" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-class-static-block" "^7.14.5"
-"@babel/plugin-proposal-dynamic-import@^7.14.2":
- version "7.14.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.2.tgz#01ebabd7c381cff231fa43e302939a9de5be9d9f"
- integrity sha512-oxVQZIWFh91vuNEMKltqNsKLFWkOIyJc95k2Gv9lWVyDfPUQGSSlbDEgWuJUU1afGE9WwlzpucMZ3yDRHIItkA==
+"@babel/plugin-proposal-dynamic-import@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2"
+ integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==
dependencies:
- "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
-"@babel/plugin-proposal-export-namespace-from@^7.14.2":
- version "7.14.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.2.tgz#62542f94aa9ce8f6dba79eec698af22112253791"
- integrity sha512-sRxW3z3Zp3pFfLAgVEvzTFutTXax837oOatUIvSG9o5gRj9mKwm3br1Se5f4QalTQs9x4AzlA/HrCWbQIHASUQ==
+"@babel/plugin-proposal-export-namespace-from@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz#09de09df18445a5786a305681423ae63507a6163"
+ integrity sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==
dependencies:
- "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
-"@babel/plugin-proposal-json-strings@^7.14.2":
- version "7.14.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.2.tgz#830b4e2426a782e8b2878fbfe2cba85b70cbf98c"
- integrity sha512-w2DtsfXBBJddJacXMBhElGEYqCZQqN99Se1qeYn8DVLB33owlrlLftIbMzn5nz1OITfDVknXF433tBrLEAOEjA==
+"@babel/plugin-proposal-json-strings@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz#9732cb1d17d9a2626a08c5be25186c195b6fa6e8"
+ integrity sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-syntax-json-strings" "^7.8.3"
-"@babel/plugin-proposal-logical-assignment-operators@^7.14.2":
- version "7.14.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.2.tgz#222348c080a1678e0e74ea63fe76f275882d1fd7"
- integrity sha512-1JAZtUrqYyGsS7IDmFeaem+/LJqujfLZ2weLR9ugB0ufUPjzf8cguyVT1g5im7f7RXxuLq1xUxEzvm68uYRtGg==
+"@babel/plugin-proposal-logical-assignment-operators@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz#be23c0ba74deec1922e639832904be0bea73cdea"
+ integrity sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==
dependencies:
- "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
-"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.2":
- version "7.14.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.2.tgz#425b11dc62fc26939a2ab42cbba680bdf5734546"
- integrity sha512-ebR0zU9OvI2N4qiAC38KIAK75KItpIPTpAtd2r4OZmMFeKbKJpUFLYP2EuDut82+BmYi8sz42B+TfTptJ9iG5Q==
+"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz#141fc20b6857e59459d430c850a0011e36561d99"
+ integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
-"@babel/plugin-proposal-numeric-separator@^7.14.2":
- version "7.14.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.2.tgz#82b4cc06571143faf50626104b335dd71baa4f9e"
- integrity sha512-DcTQY9syxu9BpU3Uo94fjCB3LN9/hgPS8oUL7KrSW3bA2ePrKZZPJcc5y0hoJAM9dft3pGfErtEUvxXQcfLxUg==
+"@babel/plugin-proposal-numeric-separator@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9"
+ integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==
dependencies:
- "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
-"@babel/plugin-proposal-object-rest-spread@^7.13.8", "@babel/plugin-proposal-object-rest-spread@^7.14.2":
- version "7.14.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.2.tgz#e17d418f81cc103fedd4ce037e181c8056225abc"
- integrity sha512-hBIQFxwZi8GIp934+nj5uV31mqclC1aYDhctDu5khTi9PCCUOczyy0b34W0oE9U/eJXiqQaKyVsmjeagOaSlbw==
+"@babel/plugin-proposal-object-rest-spread@^7.14.7", "@babel/plugin-proposal-object-rest-spread@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz#94593ef1ddf37021a25bdcb5754c4a8d534b01d8"
+ integrity sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==
dependencies:
- "@babel/compat-data" "^7.14.0"
- "@babel/helper-compilation-targets" "^7.13.16"
- "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/compat-data" "^7.16.4"
+ "@babel/helper-compilation-targets" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
- "@babel/plugin-transform-parameters" "^7.14.2"
+ "@babel/plugin-transform-parameters" "^7.16.7"
-"@babel/plugin-proposal-optional-catch-binding@^7.14.2":
- version "7.14.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.2.tgz#150d4e58e525b16a9a1431bd5326c4eed870d717"
- integrity sha512-XtkJsmJtBaUbOxZsNk0Fvrv8eiqgneug0A6aqLFZ4TSkar2L5dSXWcnUKHgmjJt49pyB/6ZHvkr3dPgl9MOWRQ==
+"@babel/plugin-proposal-optional-catch-binding@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf"
+ integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==
dependencies:
- "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
-"@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.14.2":
- version "7.14.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.2.tgz#df8171a8b9c43ebf4c1dabe6311b432d83e1b34e"
- integrity sha512-qQByMRPwMZJainfig10BoaDldx/+VDtNcrA7qdNaEOAj6VXud+gfrkA8j4CRAU5HjnWREXqIpSpH30qZX1xivA==
+"@babel/plugin-proposal-optional-chaining@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz#7cd629564724816c0e8a969535551f943c64c39a"
+ integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==
dependencies:
- "@babel/helper-plugin-utils" "^7.13.0"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
-"@babel/plugin-proposal-private-methods@^7.13.0":
- version "7.13.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787"
- integrity sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==
+"@babel/plugin-proposal-private-methods@^7.16.11":
+ version "7.16.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz#e8df108288555ff259f4527dbe84813aac3a1c50"
+ integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.13.0"
- "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/helper-create-class-features-plugin" "^7.16.10"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-proposal-private-property-in-object@^7.14.0":
- version "7.14.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz#b1a1f2030586b9d3489cc26179d2eb5883277636"
- integrity sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg==
+"@babel/plugin-proposal-private-property-in-object@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz#b0b8cef543c2c3d57e59e2c611994861d46a3fce"
+ integrity sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.12.13"
- "@babel/helper-create-class-features-plugin" "^7.14.0"
- "@babel/helper-plugin-utils" "^7.13.0"
- "@babel/plugin-syntax-private-property-in-object" "^7.14.0"
+ "@babel/helper-annotate-as-pure" "^7.16.7"
+ "@babel/helper-create-class-features-plugin" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+
+"@babel/plugin-proposal-unicode-property-regex@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz#635d18eb10c6214210ffc5ff4932552de08188a2"
+ integrity sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
+"@babel/plugin-proposal-unicode-property-regex@^7.4.4":
version "7.12.13"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba"
integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==
@@ -415,12 +550,12 @@
dependencies:
"@babel/helper-plugin-utils" "^7.12.13"
-"@babel/plugin-syntax-class-static-block@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz#8e3d674b0613e67975ceac2776c97b60cafc5c9c"
- integrity sha512-ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A==
+"@babel/plugin-syntax-class-static-block@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406"
+ integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==
dependencies:
- "@babel/helper-plugin-utils" "^7.12.13"
+ "@babel/helper-plugin-utils" "^7.14.5"
"@babel/plugin-syntax-dynamic-import@^7.8.3":
version "7.8.3"
@@ -485,78 +620,87 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-private-property-in-object@^7.14.0":
- version "7.14.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz#762a4babec61176fec6c88480dec40372b140c0b"
- integrity sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w==
+"@babel/plugin-syntax-private-property-in-object@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad"
+ integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==
dependencies:
- "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/helper-plugin-utils" "^7.14.5"
-"@babel/plugin-syntax-top-level-await@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178"
- integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==
+"@babel/plugin-syntax-top-level-await@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
+ integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
dependencies:
- "@babel/helper-plugin-utils" "^7.12.13"
+ "@babel/helper-plugin-utils" "^7.14.5"
-"@babel/plugin-transform-arrow-functions@^7.13.0":
- version "7.13.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae"
- integrity sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==
+"@babel/plugin-transform-arrow-functions@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz#44125e653d94b98db76369de9c396dc14bef4154"
+ integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-transform-async-to-generator@^7.13.0":
- version "7.13.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f"
- integrity sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==
+"@babel/plugin-transform-async-to-generator@^7.16.8":
+ version "7.16.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz#b83dff4b970cf41f1b819f8b49cc0cfbaa53a808"
+ integrity sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==
dependencies:
- "@babel/helper-module-imports" "^7.12.13"
- "@babel/helper-plugin-utils" "^7.13.0"
- "@babel/helper-remap-async-to-generator" "^7.13.0"
+ "@babel/helper-module-imports" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-remap-async-to-generator" "^7.16.8"
-"@babel/plugin-transform-block-scoped-functions@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4"
- integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==
+"@babel/plugin-transform-block-scoped-functions@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620"
+ integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==
dependencies:
- "@babel/helper-plugin-utils" "^7.12.13"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-transform-block-scoping@^7.14.2":
- version "7.14.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.2.tgz#761cb12ab5a88d640ad4af4aa81f820e6b5fdf5c"
- integrity sha512-neZZcP19NugZZqNwMTH+KoBjx5WyvESPSIOQb4JHpfd+zPfqcH65RMu5xJju5+6q/Y2VzYrleQTr+b6METyyxg==
+"@babel/plugin-transform-block-scoping@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz#f50664ab99ddeaee5bc681b8f3a6ea9d72ab4f87"
+ integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-transform-classes@^7.14.2":
- version "7.14.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.2.tgz#3f1196c5709f064c252ad056207d87b7aeb2d03d"
- integrity sha512-7oafAVcucHquA/VZCsXv/gmuiHeYd64UJyyTYU+MPfNu0KeNlxw06IeENBO8bJjXVbolu+j1MM5aKQtH1OMCNg==
+"@babel/plugin-transform-classes@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz#8f4b9562850cd973de3b498f1218796eb181ce00"
+ integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.12.13"
- "@babel/helper-function-name" "^7.14.2"
- "@babel/helper-optimise-call-expression" "^7.12.13"
- "@babel/helper-plugin-utils" "^7.13.0"
- "@babel/helper-replace-supers" "^7.13.12"
- "@babel/helper-split-export-declaration" "^7.12.13"
+ "@babel/helper-annotate-as-pure" "^7.16.7"
+ "@babel/helper-environment-visitor" "^7.16.7"
+ "@babel/helper-function-name" "^7.16.7"
+ "@babel/helper-optimise-call-expression" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-replace-supers" "^7.16.7"
+ "@babel/helper-split-export-declaration" "^7.16.7"
globals "^11.1.0"
-"@babel/plugin-transform-computed-properties@^7.13.0":
- version "7.13.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed"
- integrity sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==
+"@babel/plugin-transform-computed-properties@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz#66dee12e46f61d2aae7a73710f591eb3df616470"
+ integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==
dependencies:
- "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-transform-destructuring@^7.13.17":
- version "7.13.17"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz#678d96576638c19d5b36b332504d3fd6e06dea27"
- integrity sha512-UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA==
+"@babel/plugin-transform-destructuring@^7.14.7", "@babel/plugin-transform-destructuring@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz#ca9588ae2d63978a4c29d3f33282d8603f618e23"
+ integrity sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==
dependencies:
- "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-dotall-regex@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241"
+ integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-transform-dotall-regex@^7.12.13", "@babel/plugin-transform-dotall-regex@^7.4.4":
+"@babel/plugin-transform-dotall-regex@^7.4.4":
version "7.12.13"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad"
integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==
@@ -564,229 +708,231 @@
"@babel/helper-create-regexp-features-plugin" "^7.12.13"
"@babel/helper-plugin-utils" "^7.12.13"
-"@babel/plugin-transform-duplicate-keys@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de"
- integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==
+"@babel/plugin-transform-duplicate-keys@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz#2207e9ca8f82a0d36a5a67b6536e7ef8b08823c9"
+ integrity sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==
dependencies:
- "@babel/helper-plugin-utils" "^7.12.13"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-transform-exponentiation-operator@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1"
- integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==
+"@babel/plugin-transform-exponentiation-operator@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b"
+ integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==
dependencies:
- "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13"
- "@babel/helper-plugin-utils" "^7.12.13"
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-transform-for-of@^7.13.0":
- version "7.13.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz#c799f881a8091ac26b54867a845c3e97d2696062"
- integrity sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==
+"@babel/plugin-transform-for-of@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz#649d639d4617dff502a9a158c479b3b556728d8c"
+ integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==
dependencies:
- "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-transform-function-name@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051"
- integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==
+"@babel/plugin-transform-function-name@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf"
+ integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==
dependencies:
- "@babel/helper-function-name" "^7.12.13"
- "@babel/helper-plugin-utils" "^7.12.13"
+ "@babel/helper-compilation-targets" "^7.16.7"
+ "@babel/helper-function-name" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-transform-literals@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9"
- integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==
+"@babel/plugin-transform-literals@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz#254c9618c5ff749e87cb0c0cef1a0a050c0bdab1"
+ integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.12.13"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-transform-member-expression-literals@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40"
- integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==
+"@babel/plugin-transform-member-expression-literals@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384"
+ integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==
dependencies:
- "@babel/helper-plugin-utils" "^7.12.13"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-transform-modules-amd@^7.14.2":
- version "7.14.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.2.tgz#6622806fe1a7c07a1388444222ef9535f2ca17b0"
- integrity sha512-hPC6XBswt8P3G2D1tSV2HzdKvkqOpmbyoy+g73JG0qlF/qx2y3KaMmXb1fLrpmWGLZYA0ojCvaHdzFWjlmV+Pw==
+"@babel/plugin-transform-modules-amd@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz#b28d323016a7daaae8609781d1f8c9da42b13186"
+ integrity sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==
dependencies:
- "@babel/helper-module-transforms" "^7.14.2"
- "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/helper-module-transforms" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
babel-plugin-dynamic-import-node "^2.3.3"
-"@babel/plugin-transform-modules-commonjs@^7.14.0":
- version "7.14.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz#52bc199cb581e0992edba0f0f80356467587f161"
- integrity sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ==
+"@babel/plugin-transform-modules-commonjs@^7.16.8":
+ version "7.16.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz#cdee19aae887b16b9d331009aa9a219af7c86afe"
+ integrity sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==
dependencies:
- "@babel/helper-module-transforms" "^7.14.0"
- "@babel/helper-plugin-utils" "^7.13.0"
- "@babel/helper-simple-access" "^7.13.12"
+ "@babel/helper-module-transforms" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-simple-access" "^7.16.7"
babel-plugin-dynamic-import-node "^2.3.3"
-"@babel/plugin-transform-modules-systemjs@^7.13.8":
- version "7.13.8"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3"
- integrity sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==
+"@babel/plugin-transform-modules-systemjs@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz#887cefaef88e684d29558c2b13ee0563e287c2d7"
+ integrity sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==
dependencies:
- "@babel/helper-hoist-variables" "^7.13.0"
- "@babel/helper-module-transforms" "^7.13.0"
- "@babel/helper-plugin-utils" "^7.13.0"
- "@babel/helper-validator-identifier" "^7.12.11"
+ "@babel/helper-hoist-variables" "^7.16.7"
+ "@babel/helper-module-transforms" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-validator-identifier" "^7.16.7"
babel-plugin-dynamic-import-node "^2.3.3"
-"@babel/plugin-transform-modules-umd@^7.14.0":
- version "7.14.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz#2f8179d1bbc9263665ce4a65f305526b2ea8ac34"
- integrity sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw==
+"@babel/plugin-transform-modules-umd@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz#23dad479fa585283dbd22215bff12719171e7618"
+ integrity sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==
dependencies:
- "@babel/helper-module-transforms" "^7.14.0"
- "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/helper-module-transforms" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-transform-named-capturing-groups-regex@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9"
- integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==
+"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8":
+ version "7.16.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz#7f860e0e40d844a02c9dcf9d84965e7dfd666252"
+ integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.12.13"
+ "@babel/helper-create-regexp-features-plugin" "^7.16.7"
-"@babel/plugin-transform-new-target@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c"
- integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==
+"@babel/plugin-transform-new-target@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz#9967d89a5c243818e0800fdad89db22c5f514244"
+ integrity sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==
dependencies:
- "@babel/helper-plugin-utils" "^7.12.13"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-transform-object-super@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7"
- integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==
+"@babel/plugin-transform-object-super@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94"
+ integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==
dependencies:
- "@babel/helper-plugin-utils" "^7.12.13"
- "@babel/helper-replace-supers" "^7.12.13"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-replace-supers" "^7.16.7"
-"@babel/plugin-transform-parameters@^7.14.2":
- version "7.14.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.2.tgz#e4290f72e0e9e831000d066427c4667098decc31"
- integrity sha512-NxoVmA3APNCC1JdMXkdYXuQS+EMdqy0vIwyDHeKHiJKRxmp1qGSdb0JLEIoPRhkx6H/8Qi3RJ3uqOCYw8giy9A==
+"@babel/plugin-transform-parameters@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz#a1721f55b99b736511cb7e0152f61f17688f331f"
+ integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==
dependencies:
- "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-transform-property-literals@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81"
- integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==
+"@babel/plugin-transform-property-literals@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55"
+ integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==
dependencies:
- "@babel/helper-plugin-utils" "^7.12.13"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-transform-regenerator@^7.13.15":
- version "7.13.15"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz#e5eb28945bf8b6563e7f818945f966a8d2997f39"
- integrity sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ==
+"@babel/plugin-transform-regenerator@^7.14.5", "@babel/plugin-transform-regenerator@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz#9e7576dc476cb89ccc5096fff7af659243b4adeb"
+ integrity sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==
dependencies:
regenerator-transform "^0.14.2"
-"@babel/plugin-transform-reserved-words@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695"
- integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==
+"@babel/plugin-transform-reserved-words@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz#1d798e078f7c5958eec952059c460b220a63f586"
+ integrity sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==
dependencies:
- "@babel/helper-plugin-utils" "^7.12.13"
+ "@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-transform-runtime@^7.13.15":
- version "7.14.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.3.tgz#1fd885a2d0de1d3c223795a4e9be72c2db4515cf"
- integrity sha512-t960xbi8wpTFE623ef7sd+UpEC5T6EEguQlTBJDEO05+XwnIWVfuqLw/vdLWY6IdFmtZE+65CZAfByT39zRpkg==
+"@babel/plugin-transform-runtime@^7.15.0":
+ version "7.17.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz#0a2e08b5e2b2d95c4b1d3b3371a2180617455b70"
+ integrity sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==
dependencies:
- "@babel/helper-module-imports" "^7.13.12"
- "@babel/helper-plugin-utils" "^7.13.0"
- babel-plugin-polyfill-corejs2 "^0.2.0"
- babel-plugin-polyfill-corejs3 "^0.2.0"
- babel-plugin-polyfill-regenerator "^0.2.0"
+ "@babel/helper-module-imports" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ babel-plugin-polyfill-corejs2 "^0.3.0"
+ babel-plugin-polyfill-corejs3 "^0.5.0"
+ babel-plugin-polyfill-regenerator "^0.3.0"
semver "^6.3.0"
-"@babel/plugin-transform-shorthand-properties@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad"
- integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.12.13"
-
-"@babel/plugin-transform-spread@^7.13.0":
- version "7.13.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd"
- integrity sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.13.0"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
-
-"@babel/plugin-transform-sticky-regex@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f"
- integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.12.13"
-
-"@babel/plugin-transform-template-literals@^7.13.0":
- version "7.13.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d"
- integrity sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.13.0"
-
-"@babel/plugin-transform-typeof-symbol@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f"
- integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.12.13"
-
-"@babel/plugin-transform-unicode-escapes@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74"
- integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.12.13"
-
-"@babel/plugin-transform-unicode-regex@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac"
- integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==
- dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.12.13"
- "@babel/helper-plugin-utils" "^7.12.13"
-
-"@babel/preset-env@^7.13.15":
- version "7.14.2"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.2.tgz#e80612965da73579c84ad2f963c2359c71524ed5"
- integrity sha512-7dD7lVT8GMrE73v4lvDEb85cgcQhdES91BSD7jS/xjC6QY8PnRhux35ac+GCpbiRhp8crexBvZZqnaL6VrY8TQ==
- dependencies:
- "@babel/compat-data" "^7.14.0"
- "@babel/helper-compilation-targets" "^7.13.16"
- "@babel/helper-plugin-utils" "^7.13.0"
- "@babel/helper-validator-option" "^7.12.17"
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12"
- "@babel/plugin-proposal-async-generator-functions" "^7.14.2"
- "@babel/plugin-proposal-class-properties" "^7.13.0"
- "@babel/plugin-proposal-class-static-block" "^7.13.11"
- "@babel/plugin-proposal-dynamic-import" "^7.14.2"
- "@babel/plugin-proposal-export-namespace-from" "^7.14.2"
- "@babel/plugin-proposal-json-strings" "^7.14.2"
- "@babel/plugin-proposal-logical-assignment-operators" "^7.14.2"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.2"
- "@babel/plugin-proposal-numeric-separator" "^7.14.2"
- "@babel/plugin-proposal-object-rest-spread" "^7.14.2"
- "@babel/plugin-proposal-optional-catch-binding" "^7.14.2"
- "@babel/plugin-proposal-optional-chaining" "^7.14.2"
- "@babel/plugin-proposal-private-methods" "^7.13.0"
- "@babel/plugin-proposal-private-property-in-object" "^7.14.0"
- "@babel/plugin-proposal-unicode-property-regex" "^7.12.13"
+"@babel/plugin-transform-shorthand-properties@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a"
+ integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-spread@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz#a303e2122f9f12e0105daeedd0f30fb197d8ff44"
+ integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
+
+"@babel/plugin-transform-sticky-regex@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660"
+ integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-template-literals@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz#f3d1c45d28967c8e80f53666fc9c3e50618217ab"
+ integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-typeof-symbol@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz#9cdbe622582c21368bd482b660ba87d5545d4f7e"
+ integrity sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-unicode-escapes@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz#da8717de7b3287a2c6d659750c964f302b31ece3"
+ integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/plugin-transform-unicode-regex@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2"
+ integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+
+"@babel/preset-env@^7.15.0":
+ version "7.16.11"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982"
+ integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==
+ dependencies:
+ "@babel/compat-data" "^7.16.8"
+ "@babel/helper-compilation-targets" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-validator-option" "^7.16.7"
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7"
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7"
+ "@babel/plugin-proposal-async-generator-functions" "^7.16.8"
+ "@babel/plugin-proposal-class-properties" "^7.16.7"
+ "@babel/plugin-proposal-class-static-block" "^7.16.7"
+ "@babel/plugin-proposal-dynamic-import" "^7.16.7"
+ "@babel/plugin-proposal-export-namespace-from" "^7.16.7"
+ "@babel/plugin-proposal-json-strings" "^7.16.7"
+ "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7"
+ "@babel/plugin-proposal-numeric-separator" "^7.16.7"
+ "@babel/plugin-proposal-object-rest-spread" "^7.16.7"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.16.7"
+ "@babel/plugin-proposal-optional-chaining" "^7.16.7"
+ "@babel/plugin-proposal-private-methods" "^7.16.11"
+ "@babel/plugin-proposal-private-property-in-object" "^7.16.7"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.16.7"
"@babel/plugin-syntax-async-generators" "^7.8.4"
"@babel/plugin-syntax-class-properties" "^7.12.13"
- "@babel/plugin-syntax-class-static-block" "^7.12.13"
+ "@babel/plugin-syntax-class-static-block" "^7.14.5"
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
"@babel/plugin-syntax-json-strings" "^7.8.3"
@@ -796,52 +942,52 @@
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
- "@babel/plugin-syntax-private-property-in-object" "^7.14.0"
- "@babel/plugin-syntax-top-level-await" "^7.12.13"
- "@babel/plugin-transform-arrow-functions" "^7.13.0"
- "@babel/plugin-transform-async-to-generator" "^7.13.0"
- "@babel/plugin-transform-block-scoped-functions" "^7.12.13"
- "@babel/plugin-transform-block-scoping" "^7.14.2"
- "@babel/plugin-transform-classes" "^7.14.2"
- "@babel/plugin-transform-computed-properties" "^7.13.0"
- "@babel/plugin-transform-destructuring" "^7.13.17"
- "@babel/plugin-transform-dotall-regex" "^7.12.13"
- "@babel/plugin-transform-duplicate-keys" "^7.12.13"
- "@babel/plugin-transform-exponentiation-operator" "^7.12.13"
- "@babel/plugin-transform-for-of" "^7.13.0"
- "@babel/plugin-transform-function-name" "^7.12.13"
- "@babel/plugin-transform-literals" "^7.12.13"
- "@babel/plugin-transform-member-expression-literals" "^7.12.13"
- "@babel/plugin-transform-modules-amd" "^7.14.2"
- "@babel/plugin-transform-modules-commonjs" "^7.14.0"
- "@babel/plugin-transform-modules-systemjs" "^7.13.8"
- "@babel/plugin-transform-modules-umd" "^7.14.0"
- "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13"
- "@babel/plugin-transform-new-target" "^7.12.13"
- "@babel/plugin-transform-object-super" "^7.12.13"
- "@babel/plugin-transform-parameters" "^7.14.2"
- "@babel/plugin-transform-property-literals" "^7.12.13"
- "@babel/plugin-transform-regenerator" "^7.13.15"
- "@babel/plugin-transform-reserved-words" "^7.12.13"
- "@babel/plugin-transform-shorthand-properties" "^7.12.13"
- "@babel/plugin-transform-spread" "^7.13.0"
- "@babel/plugin-transform-sticky-regex" "^7.12.13"
- "@babel/plugin-transform-template-literals" "^7.13.0"
- "@babel/plugin-transform-typeof-symbol" "^7.12.13"
- "@babel/plugin-transform-unicode-escapes" "^7.12.13"
- "@babel/plugin-transform-unicode-regex" "^7.12.13"
- "@babel/preset-modules" "^0.1.4"
- "@babel/types" "^7.14.2"
- babel-plugin-polyfill-corejs2 "^0.2.0"
- babel-plugin-polyfill-corejs3 "^0.2.0"
- babel-plugin-polyfill-regenerator "^0.2.0"
- core-js-compat "^3.9.0"
+ "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+ "@babel/plugin-syntax-top-level-await" "^7.14.5"
+ "@babel/plugin-transform-arrow-functions" "^7.16.7"
+ "@babel/plugin-transform-async-to-generator" "^7.16.8"
+ "@babel/plugin-transform-block-scoped-functions" "^7.16.7"
+ "@babel/plugin-transform-block-scoping" "^7.16.7"
+ "@babel/plugin-transform-classes" "^7.16.7"
+ "@babel/plugin-transform-computed-properties" "^7.16.7"
+ "@babel/plugin-transform-destructuring" "^7.16.7"
+ "@babel/plugin-transform-dotall-regex" "^7.16.7"
+ "@babel/plugin-transform-duplicate-keys" "^7.16.7"
+ "@babel/plugin-transform-exponentiation-operator" "^7.16.7"
+ "@babel/plugin-transform-for-of" "^7.16.7"
+ "@babel/plugin-transform-function-name" "^7.16.7"
+ "@babel/plugin-transform-literals" "^7.16.7"
+ "@babel/plugin-transform-member-expression-literals" "^7.16.7"
+ "@babel/plugin-transform-modules-amd" "^7.16.7"
+ "@babel/plugin-transform-modules-commonjs" "^7.16.8"
+ "@babel/plugin-transform-modules-systemjs" "^7.16.7"
+ "@babel/plugin-transform-modules-umd" "^7.16.7"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8"
+ "@babel/plugin-transform-new-target" "^7.16.7"
+ "@babel/plugin-transform-object-super" "^7.16.7"
+ "@babel/plugin-transform-parameters" "^7.16.7"
+ "@babel/plugin-transform-property-literals" "^7.16.7"
+ "@babel/plugin-transform-regenerator" "^7.16.7"
+ "@babel/plugin-transform-reserved-words" "^7.16.7"
+ "@babel/plugin-transform-shorthand-properties" "^7.16.7"
+ "@babel/plugin-transform-spread" "^7.16.7"
+ "@babel/plugin-transform-sticky-regex" "^7.16.7"
+ "@babel/plugin-transform-template-literals" "^7.16.7"
+ "@babel/plugin-transform-typeof-symbol" "^7.16.7"
+ "@babel/plugin-transform-unicode-escapes" "^7.16.7"
+ "@babel/plugin-transform-unicode-regex" "^7.16.7"
+ "@babel/preset-modules" "^0.1.5"
+ "@babel/types" "^7.16.8"
+ babel-plugin-polyfill-corejs2 "^0.3.0"
+ babel-plugin-polyfill-corejs3 "^0.5.0"
+ babel-plugin-polyfill-regenerator "^0.3.0"
+ core-js-compat "^3.20.2"
semver "^6.3.0"
-"@babel/preset-modules@^0.1.4":
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e"
- integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==
+"@babel/preset-modules@^0.1.5":
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9"
+ integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
@@ -849,7 +995,14 @@
"@babel/types" "^7.4.4"
esutils "^2.0.2"
-"@babel/runtime@^7.13.17", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4":
+"@babel/runtime@^7.15.3":
+ version "7.17.0"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.0.tgz#b8d142fc0f7664fb3d9b5833fd40dcbab89276c0"
+ integrity sha512-etcO/ohMNaNA2UBdaXBBSX/3aEzFMRrVfaPv8Ptc0k+cWpWW0QFiGZ2XnVqQZI1Cf734LbPGmqBKWESfW4x/dQ==
+ dependencies:
+ regenerator-runtime "^0.13.4"
+
+"@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4":
version "7.14.0"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6"
integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==
@@ -865,7 +1018,16 @@
"@babel/parser" "^7.12.13"
"@babel/types" "^7.12.13"
-"@babel/traverse@^7.13.0", "@babel/traverse@^7.13.15", "@babel/traverse@^7.14.0", "@babel/traverse@^7.14.2":
+"@babel/template@^7.16.7":
+ version "7.16.7"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155"
+ integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==
+ dependencies:
+ "@babel/code-frame" "^7.16.7"
+ "@babel/parser" "^7.16.7"
+ "@babel/types" "^7.16.7"
+
+"@babel/traverse@^7.13.0":
version "7.14.2"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b"
integrity sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==
@@ -879,7 +1041,23 @@
debug "^4.1.0"
globals "^11.1.0"
-"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.16", "@babel/types@^7.14.0", "@babel/types@^7.14.2", "@babel/types@^7.4.4", "@babel/types@^7.6.1", "@babel/types@^7.9.6":
+"@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.0":
+ version "7.17.0"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.0.tgz#3143e5066796408ccc880a33ecd3184f3e75cd30"
+ integrity sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==
+ dependencies:
+ "@babel/code-frame" "^7.16.7"
+ "@babel/generator" "^7.17.0"
+ "@babel/helper-environment-visitor" "^7.16.7"
+ "@babel/helper-function-name" "^7.16.7"
+ "@babel/helper-hoist-variables" "^7.16.7"
+ "@babel/helper-split-export-declaration" "^7.16.7"
+ "@babel/parser" "^7.17.0"
+ "@babel/types" "^7.17.0"
+ debug "^4.1.0"
+ globals "^11.1.0"
+
+"@babel/types@^7.12.13", "@babel/types@^7.13.12", "@babel/types@^7.14.2", "@babel/types@^7.4.4", "@babel/types@^7.6.1", "@babel/types@^7.9.6":
version "7.14.2"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.2.tgz#4208ae003107ef8a057ea8333e56eb64d2f6a2c3"
integrity sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==
@@ -887,6 +1065,14 @@
"@babel/helper-validator-identifier" "^7.14.0"
to-fast-properties "^2.0.0"
+"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0":
+ version "7.17.0"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b"
+ integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.16.7"
+ to-fast-properties "^2.0.0"
+
"@csstools/convert-colors@^1.4.0":
version "1.4.0"
resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7"
@@ -914,6 +1100,24 @@
dependencies:
vue "^2.6.10"
+"@jridgewell/resolve-uri@^3.0.3":
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz#b876e3feefb9c8d3aa84014da28b5e52a0640d72"
+ integrity sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg==
+
+"@jridgewell/sourcemap-codec@^1.4.10":
+ version "1.4.10"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.10.tgz#baf57b4e2a690d4f38560171f91783656b7f8186"
+ integrity sha512-Ht8wIW5v165atIX1p+JvKR5ONzUyF4Ac8DZIQ5kZs9zrb6M8SJNXpx1zn04rn65VjBMygRoMXcyYwNK0fT7bEg==
+
+"@jridgewell/trace-mapping@^0.3.0":
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.2.tgz#e051581782a770c30ba219634f2019241c5d3cde"
+ integrity sha512-9KzzH4kMjA2XmBRHfqG2/Vtl7s92l6uNDd0wW7frDE+EUvQFGqNXhWp0UGJjSkt3v2AYjzOZn1QO9XaTNJIt1Q==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.0.3"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+
"@npmcli/move-file@^1.0.1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674"
@@ -929,42 +1133,42 @@
dependencies:
pug-lexer "^5.0.0"
-"@rails/webpacker@5.3.0":
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/@rails/webpacker/-/webpacker-5.3.0.tgz#9d7a615735f850572b9c5e2ad4c57f4af70d70fd"
- integrity sha512-cpzrtrsMVi6WgRUzL63bMF+oa98DiL8cKXUZzDFLeElRu7qArG+cxU8grmaPbTmFqQEqVGsbJT0c6fubbFtwVA==
+"@rails/webpacker@5.4.3":
+ version "5.4.3"
+ resolved "https://registry.yarnpkg.com/@rails/webpacker/-/webpacker-5.4.3.tgz#cfe2d8faffe7db5001bad50a1534408b4f2efb2f"
+ integrity sha512-tEM8tpUtfx6FxKwcuQ9+v6pzgqM5LeAdhT6IJ4Te3BPKFO1xrGrXugqeRuZ+gE8ASDZRTOK6yuQkapOpuX5JdA==
dependencies:
- "@babel/core" "^7.13.16"
- "@babel/plugin-proposal-class-properties" "^7.13.0"
- "@babel/plugin-proposal-object-rest-spread" "^7.13.8"
+ "@babel/core" "^7.15.0"
+ "@babel/plugin-proposal-class-properties" "^7.14.5"
+ "@babel/plugin-proposal-object-rest-spread" "^7.14.7"
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
- "@babel/plugin-transform-destructuring" "^7.13.17"
- "@babel/plugin-transform-regenerator" "^7.13.15"
- "@babel/plugin-transform-runtime" "^7.13.15"
- "@babel/preset-env" "^7.13.15"
- "@babel/runtime" "^7.13.17"
+ "@babel/plugin-transform-destructuring" "^7.14.7"
+ "@babel/plugin-transform-regenerator" "^7.14.5"
+ "@babel/plugin-transform-runtime" "^7.15.0"
+ "@babel/preset-env" "^7.15.0"
+ "@babel/runtime" "^7.15.3"
babel-loader "^8.2.2"
babel-plugin-dynamic-import-node "^2.3.3"
babel-plugin-macros "^2.8.0"
case-sensitive-paths-webpack-plugin "^2.4.0"
compression-webpack-plugin "^4.0.1"
- core-js "^3.11.0"
+ core-js "^3.16.2"
css-loader "^3.6.0"
file-loader "^6.2.0"
- flatted "^3.1.1"
- glob "^7.1.6"
+ flatted "^3.2.2"
+ glob "^7.1.7"
js-yaml "^3.14.1"
mini-css-extract-plugin "^0.9.0"
- optimize-css-assets-webpack-plugin "^5.0.4"
+ optimize-css-assets-webpack-plugin "^5.0.8"
path-complete-extname "^1.0.0"
- pnp-webpack-plugin "^1.6.4"
+ pnp-webpack-plugin "^1.7.0"
postcss-flexbugs-fixes "^4.2.1"
postcss-import "^12.0.1"
postcss-loader "^3.0.0"
postcss-preset-env "^6.7.0"
postcss-safe-parser "^4.0.2"
- regenerator-runtime "^0.13.7"
- sass "^1.32.11"
+ regenerator-runtime "^0.13.9"
+ sass "^1.38.0"
sass-loader "10.1.1"
style-loader "^1.3.0"
terser-webpack-plugin "^4.2.3"
@@ -1274,10 +1478,10 @@ ansi-colors@^4.1.1:
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
-ansi-html@0.0.7:
- version "0.0.7"
- resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
- integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4=
+ansi-html-community@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41"
+ integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==
ansi-regex@^2.0.0:
version "2.1.1"
@@ -1507,29 +1711,29 @@ babel-plugin-macros@^2.8.0:
cosmiconfig "^6.0.0"
resolve "^1.12.0"
-babel-plugin-polyfill-corejs2@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz#686775bf9a5aa757e10520903675e3889caeedc4"
- integrity sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg==
+babel-plugin-polyfill-corejs2@^0.3.0:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5"
+ integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==
dependencies:
"@babel/compat-data" "^7.13.11"
- "@babel/helper-define-polyfill-provider" "^0.2.0"
+ "@babel/helper-define-polyfill-provider" "^0.3.1"
semver "^6.1.1"
-babel-plugin-polyfill-corejs3@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz#f4b4bb7b19329827df36ff56f6e6d367026cb7a2"
- integrity sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg==
+babel-plugin-polyfill-corejs3@^0.5.0:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72"
+ integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==
dependencies:
- "@babel/helper-define-polyfill-provider" "^0.2.0"
- core-js-compat "^3.9.1"
+ "@babel/helper-define-polyfill-provider" "^0.3.1"
+ core-js-compat "^3.21.0"
-babel-plugin-polyfill-regenerator@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz#853f5f5716f4691d98c84f8069c7636ea8da7ab8"
- integrity sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg==
+babel-plugin-polyfill-regenerator@^0.3.0:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990"
+ integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==
dependencies:
- "@babel/helper-define-polyfill-provider" "^0.2.0"
+ "@babel/helper-define-polyfill-provider" "^0.3.1"
babel-walk@3.0.0-canary-5:
version "3.0.0-canary-5"
@@ -1733,7 +1937,7 @@ browserify-zlib@^0.2.0:
dependencies:
pako "~1.0.5"
-browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.6.4:
+browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.6.4:
version "4.16.6"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2"
integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==
@@ -1744,6 +1948,17 @@ browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4
escalade "^3.1.1"
node-releases "^1.1.71"
+browserslist@^4.17.5, browserslist@^4.19.1:
+ version "4.19.1"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3"
+ integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==
+ dependencies:
+ caniuse-lite "^1.0.30001286"
+ electron-to-chromium "^1.4.17"
+ escalade "^3.1.1"
+ node-releases "^2.0.1"
+ picocolors "^1.0.0"
+
buffer-from@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
@@ -1899,6 +2114,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, can
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001272.tgz"
integrity sha512-DV1j9Oot5dydyH1v28g25KoVm7l8MTxazwuiH3utWiAS6iL/9Nh//TGwqFEeqqN8nnWYQ8HHhUq+o4QPt9kvYw==
+caniuse-lite@^1.0.30001286:
+ version "1.0.30001309"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001309.tgz#e0ee78b9bec0704f67304b00ff3c5c0c768a9f62"
+ integrity sha512-Pl8vfigmBXXq+/yUz1jUwULeq9xhMJznzdc/xwl4WclDAuebcTHVefpz8lE/bMI+UN7TOkSSe7B7RnZd6+dzjA==
+
case-sensitive-paths-webpack-plugin@^2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4"
@@ -2216,18 +2436,18 @@ copy-descriptor@^0.1.0:
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
-core-js-compat@^3.9.0, core-js-compat@^3.9.1:
- version "3.12.1"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.12.1.tgz#2c302c4708505fa7072b0adb5156d26f7801a18b"
- integrity sha512-i6h5qODpw6EsHAoIdQhKoZdWn+dGBF3dSS8m5tif36RlWvW3A6+yu2S16QHUo3CrkzrnEskMAt9f8FxmY9fhWQ==
+core-js-compat@^3.20.2, core-js-compat@^3.21.0:
+ version "3.21.0"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.21.0.tgz#bcc86aa5a589cee358e7a7fa0a4979d5a76c3885"
+ integrity sha512-OSXseNPSK2OPJa6GdtkMz/XxeXx8/CJvfhQWTqd6neuUraujcL4jVsjkLQz1OWnax8xVQJnRPe0V2jqNWORA+A==
dependencies:
- browserslist "^4.16.6"
+ browserslist "^4.19.1"
semver "7.0.0"
-core-js@^3.11.0:
- version "3.12.1"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.12.1.tgz#6b5af4ff55616c08a44d386f1f510917ff204112"
- integrity sha512-Ne9DKPHTObRuB09Dru5AjwKjY4cJHVGu+y5f7coGn1E9Grkc3p2iBwE9AI/nJzsE29mQF7oq+mhYYRqOMFN1Bw==
+core-js@^3.16.2:
+ version "3.21.0"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.21.0.tgz#f479dbfc3dffb035a0827602dd056839a774aa71"
+ integrity sha512-YUdI3fFu4TF/2WykQ2xzSiTQdldLB4KVuL9WeAy5XONZYt5Cun/fpQvctoKbCgvPhmzADeesTk/j2Rdx77AcKQ==
core-util-is@~1.0.0:
version "1.0.2"
@@ -2767,6 +2987,11 @@ electron-to-chromium@^1.3.723:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.736.tgz#f632d900a1f788dab22fec9c62ec5c9c8f0c4052"
integrity sha512-DY8dA7gR51MSo66DqitEQoUMQ0Z+A2DSXFi7tK304bdTVqczCAfUuyQw6Wdg8hIoo5zIxkU1L24RQtUce1Ioig==
+electron-to-chromium@^1.4.17:
+ version "1.4.66"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.66.tgz#d7453d363dcd7b06ed1757adcde34d724e27b367"
+ integrity sha512-f1RXFMsvwufWLwYUxTiP7HmjprKXrqEWHiQkjAYa9DJeVIlZk5v8gBGcaV+FhtXLly6C1OTVzQY+2UQrACiLlg==
+
elliptic@^6.5.3:
version "6.5.4"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
@@ -3382,11 +3607,16 @@ flat-cache@^3.0.4:
flatted "^3.1.0"
rimraf "^3.0.2"
-flatted@^3.1.0, flatted@^3.1.1:
+flatted@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469"
integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==
+flatted@^3.2.2:
+ version "3.2.5"
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3"
+ integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==
+
flatten@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b"
@@ -3401,9 +3631,9 @@ flush-write-stream@^1.0.0:
readable-stream "^2.3.6"
follow-redirects@^1.0.0:
- version "1.14.7"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685"
- integrity sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==
+ version "1.14.8"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc"
+ integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==
for-in@^1.0.2:
version "1.0.2"
@@ -3526,7 +3756,7 @@ glob-parent@^5.0.0, glob-parent@~5.1.0:
dependencies:
is-glob "^4.0.1"
-glob@^7.0.3, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
+glob@^7.0.3, glob@^7.1.3, glob@^7.1.4:
version "7.1.7"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
@@ -3538,6 +3768,18 @@ glob@^7.0.3, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
once "^1.3.0"
path-is-absolute "^1.0.0"
+glob@^7.1.7:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
+ integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
global-modules@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea"
@@ -3860,6 +4102,11 @@ ignore@^5.1.1:
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
+immutable@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23"
+ integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==
+
import-cwd@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9"
@@ -5038,6 +5285,11 @@ node-releases@^1.1.71:
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe"
integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==
+node-releases@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01"
+ integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==
+
normalize-package-data@^2.3.2:
version "2.5.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
@@ -5220,10 +5472,10 @@ opn@^5.5.0:
dependencies:
is-wsl "^1.1.0"
-optimize-css-assets-webpack-plugin@^5.0.4:
- version "5.0.6"
- resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.6.tgz#abad0c6c11a632201794f75ddba3ce13e32ae80e"
- integrity sha512-JAYw7WrIAIuHWoKeSBB3lJ6ZG9PSDK3JJduv/FMpIY060wvbA8Lqn/TCtxNGICNlg0X5AGshLzIhpYrkltdq+A==
+optimize-css-assets-webpack-plugin@^5.0.8:
+ version "5.0.8"
+ resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.8.tgz#cbccdcf5a6ef61d4f8cc78cf083a67446e5f402a"
+ integrity sha512-mgFS1JdOtEGzD8l+EuISqL57cKO+We9GcoiQEmdCWRqqck+FGNmYJtx9qfAPzEz+lRrlThWMuGDaRkI/yWNx/Q==
dependencies:
cssnano "^4.1.10"
last-call-webpack-plugin "^3.0.0"
@@ -5488,6 +5740,11 @@ pbkdf2@^3.0.3:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
+picocolors@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
+ integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
+
picomatch@^2.0.4, picomatch@^2.2.1:
version "2.2.3"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d"
@@ -5553,10 +5810,10 @@ pkg-up@^2.0.0:
dependencies:
find-up "^2.1.0"
-pnp-webpack-plugin@^1.6.4:
- version "1.6.4"
- resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149"
- integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==
+pnp-webpack-plugin@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz#65741384f6d8056f36e2255a8d67ffc20866f5c9"
+ integrity sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg==
dependencies:
ts-pnp "^1.1.6"
@@ -6614,6 +6871,13 @@ readdirp@~3.5.0:
dependencies:
picomatch "^2.2.1"
+regenerate-unicode-properties@^10.0.1:
+ version "10.0.1"
+ resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56"
+ integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==
+ dependencies:
+ regenerate "^1.4.2"
+
regenerate-unicode-properties@^8.2.0:
version "8.2.0"
resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec"
@@ -6621,16 +6885,21 @@ regenerate-unicode-properties@^8.2.0:
dependencies:
regenerate "^1.4.0"
-regenerate@^1.4.0:
+regenerate@^1.4.0, regenerate@^1.4.2:
version "1.4.2"
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
-regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7:
+regenerator-runtime@^0.13.4:
version "0.13.7"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55"
integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==
+regenerator-runtime@^0.13.9:
+ version "0.13.9"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
+ integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
+
regenerator-transform@^0.14.2:
version "0.14.5"
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4"
@@ -6671,11 +6940,28 @@ regexpu-core@^4.7.1:
unicode-match-property-ecmascript "^1.0.4"
unicode-match-property-value-ecmascript "^1.2.0"
+regexpu-core@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3"
+ integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==
+ dependencies:
+ regenerate "^1.4.2"
+ regenerate-unicode-properties "^10.0.1"
+ regjsgen "^0.6.0"
+ regjsparser "^0.8.2"
+ unicode-match-property-ecmascript "^2.0.0"
+ unicode-match-property-value-ecmascript "^2.0.0"
+
regjsgen@^0.5.1:
version "0.5.2"
resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733"
integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==
+regjsgen@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d"
+ integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==
+
regjsparser@^0.6.4:
version "0.6.9"
resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6"
@@ -6683,6 +6969,13 @@ regjsparser@^0.6.4:
dependencies:
jsesc "~0.5.0"
+regjsparser@^0.8.2:
+ version "0.8.4"
+ resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f"
+ integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==
+ dependencies:
+ jsesc "~0.5.0"
+
remove-trailing-separator@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
@@ -6838,12 +7131,14 @@ sass-loader@10.1.1:
schema-utils "^3.0.0"
semver "^7.3.2"
-sass@^1.32.11:
- version "1.32.13"
- resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.13.tgz#8d29c849e625a415bce71609c7cf95e15f74ed00"
- integrity sha512-dEgI9nShraqP7cXQH+lEXVf73WOPCse0QlFzSD8k+1TcOxCMwVXfQlr0jtoluZysQOyJGnfr21dLvYKDJq8HkA==
+sass@^1.38.0:
+ version "1.49.7"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.7.tgz#22a86a50552b9b11f71404dfad1b9ff44c6b0c49"
+ integrity sha512-13dml55EMIR2rS4d/RDHHP0sXMY3+30e1TKsyXaSz3iLWVoDWEoboY8WzJd5JMnxrRHffKO3wq2mpJ0jxRJiEQ==
dependencies:
chokidar ">=3.0.0 <4.0.0"
+ immutable "^4.0.0"
+ source-map-js ">=0.6.2 <2.0.0"
sax@~1.2.4:
version "1.2.4"
@@ -7135,6 +7430,11 @@ source-list-map@^2.0.0:
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
+"source-map-js@>=0.6.2 <2.0.0":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
+ integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
+
source-map-resolve@^0.5.0:
version "0.5.3"
resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
@@ -7701,6 +8001,11 @@ unicode-canonical-property-names-ecmascript@^1.0.4:
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==
+unicode-canonical-property-names-ecmascript@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
+ integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
+
unicode-match-property-ecmascript@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c"
@@ -7709,16 +8014,34 @@ unicode-match-property-ecmascript@^1.0.4:
unicode-canonical-property-names-ecmascript "^1.0.4"
unicode-property-aliases-ecmascript "^1.0.4"
+unicode-match-property-ecmascript@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3"
+ integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==
+ dependencies:
+ unicode-canonical-property-names-ecmascript "^2.0.0"
+ unicode-property-aliases-ecmascript "^2.0.0"
+
unicode-match-property-value-ecmascript@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531"
integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==
+unicode-match-property-value-ecmascript@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714"
+ integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==
+
unicode-property-aliases-ecmascript@^1.0.4:
version "1.1.0"
resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4"
integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==
+unicode-property-aliases-ecmascript@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8"
+ integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==
+
union-value@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
@@ -8023,12 +8346,12 @@ webpack-dev-middleware@^3.7.2:
range-parser "^1.2.1"
webpack-log "^2.0.0"
-webpack-dev-server@^3.11.2:
- version "3.11.2"
- resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708"
- integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==
+webpack-dev-server@^3:
+ version "3.11.3"
+ resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz#8c86b9d2812bf135d3c9bce6f07b718e30f7c3d3"
+ integrity sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA==
dependencies:
- ansi-html "0.0.7"
+ ansi-html-community "0.0.8"
bonjour "^3.5.0"
chokidar "^2.1.8"
compression "^1.7.4"