diff --git a/browserconfig.xml b/browserconfig.xml index 46de5d3..318d3c9 100644 --- a/browserconfig.xml +++ b/browserconfig.xml @@ -9,4 +9,4 @@ - + \ No newline at end of file diff --git a/css/dark.css b/css/dark.css index 4603db7..8b5f4d6 100644 --- a/css/dark.css +++ b/css/dark.css @@ -7,301 +7,339 @@ z-index: 1; } -body, html { - background: #080404; - font-family: 'League Spartan', sans-serif; - } - - body, .textarea { - color: #d0d5df; - } - - .input::-moz-placeholder, .textarea::-moz-placeholder, .select select::-moz-placeholder { - color: #7e7e7e; - } - - .input::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .select select::-webkit-input-placeholder { - color: #7e7e7e; - } - - .input:-moz-placeholder, .textarea:-moz-placeholder, .select select:-moz-placeholder { - color: #7e7e7e; - } - - .input:-ms-input-placeholder, .textarea:-ms-input-placeholder, .select select:-ms-input-placeholder { - color: #7e7e7e; - } - - li { - margin: 10px; - } - - .txt, a { - color:#fdbe4a; - } - - .txt:hover, a:hover { - color: #fdd64a; - } - - .hero.is-primary { - background-color: transparent; - } - .hero-body { - padding: 1.5rem 1.5rem; - } - .hero-body .content { - text-align: center; - color: #d0d5df; - } - .hero-body .content h1 { - font-size: 2.8em; - font-weight: 600; - margin-bottom: 0.3em; - color: #eee; - } - .hero-body .content h3 { - font-weight: 400; - margin-top: 0; - margin-bottom: 0.5em; - color: #eee; - } - img.social-logo { - display: inline-block; - margin-right: 10px; - text-indent: -9999px; - width: 20px; - } - - img.social-logo.d { - -webkit-filter: invert(1); - filter: invert(1); - opacity: 92%; - } - - #app > :nth-child(2) { - padding-top: 0; - } - - .help.form-label { - font-size: 1em; - font-weight: 400; - color: #d0d5df; - } - - .input, .select select { - background-color: #080404; - color: #fdbe4a; - } - - .center-block { - margin: 0 auto; - display: block; - } - - .box { - background-color: #121111; - color: #eee; - } - - .box span.icon { - float: right; - font-size: 1.7em; - padding: 2rem 2rem 0 0; - } - - .is-large.fab { - font-size: 7em; - } - .is-large.fas { - font-size: 5em; - margin-left: 0.2em; - } - - .menu-list li a:hover { - background: #d9d9d9; - } - - .scrollable { - height: 65vh; - display: flex; - overflow-y: auto; - flex-direction: column; - } - - .button.is-primary { - margin-top: 0.7em; - } - - .thirdparty-logo { - height: 1.5em; - padding-right: 8px; - vertical-align: middle; - } - - #step-1, #step-2, #step-3 { - padding-bottom: 0.3em; - padding-top: 0.4em; - } - - .columns { - margin-top: -1.8rem; - } - - .column.box { - padding: 1em; - } - - #page-404 { - color: #888; - display: table; - font-family: 'League Spartan', sans-serif; - height: 100%; - text-align: center; - width: 100%; - } - #page-404 > div { - display: table-cell; - vertical-align: middle; - margin: 2em auto; - } - #page-404 h1 { - color: #eee; - font-size: 4em; - font-weight: 600; - text-align: center; - } - #page-404 p { - margin: 0 auto; - width: 50%; - text-align: center; - color: #eee; - font-size: 2em; - font-weight: 200; - } - - .modal-card-head, .modal-card-foot { - background-color: #121111; - } - - .modal-card-body, .textarea { - background-color: #080404; - } - - .modal-card-head, .modal-card-foot, .textarea { - border-color: #fdbe4a; - } - - strong, .modal-card-title { - color: #eee; - } - - .modal-card-body ul { - list-style-type: disc; - } - .modal-card-body li { - margin-left: 2.5em; - } - .modal-card-body textarea { - height: 66%; - width: 100%; - } - - .center-parent { - width: 100%; - text-align: center; - } - .center-parent > .child { - display: inline-block; - margin: 2px; - } - - .column.is-information .nav-btn { - cursor: grab; - height: 3em; - -webkit-filter: invert(1); - filter: invert(1); - opacity: 92%; - } - .column.is-information .sidebar-img { - pointer-events: none; - height: 21em; - padding: 2em; - -webkit-filter: invert(1); - filter: invert(1); - opacity: 92%; - } - - .modal-card-body.modal-box { - display: flex; - flex-direction: column; - height: 450px; - } - .modal-card-body.modal-box textarea { - height: 100%; - } - - .box { - margin-top: 0.8em; - } - - .box:not(:last-child) { - margin-bottom: 0.5em; - } - - .box.final-box > a.button { - margin-right: 0.2em; - } - - .no-select { - user-select: none; - } - - input[type=checkbox] { - display: none; - } - input[type=checkbox] + label { - position: relative; - padding-left: 30px; - margin-bottom: 20px; - font: 16px/20px 'League Spartan', sans-serif; - color: #eee; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - } - input[type=checkbox] + label:last-child { - margin-bottom: 0; - } - input[type=checkbox] + label:before { - content: ""; - display: block; - width: 20px; - height: 20px; - border: 1px solid #fdbe4a; - position: absolute; - left: 0; - top: 0; - opacity: 0.6; - -webkit-transition: all 0.12s, border-color 0.08s; - transition: all 0.12s, border-color 0.08s; - } - input[type=checkbox]:checked + label:before { - width: 10px; - top: -5px; - left: 5px; - border-radius: 0; - opacity: 1; - border-top-color: transparent; - border-left-color: transparent; - -webkit-transform: rotate(45deg); - transform: rotate(45deg); - } - - #particles-js { - background-color: #080404; - width: 100%; - height: 100%; - position: absolute; - } \ No newline at end of file +body, +html { + background: #080404; + font-family: 'League Spartan', sans-serif; +} + +body, +.textarea { + color: #d0d5df; +} + +.input::-moz-placeholder, +.textarea::-moz-placeholder, +.select select::-moz-placeholder { + color: #7e7e7e; +} + +.input::-webkit-input-placeholder, +.textarea::-webkit-input-placeholder, +.select select::-webkit-input-placeholder { + color: #7e7e7e; +} + +.input:-moz-placeholder, +.textarea:-moz-placeholder, +.select select:-moz-placeholder { + color: #7e7e7e; +} + +.input:-ms-input-placeholder, +.textarea:-ms-input-placeholder, +.select select:-ms-input-placeholder { + color: #7e7e7e; +} + +li { + margin: 10px; +} + +.txt, +a { + color: #fdbe4a; +} + +.txt:hover, +a:hover { + color: #fdd64a; +} + +.hero.is-primary { + background-color: transparent; +} + +.hero-body { + padding: 1.5rem 1.5rem; +} + +.hero-body .content { + text-align: center; + color: #d0d5df; +} + +.hero-body .content h1 { + font-size: 2.8em; + font-weight: 600; + margin-bottom: 0.3em; + color: #eee; +} + +.hero-body .content h3 { + font-weight: 400; + margin-top: 0; + margin-bottom: 0.5em; + color: #eee; +} + +img.social-logo { + display: inline-block; + margin-right: 10px; + text-indent: -9999px; + width: 20px; +} + +img.social-logo.d { + -webkit-filter: invert(1); + filter: invert(1); + opacity: 92%; +} + +#app> :nth-child(2) { + padding-top: 0; +} + +.help.form-label { + font-size: 1em; + font-weight: 400; + color: #d0d5df; +} + +.input, +.select select { + background-color: #080404; + color: #fdbe4a; +} + +.center-block { + margin: 0 auto; + display: block; +} + +.box { + background-color: #121111; + color: #eee; +} + +.box span.icon { + float: right; + font-size: 1.7em; + padding: 2rem 2rem 0 0; +} + +.is-large.fab { + font-size: 7em; +} + +.is-large.fas { + font-size: 5em; + margin-left: 0.2em; +} + +.menu-list li a:hover { + background: #d9d9d9; +} + +.scrollable { + height: 65vh; + display: flex; + overflow-y: auto; + flex-direction: column; +} + +.button.is-primary { + margin-top: 0.7em; +} + +.thirdparty-logo { + height: 1.5em; + padding-right: 8px; + vertical-align: middle; +} + +#step-1, +#step-2, +#step-3 { + padding-bottom: 0.3em; + padding-top: 0.4em; +} + +.columns { + margin-top: -1.8rem; +} + +.column.box { + padding: 1em; +} + +#page-404 { + color: #888; + display: table; + font-family: 'League Spartan', sans-serif; + height: 100%; + text-align: center; + width: 100%; +} + +#page-404>div { + display: table-cell; + vertical-align: middle; + margin: 2em auto; +} + +#page-404 h1 { + color: #eee; + font-size: 4em; + font-weight: 600; + text-align: center; +} + +#page-404 p { + margin: 0 auto; + width: 50%; + text-align: center; + color: #eee; + font-size: 2em; + font-weight: 200; +} + +.modal-card-head, +.modal-card-foot { + background-color: #121111; +} + +.modal-card-body, +.textarea { + background-color: #080404; +} + +.modal-card-head, +.modal-card-foot, +.textarea { + border-color: #fdbe4a; +} + +strong, +.modal-card-title { + color: #eee; +} + +.modal-card-body ul { + list-style-type: disc; +} + +.modal-card-body li { + margin-left: 2.5em; +} + +.modal-card-body textarea { + height: 66%; + width: 100%; +} + +.center-parent { + width: 100%; + text-align: center; +} + +.center-parent>.child { + display: inline-block; + margin: 2px; +} + +.column.is-information .nav-btn { + cursor: grab; + height: 3em; + -webkit-filter: invert(1); + filter: invert(1); + opacity: 92%; +} + +.column.is-information .sidebar-img { + pointer-events: none; + height: 21em; + padding: 2em; + -webkit-filter: invert(1); + filter: invert(1); + opacity: 92%; +} + +.modal-card-body.modal-box { + display: flex; + flex-direction: column; + height: 450px; +} + +.modal-card-body.modal-box textarea { + height: 100%; +} + +.box { + margin-top: 0.8em; +} + +.box:not(:last-child) { + margin-bottom: 0.5em; +} + +.box.final-box>a.button { + margin-right: 0.2em; +} + +.no-select { + user-select: none; +} + +input[type=checkbox] { + display: none; +} + +input[type=checkbox]+label { + position: relative; + padding-left: 30px; + margin-bottom: 20px; + font: 16px/20px 'League Spartan', sans-serif; + color: #eee; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; +} + +input[type=checkbox]+label:last-child { + margin-bottom: 0; +} + +input[type=checkbox]+label:before { + content: ""; + display: block; + width: 20px; + height: 20px; + border: 1px solid #fdbe4a; + position: absolute; + left: 0; + top: 0; + opacity: 0.6; + -webkit-transition: all 0.12s, border-color 0.08s; + transition: all 0.12s, border-color 0.08s; +} + +input[type=checkbox]:checked+label:before { + width: 10px; + top: -5px; + left: 5px; + border-radius: 0; + opacity: 1; + border-top-color: transparent; + border-left-color: transparent; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); +} + +#particles-js { + background-color: #080404; + width: 100%; + height: 100%; + position: absolute; +} \ No newline at end of file diff --git a/css/style.css b/css/style.css index e79f077..eb3b578 100644 --- a/css/style.css +++ b/css/style.css @@ -7,7 +7,8 @@ z-index: 1; } -body, html { +body, +html { background: white; font-family: 'League Spartan', sans-serif; } @@ -16,35 +17,42 @@ li { margin: 10px; } -.txt, a { +.txt, +a { color: blue; } -.txt:hover, a:hover { - color:#00B4FF; +.txt:hover, +a:hover { + color: #00B4FF; } .hero.is-primary { background-color: transparent; } + .hero-body { padding: 1.5rem 1.5rem; } + .hero-body .content { text-align: center; color: black; } + .hero-body .content h1 { font-size: 2.8em; font-weight: 600; margin-bottom: 0.3em; color: black; } + .hero-body .content h3 { font-weight: 600; margin-top: 0; margin-bottom: 0.5em; } + img.social-logo { display: inline-block; margin-right: 10px; @@ -52,7 +60,7 @@ img.social-logo { width: 20px; } -#app > :nth-child(2) { +#app> :nth-child(2) { padding-top: 0; } @@ -76,6 +84,7 @@ img.social-logo { .is-large.fab { font-size: 7em; } + .is-large.fas { font-size: 5em; margin-left: 0.2em; @@ -102,7 +111,9 @@ img.social-logo { vertical-align: middle; } -#step-1, #step-2, #step-3 { +#step-1, +#step-2, +#step-3 { padding-bottom: 0.3em; padding-top: 0.4em; } @@ -123,17 +134,20 @@ img.social-logo { text-align: center; width: 100%; } -#page-404 > div { + +#page-404>div { display: table-cell; vertical-align: middle; margin: 2em auto; } + #page-404 h1 { color: black; font-size: 4em; font-weight: 600; text-align: center; } + #page-404 p { margin: 0 auto; width: 50%; @@ -146,9 +160,11 @@ img.social-logo { .modal-card-body ul { list-style-type: disc; } + .modal-card-body li { margin-left: 2.5em; } + .modal-card-body textarea { height: 66%; width: 100%; @@ -158,7 +174,8 @@ img.social-logo { width: 100%; text-align: center; } -.center-parent > .child { + +.center-parent>.child { display: inline-block; margin: 2px; } @@ -167,6 +184,7 @@ img.social-logo { cursor: grab; height: 3em; } + .column.is-information .sidebar-img { pointer-events: none; height: 21em; @@ -178,6 +196,7 @@ img.social-logo { flex-direction: column; height: 450px; } + .modal-card-body.modal-box textarea { height: 100%; } @@ -190,7 +209,7 @@ img.social-logo { margin-bottom: 0.5em; } -.box.final-box > a.button { +.box.final-box>a.button { margin-right: 0.2em; } @@ -201,7 +220,8 @@ img.social-logo { input[type=checkbox] { display: none; } -input[type=checkbox] + label { + +input[type=checkbox]+label { position: relative; padding-left: 30px; margin-bottom: 20px; @@ -212,10 +232,12 @@ input[type=checkbox] + label { -moz-user-select: none; -ms-user-select: none; } -input[type=checkbox] + label:last-child { + +input[type=checkbox]+label:last-child { margin-bottom: 0; } -input[type=checkbox] + label:before { + +input[type=checkbox]+label:before { content: ""; display: block; width: 20px; @@ -228,7 +250,8 @@ input[type=checkbox] + label:before { -webkit-transition: all 0.12s, border-color 0.08s; transition: all 0.12s, border-color 0.08s; } -input[type=checkbox]:checked + label:before { + +input[type=checkbox]:checked+label:before { width: 10px; top: -5px; left: 5px; @@ -245,4 +268,4 @@ input[type=checkbox]:checked + label:before { width: 100%; height: 100%; position: absolute; - } \ No newline at end of file +} \ No newline at end of file diff --git a/index.html b/index.html index 7892701..1e45849 100644 --- a/index.html +++ b/index.html @@ -1,7 +1,8 @@ - - - - - Free & Open Source Privacy Policy Generator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + Free & Open Source Privacy Policy Generator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + -
+
- - - -
-
-
-
-
-
-
-

Free & Open Source Privacy Policy Generator

-

Generate a generic Privacy Policy for your website

-

Modified with by Digital Malayali.
-
Based on the original web app by Nishant and template by Arthur Gareginyan.
- Illustrations from unDraw. Generate privacy policy for your Android/iOS app. -

-

- - - - - - GitHub stars -

-
+ + + +
+
+
+
+
+
+
+

Free & Open Source Privacy Policy Generator

+
+

Generate a generic Privacy Policy for your website

+

Modified with by Digital Malayali.
+
Based on the original web app by Nishant and template by Arthur Gareginyan.
+ Illustrations from unDraw. Generate privacy policy for your Android/iOS app. +

+

+ + + + + + GitHub stars +

-
-
-
-
Welcome to Privacy Policy GeneratorNext
-
-
-

Website Name

- -
-
-

Contact E-mail

- -
-
-

Website URL

- -
-
-

Policy Effective Date

- - -
-
-

Owner Type

- -
- -
-
-
-

Company Name

- - -
-
-

Company Address

- - -
-
-

Name

- - +
+
+
+
+
Welcome to Privacy Policy GeneratorNext
+
+
+

Website Name

+ +
+
+

Contact E-mail

+ +
+
+

Website URL

+ +
+
+

Policy Effective Date

+ + +
+
+

Owner Type

+ +
+
- Next
-
-
-
-
-
Illustration to depict selections -
PreviousNext
+
+

Company Name

+ + +
+
+

Company Address

+ +
-
-
Include links to Third Party Services
+
+

Name

+ + +
+
Next +
+
+
+
+
+
Illustration to depict selections +
PreviousNext
+
+
+
Include links to Third Party Services
-
-
- Prev - Next -
-

All trademarks, logos and brand names are the property of their respective owners. All company, product and service names used above are for identification purposes only. Use of these names, trademarks and brands does not imply endorsement.

-
-
-
-
-
-
-
Illustration of a computer
Previous
-
-
-
    This Privacy Policy Generator is completely FREE. -

    If you are able to, then consider supporting us by: -

  1. Visiting our website 🌐
  2. -
  3. Giving a star for our GitHub repo ⭐
  4. -

    -
-

Please consider sharing this web app with your friends: Twitter, - Linkedin, - Facebook, - Reddit, - WhatsApp, - Telegram.

-

...or adding a review/comment in the project's Discussions 💬

-
-
All Done!
-

Now sit back and select the generated privacy policy.

Privacy Policy

-

The accuracy of the generated privacy policy on this website is not legally binding. Use at your own risk.

-

Read the full Disclaimer here

-
+ +
+ Prev + Next +
+

All trademarks, logos and brand names are the property of their respective + owners. All company, product and service names used above are for identification purposes only. Use of + these names, trademarks and brands does not imply endorsement.

-
-
+
+ + + +
+
+
+ - - - - - - - + + + + + + + + + + - - - + + + - + + \ No newline at end of file diff --git a/js/main.js b/js/main.js index d4ec9ba..8a99c8b 100644 --- a/js/main.js +++ b/js/main.js @@ -23,21 +23,19 @@ var app = new Vue({ iOrWe: "[I/We]", typeOfDev: "", webName: "", - siteURL: "", + siteURL: "", webContact: "", myOrOur: "[my/our]", meOrUs: "[me/us]", - areOrAm: "[are/am]", + areOrAm: "[are/am]", devName: "", companyName: "", - companyAdd: "", - companyAddIn: "", + companyAdd: "", + companyAddIn: "", devOrCompanyName: "[Developer/Company name]", effectiveFromDate: new Date().toISOString().slice(0, 10), thirdPartyServices: thirdPartyServicesJsonArray, showPrivacyModal: false, - showGDPRPrivacyModal: false, - showTermsModal: false, showDisclaimerModal: false, hasThirdPartyServicesSelected: true, contentRenderType: 1, @@ -67,8 +65,8 @@ var app = new Vue({ this.webContact = "Please provide the contact email!" return } - - if (this.siteURL.length == 0 || this.siteURL == "" || this.siteURL == null || this.siteURL == "Please provide your website URL!") { + + if (this.siteURL.length == 0 || this.siteURL == "" || this.siteURL == null || this.siteURL == "Please provide your website URL!") { this.siteURL = "Please provide your website URL!" return } @@ -116,26 +114,25 @@ var app = new Vue({ loadInTextView(target, markdown) }, generate: function () { - if (this.typeOfDev === "Individual") { + if (this.typeOfDev === "Individual") { this.devOrCompanyName = this.devName this.iOrWe = "I" this.myOrOur = "my" this.meOrUs = "me" - this.areOrAm = "am" + this.areOrAm = "am" } else if (this.typeOfDev === "Company") { this.devOrCompanyName = this.companyName this.iOrWe = "we" this.myOrOur = "our" this.meOrUs = "us" - this.areOrAm = "are" + this.areOrAm = "are" } - - if (this.companyAdd === "") { + + if (this.companyAdd === "") { this.companyAddIn = "" } else { this.companyAddIn = "Our Address: " + this.companyAdd } - }, togglePrivacyModalVisibility: function () { this.generate() @@ -143,18 +140,6 @@ var app = new Vue({ this.contentRenderType = 1 this.showPrivacyModal = !this.showPrivacyModal }, - toggleGDPRPrivacyModalVisibility: function () { - this.generate() - this.hasThirdPartyServicesSelected = this.checkForThirdPartyServicesEnabled() - this.contentRenderType = 1 - this.showGDPRPrivacyModal = !this.showGDPRPrivacyModal - }, - toggleTermsModalVisibility: function () { - this.generate() - this.hasThirdPartyServicesSelected = this.checkForThirdPartyServicesEnabled() - this.contentRenderType = 1 - this.showTermsModal = !this.showTermsModal - }, toggleDisclaimerModalVisibility: function () { this.showDisclaimerModal = !this.showDisclaimerModal }, diff --git a/js/thirdpartyservices.js b/js/thirdpartyservices.js index 4a5f549..992363b 100644 --- a/js/thirdpartyservices.js +++ b/js/thirdpartyservices.js @@ -16,7 +16,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ - + var thirdPartyServicesJsonArray = [ { "name": "Google Analytics", @@ -72,7 +72,7 @@ var thirdPartyServicesJsonArray = [ "privacy": "https://www.whatsapp.com/legal/privacy-policy/" } }, - { + { "name": "Instagram", "model": "insta", "insta": false, diff --git a/ppgenerator.webmanifest b/ppgenerator.webmanifest index 1a01727..87cf6c2 100644 --- a/ppgenerator.webmanifest +++ b/ppgenerator.webmanifest @@ -1,28 +1,27 @@ { - "name": "Free & Open Source Privacy Policy Generator", - "short_name": "PP Generator", - "description": "A simple web app to generate a generic privacy policy for your website.", - "icons": [ - { - "src": "/images/icon-32.png", - "sizes": "32x32", - "type": "image/png" - }, - { - "src": "/images/logo.png", - "sizes": "512x512", - "type": "image/png" - }, - { - "src": "/images/maskable_icon.png", - "sizes": "787x787", - "type": "image/png", - "purpose": "maskable" - } - ], - "start_url": "/index.html", - "display": "fullscreen", - "theme_color": "#080404", - "background_color": "#080404" - } - \ No newline at end of file + "name": "Free & Open Source Privacy Policy Generator", + "short_name": "PP Generator", + "description": "A simple web app to generate a generic privacy policy for your website.", + "icons": [ + { + "src": "/images/icon-32.png", + "sizes": "32x32", + "type": "image/png" + }, + { + "src": "/images/logo.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "/images/maskable_icon.png", + "sizes": "787x787", + "type": "image/png", + "purpose": "maskable" + } + ], + "start_url": "/index.html", + "display": "fullscreen", + "theme_color": "#080404", + "background_color": "#080404" +} \ No newline at end of file diff --git a/sw.js b/sw.js index 1bdf09b..40addcb 100644 --- a/sw.js +++ b/sw.js @@ -1,14 +1,14 @@ importScripts( - 'https://storage.googleapis.com/workbox-cdn/releases/6.4.1/workbox-sw.js' - ); - - // This will trigger the importScripts() for workbox.strategies and its dependencies: - workbox.loadModule('workbox-strategies'); - - self.addEventListener('fetch', event => { - if (event.request.url.endsWith('.svg', '.png')) { - // Referencing workbox.strategies will now work as expected. - const cacheFirst = new workbox.strategies.CacheFirst(); - event.respondWith(cacheFirst.handle({request: event.request})); - } - }); \ No newline at end of file + 'https://storage.googleapis.com/workbox-cdn/releases/6.4.1/workbox-sw.js' +); + +// This will trigger the importScripts() for workbox.strategies and its dependencies: +workbox.loadModule('workbox-strategies'); + +self.addEventListener('fetch', event => { + if (event.request.url.endsWith('.svg', '.png')) { + // Referencing workbox.strategies will now work as expected. + const cacheFirst = new workbox.strategies.CacheFirst(); + event.respondWith(cacheFirst.handle({ request: event.request })); + } +}); \ No newline at end of file